Ver código fonte

Adds additional fake-rate plots

Caleb 6 anos atrás
pai
commit
63a8a07325
2 arquivos alterados com 68 adições e 15 exclusões
  1. 4 0
      looper/.gitignore
  2. 64 15
      looper/analysis/tracking_eff.cpp

+ 4 - 0
looper/.gitignore

@@ -1,2 +1,6 @@
 cmake-build-*/
+build/
 .idea/
+tags
+
+*.bak

+ 64 - 15
looper/analysis/tracking_eff.cpp

@@ -341,6 +341,11 @@ void run(){
             tds.register_container<EfficiencyContainer<float>>("tracking_pur_v_eta_dR", THParams::lookup("eta")),
             tds.register_container<EfficiencyContainer<float>>("tracking_pur_v_phi_dR", THParams::lookup("phi"))};
 
+    KinColl<EfficiencyContainer<float>> fake_rate = {
+            tds.register_container<EfficiencyContainer<float>>("fake_rate_v_pt",  THParams::lookup("pt")),
+            tds.register_container<EfficiencyContainer<float>>("fake_rate_v_eta", THParams::lookup("eta")),
+            tds.register_container<EfficiencyContainer<float>>("fake_rate_v_phi", THParams::lookup("phi"))};
+
     KinColl<EfficiencyContainer<float>> partial_fake_rate = {
             tds.register_container<EfficiencyContainer<float>>("partial_fake_rate_v_pt",  THParams::lookup("pt")),
             tds.register_container<EfficiencyContainer<float>>("partial_fake_rate_v_eta", THParams::lookup("eta")),
@@ -356,6 +361,26 @@ void run(){
             tds.register_container<EfficiencyContainer<float>>("clean_fake_rate_v_eta", THParams::lookup("eta")),
             tds.register_container<EfficiencyContainer<float>>("clean_fake_rate_v_phi", THParams::lookup("phi"))};
 
+    KinColl<EfficiencyContainer<float>> fake_rate_incl = {
+            tds.register_container<EfficiencyContainer<float>>("fake_rate_incl_v_pt",  THParams::lookup("pt")),
+            tds.register_container<EfficiencyContainer<float>>("fake_rate_incl_v_eta", THParams::lookup("eta")),
+            tds.register_container<EfficiencyContainer<float>>("fake_rate_incl_v_phi", THParams::lookup("phi"))};
+
+    KinColl<EfficiencyContainer<float>> partial_fake_rate_incl = {
+            tds.register_container<EfficiencyContainer<float>>("partial_fake_rate_incl_v_pt",  THParams::lookup("pt")),
+            tds.register_container<EfficiencyContainer<float>>("partial_fake_rate_incl_v_eta", THParams::lookup("eta")),
+            tds.register_container<EfficiencyContainer<float>>("partial_fake_rate_incl_v_phi", THParams::lookup("phi"))};
+
+    KinColl<EfficiencyContainer<float>> full_fake_rate_incl = {
+            tds.register_container<EfficiencyContainer<float>>("full_fake_rate_incl_v_pt",  THParams::lookup("pt")),
+            tds.register_container<EfficiencyContainer<float>>("full_fake_rate_incl_v_eta", THParams::lookup("eta")),
+            tds.register_container<EfficiencyContainer<float>>("full_fake_rate_incl_v_phi", THParams::lookup("phi"))};
+
+    KinColl<EfficiencyContainer<float>> clean_fake_rate_incl = {
+            tds.register_container<EfficiencyContainer<float>>("clean_fake_rate_incl_v_pt",  THParams::lookup("pt")),
+            tds.register_container<EfficiencyContainer<float>>("clean_fake_rate_incl_v_eta", THParams::lookup("eta")),
+            tds.register_container<EfficiencyContainer<float>>("clean_fake_rate_incl_v_phi", THParams::lookup("phi"))};
+
     auto& hit_vs_layer_barrel = *tds.register_container<ContainerTH2<int>>("hit_vs_layer_barrel", THParams::lookup("hit_vs_layer"));
     auto& hit_vs_layer_forward = *tds.register_container<ContainerTH2<int>>("hit_vs_layer_forward", THParams::lookup("hit_vs_layer"));
 
@@ -368,6 +393,8 @@ void run(){
     auto& n_good_seeds = *tds.register_container<ContainerTH1<size_t>>("n_good_seeds", THParams::lookup("n_seeds"));
     auto& n_good_sim = *tds.register_container<ContainerTH1<int>>("n_good_sim", THParams::lookup("n_seeds"));
     auto& n_gsf_tracks = *tds.register_container<ContainerTH1<int>>("n_gsf_track", THParams::lookup("n_seeds"));
+    auto& n_scl = *tds.register_container<ContainerTH1<size_t>>("n_scl", THParams::lookup("n_seeds"));
+    auto& n_good_scl = *tds.register_container<ContainerTH1<size_t>>("n_good_scl", THParams::lookup("n_seeds"));
 
     auto& n_matched = *tds.register_container<ContainerTH1<int>>("n_matched", THParams::lookup("n_seeds"));
     auto& n_merged = *tds.register_container<ContainerTH1<int>>("n_merged", THParams::lookup("n_seeds"));
@@ -404,7 +431,6 @@ void run(){
 
         update_sim_els();
 
-        n_seeds.fill(seeds.size());
         size_t _n_good_seeds = 0;
         for (const auto& seed : seeds) {
             if (is_good_seed(seed, hoe_cut)) {
@@ -414,6 +440,7 @@ void run(){
                 seed_kinems.phi->fill(seed.phi());
             }
         }
+        n_seeds.fill(seeds.size());
         n_good_seeds.fill(_n_good_seeds);
 
         for (const auto& sim_track : sim_els) {
@@ -428,11 +455,17 @@ void run(){
             gsf_kinems.phi->fill(gsf_track.phi());
         }
 
+        size_t _n_good_scl = 0;
         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()));
+            if (scl.hoe() < hoe_cut) {
+                _n_good_scl++;
+                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.y(), scl.x()));
+            }
         }
+        n_scl.fill(scls.size());
+        n_good_scl.fill(_n_good_scl);
 
         auto match_stats =  get_match_stats(false);
         n_good_sim.fill(std::get<0>(match_stats));
@@ -628,21 +661,37 @@ void run(){
             /* cout << "ntracks: " << ntracks << " "; */
             /* cout << "count: " << tm_scls.count(scl.idx); */
             if (ntracks > 0) {
-                partial_fake_rate.pt->fill(scl_pt, partial_fake);
-                partial_fake_rate.eta->fill(scl_eta, partial_fake);
-                partial_fake_rate.phi->fill(scl_phi, partial_fake);
-
-                full_fake_rate.pt->fill(scl_pt, full_fake);
-                full_fake_rate.eta->fill(scl_eta, full_fake);
-                full_fake_rate.phi->fill(scl_phi, full_fake);
+                partial_fake_rate_incl.pt->fill(scl_pt, partial_fake);
+                partial_fake_rate_incl.eta->fill(scl_eta, partial_fake);
+                partial_fake_rate_incl.phi->fill(scl_phi, partial_fake);
+                if (abs(scl_eta) < 2.4)                 partial_fake_rate.pt->fill(scl_pt, partial_fake);
+                if (scl_pt > 20.0)                      partial_fake_rate.eta->fill(scl_eta, partial_fake);
+                if (abs(scl_eta) < 2.4 and scl_pt > 20) partial_fake_rate.phi->fill(scl_phi, partial_fake);
+
+                full_fake_rate_incl.pt->fill(scl_pt, full_fake);
+                full_fake_rate_incl.eta->fill(scl_eta, full_fake);
+                full_fake_rate_incl.phi->fill(scl_phi, full_fake);
+                if (abs(scl_eta) < 2.4)                 full_fake_rate.pt->fill(scl_pt, full_fake);
+                if (scl_pt > 20.0)                      full_fake_rate.eta->fill(scl_eta, full_fake);
+                if (abs(scl_eta) < 2.4 and scl_pt > 20) full_fake_rate.phi->fill(scl_phi, full_fake);
 
                 if (tm_scls.count(scl.idx) == 0) {
-                    /* cout << "Filling clean_fake_rate" << endl; */
-                    clean_fake_rate.pt->fill(scl_pt, full_fake);
-                    clean_fake_rate.eta->fill(scl_eta, full_fake);
-                    clean_fake_rate.phi->fill(scl_phi, full_fake);
+                    clean_fake_rate_incl.pt->fill(scl_pt, full_fake);
+                    clean_fake_rate_incl.eta->fill(scl_eta, full_fake);
+                    clean_fake_rate_incl.phi->fill(scl_phi, full_fake);
+                    if (abs(scl_eta) < 2.4)                 clean_fake_rate.pt->fill(scl_pt, full_fake);
+                    if (scl_pt > 20.0)                      clean_fake_rate.eta->fill(scl_eta, full_fake);
+                    if (abs(scl_eta) < 2.4 and scl_pt > 20) clean_fake_rate.phi->fill(scl_phi, full_fake);
                 }
             }
+            if (tm_scls.count(scl.idx) == 0) {
+                fake_rate_incl.pt->fill(scl_pt, ntracks>0);
+                fake_rate_incl.eta->fill(scl_eta, ntracks>0);
+                fake_rate_incl.phi->fill(scl_phi, ntracks>0);
+                if (abs(scl_eta) < 2.4)                 fake_rate.pt->fill(scl_pt, ntracks>0);
+                if (scl_pt > 20.0)                      fake_rate.eta->fill(scl_eta, ntracks>0);
+                if (abs(scl_eta) < 2.4 and scl_pt > 20) fake_rate.phi->fill(scl_phi, ntracks>0);
+            }
             /* cout << endl; */
         }