Преглед изворни кода

Adds distributions of good_sim, gsf_track, seed, and scl kinematics

Caleb пре 6 година
родитељ
комит
9d31379ed5
1 измењених фајлова са 49 додато и 2 уклоњено
  1. 49 2
      looper/analysis/tracking_eff.cpp

+ 49 - 2
looper/analysis/tracking_eff.cpp

@@ -291,6 +291,27 @@ void run(){
         }
     }
 
+    KinColl<ContainerTH1<float>> good_sim_kinems = {
+            tds.register_container<ContainerTH1<float>>("good_sim_v_pt",  THParams::lookup("pt")),
+            tds.register_container<ContainerTH1<float>>("good_sim_v_eta", THParams::lookup("eta")),
+            tds.register_container<ContainerTH1<float>>("good_sim_v_phi", THParams::lookup("phi"))};
+
+    KinColl<ContainerTH1<float>> gsf_kinems = {
+            tds.register_container<ContainerTH1<float>>("gsf_track_v_pt",  THParams::lookup("pt")),
+            tds.register_container<ContainerTH1<float>>("gsf_track_v_eta", THParams::lookup("eta")),
+            tds.register_container<ContainerTH1<float>>("gsf_track_v_phi", THParams::lookup("phi"))};
+
+    KinColl<ContainerTH1<float>> seed_kinems = {
+            tds.register_container<ContainerTH1<float>>("seed_v_pt",  THParams::lookup("pt")),
+            tds.register_container<ContainerTH1<float>>("seed_v_eta", THParams::lookup("eta")),
+            tds.register_container<ContainerTH1<float>>("seed_v_phi", THParams::lookup("phi"))};
+
+    KinColl<ContainerTH1<float>> scl_kinems = {
+            tds.register_container<ContainerTH1<float>>("scl_v_pt",  THParams::lookup("pt")),
+            tds.register_container<ContainerTH1<float>>("scl_v_eta", THParams::lookup("eta")),
+            tds.register_container<ContainerTH1<float>>("scl_v_phi", THParams::lookup("phi"))};
+
+
     KinColl<EfficiencyContainer<float>> seed_eff = {
             tds.register_container<EfficiencyContainer<float>>("seed_eff_v_pt",  THParams::lookup("pt")),
             tds.register_container<EfficiencyContainer<float>>("seed_eff_v_eta", THParams::lookup("eta")),
@@ -377,10 +398,36 @@ void run(){
 
         n_seeds.fill(seeds.size());
         size_t _n_good_seeds = 0;
-        for (const auto& seed : seeds)
-            if (is_good_seed(seed, hoe_cut)) _n_good_seeds++;
+        for (const auto& seed : seeds) {
+            if (is_good_seed(seed, hoe_cut)) {
+                _n_good_seeds++;
+                seed_kinems.pt->fill(seed.pt());
+                seed_kinems.eta->fill(seed.eta());
+                seed_kinems.phi->fill(seed.phi());
+            }
+        }
         n_good_seeds.fill(_n_good_seeds);
 
+        for (const auto& sim_track : sim_tracks) {
+            if (is_good_sim(sim_track)) {
+                good_sim_kinems.pt->fill(sim_track.pt());
+                good_sim_kinems.eta->fill(sim_track.eta());
+                good_sim_kinems.phi->fill(sim_track.phi());
+            }
+        }
+
+        for (const auto& gsf_track : gsf_tracks) {
+            gsf_kinems.pt->fill(gsf_track.pt());
+            gsf_kinems.eta->fill(gsf_track.eta());
+            gsf_kinems.phi->fill(gsf_track.phi());
+        }
+
+        for (const auto& scl : scls) {
+            scl_kinems.pt->fill(hypot(scl.px(), scl.py()));
+            scl_kinems.eta->fill(pseudorapidity(scl.x(), scl.y(), scl.z()));
+            scl_kinems.phi->fill(atan2(scl.py(), scl.px()));
+        }
+
         auto match_stats =  get_match_stats(false);
         n_good_sim.fill(std::get<0>(match_stats));
         n_gsf_tracks.fill(std::get<1>(match_stats));