From ecd51e9fd032b0fb0b7e2d92025bd93b03c0834c Mon Sep 17 00:00:00 2001
From: seley <sinead.mary.eley@cern.ch>
Date: Wed, 21 Aug 2024 11:42:09 +0100
Subject: [PATCH] Added truth_isFiducial , truthd0_isFiducial and
 truthd1_isFiducial

---
 .../NtupleDumper/src/NtupleDumperAlg.cxx          | 15 +++++++++++----
 .../NtupleDumper/src/NtupleDumperAlg.h            |  3 +++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx b/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx
index 2079edf56..5b789e0ef 100644
--- a/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx
+++ b/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx
@@ -375,6 +375,7 @@ StatusCode NtupleDumperAlg::initialize()
   m_tree->Branch("truth_dec_x", &m_truth_dec_x);
   m_tree->Branch("truth_dec_y", &m_truth_dec_y);
   m_tree->Branch("truth_dec_z", &m_truth_dec_z);
+  m_tree->Branch("truth_isFiducial", &m_truth_isFiducial);
 
   // for mother + daughter particle truth infomation 
 
@@ -393,6 +394,7 @@ StatusCode NtupleDumperAlg::initialize()
   m_tree->Branch("truthd0_x", &m_truthd0_x);
   m_tree->Branch("truthd0_y", &m_truthd0_y);
   m_tree->Branch("truthd0_z", &m_truthd0_z);
+  m_tree->Branch("truthd0_isFiducial", &m_truthd0_isFiducial);
 
   m_tree->Branch("truthd1_P", &m_truthd1_P);
   m_tree->Branch("truthd1_px", &m_truthd1_px);
@@ -401,6 +403,7 @@ StatusCode NtupleDumperAlg::initialize()
   m_tree->Branch("truthd1_x", &m_truthd1_x);
   m_tree->Branch("truthd1_y", &m_truthd1_y);
   m_tree->Branch("truthd1_z", &m_truthd1_z);
+  m_tree->Branch("truthd1_isFiducial", &m_truthd1_isFiducial);
 
   m_tree->Branch("vertex_x", &m_vertex_x, "vertex_x/D");
   m_tree->Branch("vertex_y", &m_vertex_y, "vertex_y/D");
@@ -759,7 +762,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
         m_truth_pz.push_back(particle->p4().Z());
         m_truth_m.push_back(particle->m());
         m_truth_pdg.push_back(particle->pdgId());
-        m_truthParticleIsFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
+        m_truth_isFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
 
         if ( particle->hasProdVtx()) {
           m_truth_prod_x.push_back(particle->prodVtx()->x());
@@ -789,7 +792,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
       	    m_truthM_px.push_back(particle->p4().X());
             m_truthM_py.push_back(particle->p4().Y());
             m_truthM_pz.push_back(particle->p4().Z());
-            m_truthParticleIsFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
+            
 
             if ( particle->hasDecayVtx()) { // decay vertex for A' particle 
               m_truthM_x.push_back(particle->decayVtx()->x());
@@ -807,7 +810,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
             m_truthd0_px.push_back(particle->p4().X());
             m_truthd0_py.push_back(particle->p4().Y());
             m_truthd0_pz.push_back(particle->p4().Z());
-            m_truthParticleIsFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
+            m_truthd0_isFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
 
             if ( particle->hasProdVtx()) {
               m_truthd0_x.push_back(particle->prodVtx()->x());
@@ -829,6 +832,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
             m_truthd1_px.push_back(particle->p4().X());
             m_truthd1_py.push_back(particle->p4().Y());
             m_truthd1_pz.push_back(particle->p4().Z());
+             m_truthd1_isFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
 
             if ( particle->hasProdVtx()) {
               m_truthd1_x.push_back(particle->prodVtx()->x());
@@ -1313,7 +1317,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
     for (auto &tp : truthParticleCount) {
       m_truthParticleBarcode.push_back(tp.first);
       m_truthParticleMatchedTracks.push_back(tp.second);
-      //m_truthParticleIsFiducial.push_back(m_fiducialParticleTool->isFiducial(tp.first));
+      m_truthParticleIsFiducial.push_back(m_fiducialParticleTool->isFiducial(tp.first));
     }
   }
 
@@ -1598,6 +1602,7 @@ NtupleDumperAlg::clearTree() const
   m_truth_dec_x.clear();
   m_truth_dec_y.clear();
   m_truth_dec_z.clear();
+  m_truth_isFiducial.clear();
 
   m_truthM_P.clear();
   m_truthM_px.clear();
@@ -1614,6 +1619,7 @@ NtupleDumperAlg::clearTree() const
   m_truthd0_x.clear();
   m_truthd0_y.clear();
   m_truthd0_z.clear();
+  m_truthd0_isFiducial.clear();
 
   m_truthd1_P.clear();
   m_truthd1_px.clear();
@@ -1622,6 +1628,7 @@ NtupleDumperAlg::clearTree() const
   m_truthd1_x.clear();
   m_truthd1_y.clear();
   m_truthd1_z.clear();
+  m_truthd1_isFiducial.clear();
 
   m_vertex_x = NaN;
   m_vertex_y = NaN;
diff --git a/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.h b/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.h
index d4fc22b97..0786017d3 100644
--- a/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.h
+++ b/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.h
@@ -340,6 +340,7 @@ private:
   mutable std::vector<double> m_truthM_z;
 
   mutable std::vector<double> m_truthd0_P;
+  mutable std::vector<bool> m_truthd0_isFiducial; //Boolean for if electron is fiducial
 
   mutable std::vector<double> m_truthd0_px;
   mutable std::vector<double> m_truthd0_py;
@@ -350,6 +351,7 @@ private:
   mutable std::vector<double> m_truthd0_z;
 
   mutable std::vector<double> m_truthd1_P;
+  mutable std::vector<bool> m_truthd1_isFiducial; // Boolean for if positron is fiducial
 
   mutable std::vector<double> m_truthd1_px;
   mutable std::vector<double> m_truthd1_py;
@@ -376,6 +378,7 @@ private:
   mutable std::vector<double> m_truth_prod_z;
 
   mutable std::vector<int> m_truth_pdg; // pdg of first 10 truth particles 
+  mutable std::vector<bool> m_truth_isFiducial; // Boolean for if first 10 truth particles are fiducial
 
   mutable double m_truthLeptonMomentum; 
   mutable int    m_truthBarcode;
-- 
GitLab