ATLAS Offline Software
TruthNtupleTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TruthNtupleTool.h
7 // Header file for TruthNtupleTool
9 // (c) ATLAS Detector software
11 // Sebastian.Fleischmann@cern.ch
13 
14 #ifndef TRK_TRUTHNTUPLETOOL_H
15 #define TRK_TRUTHNTUPLETOOL_H
16 
17 
19 #include "GaudiKernel/ToolHandle.h"
22 
25 #include <vector>
26 
27 
28 class TH1D;
29 class TTree;
30 
31 namespace Trk {
32 
33 
44 class TruthNtupleTool : virtual public Trk::ITruthNtupleTool, public AthAlgTool {
45 public:
46 
47  // standard AlgToolmethods
48  TruthNtupleTool(const std::string&,const std::string&,const IInterface*);
50 
51  // standard Athena methods
54 
55  virtual StatusCode writeTruthData ( const std::vector< Trk::ValidationTrackTruthData >& truthData );
56 
57  virtual unsigned int getNumberOfTreeRecords() const;
58 
59  virtual StatusCode initBranches(const std::vector<const Trk::ITrackTruthClassifier*>& classifiers,
60  bool,
61  const std::vector<std::string> trackCollectionNames);
62 
63 private:
64 
65  // jobOptions
66  std::string m_ntupleTreeName;
67  std::string m_ntupleFileName;
68  std::vector<double> m_etaBins;
69  bool m_fillJets;
70 
71  //NTuple::Tuple* p_ntuple; //!< Pointer to the ntuple
72  TTree* m_nt;
73 
74  unsigned int m_numberOfTreeEntries;
75 
76  // ntuple variables
79 
80  std::vector< std::vector<unsigned int>* > m_TrackLinkIndex;
81  std::vector< std::vector<float>* > m_mc_prob;
82  std::vector<unsigned int> m_classifications;
83  // Truth information
84  float m_mc_d0;
85  float m_mc_z0;
86  float m_mc_phi0;
87  float m_mc_theta;
88  float m_mc_qOverP;
89  float m_mc_qOverPt;
90  float m_mc_eta;
91 
94  float m_mc_energy;
96  float m_mc_prodR;
97  float m_mc_prodz;
98 
99  // statistics
100  std::vector< std::vector<TH1D*> > m_recoTrackCounts;
101  std::vector< std::vector<TH1D*> > m_truthTrackCounts;
102 
103  std::vector<const Trk::ITrackTruthClassifier*> m_trackTruthClassifiers;
104 
105  SG::ReadHandleKey<xAOD::EventInfo> m_evt {this, "EvtInfo", "EventInfo", "EventInfo name"};
106 };
107 
108 
109 } // end of namespace
110 
111 #endif // TRK_TRUTHNTUPLETOOL_H
112 
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
Trk::TruthNtupleTool::m_trackTruthClassifiers
std::vector< const Trk::ITrackTruthClassifier * > m_trackTruthClassifiers
the truth classifiers
Definition: TruthNtupleTool.h:103
Trk::TruthNtupleTool::m_mc_jetLinkIndex
int m_mc_jetLinkIndex
link to jet this particle belongs to (if jet tree is ON)
Definition: TruthNtupleTool.h:95
Trk::TruthNtupleTool::m_mc_particleID
int m_mc_particleID
PDG ID of MC truth particle.
Definition: TruthNtupleTool.h:92
Trk::TruthNtupleTool::getNumberOfTreeRecords
virtual unsigned int getNumberOfTreeRecords() const
Definition: TruthNtupleTool.cxx:344
Trk::TruthNtupleTool::m_mc_qOverP
float m_mc_qOverP
q/p of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:88
Trk::TruthNtupleTool::m_mc_d0
float m_mc_d0
d0 of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:84
Trk::TruthNtupleTool::m_classifications
std::vector< unsigned int > m_classifications
Definition: TruthNtupleTool.h:82
Trk::TruthNtupleTool::m_mc_barcode
int m_mc_barcode
MC truth particle's barcode.
Definition: TruthNtupleTool.h:93
Trk::TruthNtupleTool::m_eventNumber
int m_eventNumber
event number to which this MC truth particle belongs
Definition: TruthNtupleTool.h:78
Trk::TruthNtupleTool::m_mc_energy
float m_mc_energy
MC truth particle's energy at production vertex.
Definition: TruthNtupleTool.h:94
ITrackTruthClassifier.h
TH1D
Definition: rootspy.cxx:342
Trk::TruthNtupleTool::m_runNumber
int m_runNumber
run number to which this MC truth particle belongs
Definition: TruthNtupleTool.h:77
Trk::TruthNtupleTool::m_ntupleFileName
std::string m_ntupleFileName
jobOption: Ntuple file and dir name
Definition: TruthNtupleTool.h:67
Trk::TruthNtupleTool::m_mc_eta
float m_mc_eta
eta of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:90
SG::ReadHandleKey< xAOD::EventInfo >
Trk::TruthNtupleTool::writeTruthData
virtual StatusCode writeTruthData(const std::vector< Trk::ValidationTrackTruthData > &truthData)
write track data to ntuple
Definition: TruthNtupleTool.cxx:258
Trk::TruthNtupleTool::initBranches
virtual StatusCode initBranches(const std::vector< const Trk::ITrackTruthClassifier * > &classifiers, bool, const std::vector< std::string > trackCollectionNames)
Definition: TruthNtupleTool.cxx:136
Trk::TruthNtupleTool::TruthNtupleTool
TruthNtupleTool(const std::string &, const std::string &, const IInterface *)
Definition: TruthNtupleTool.cxx:37
Trk::TruthNtupleTool::m_numberOfTreeEntries
unsigned int m_numberOfTreeEntries
Definition: TruthNtupleTool.h:74
Trk::TruthNtupleTool::m_TrackLinkIndex
std::vector< std::vector< unsigned int > * > m_TrackLinkIndex
Definition: TruthNtupleTool.h:80
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::TruthNtupleTool::m_mc_phi0
float m_mc_phi0
phi of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:86
Trk::TruthNtupleTool::m_truthTrackCounts
std::vector< std::vector< TH1D * > > m_truthTrackCounts
Definition: TruthNtupleTool.h:101
Trk::TruthNtupleTool::m_mc_qOverPt
float m_mc_qOverPt
q/pT of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:89
Trk::TruthNtupleTool::m_nt
TTree * m_nt
Pointer to the NTuple tree.
Definition: TruthNtupleTool.h:72
Trk::TruthNtupleTool::m_mc_z0
float m_mc_z0
z of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:85
Trk::TruthNtupleTool::m_mc_prob
std::vector< std::vector< float > * > m_mc_prob
Definition: TruthNtupleTool.h:81
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TruthNtupleTool::m_etaBins
std::vector< double > m_etaBins
Definition: TruthNtupleTool.h:68
Trk::TruthNtupleTool::m_ntupleTreeName
std::string m_ntupleTreeName
jobOption: Ntuple tree name
Definition: TruthNtupleTool.h:66
ITruthNtupleTool.h
EventInfo.h
Trk::TruthNtupleTool::~TruthNtupleTool
~TruthNtupleTool()
Trk::TruthNtupleTool::m_mc_prodz
float m_mc_prodz
z coordinate of particle's production vertex
Definition: TruthNtupleTool.h:97
Trk::TruthNtupleTool::initialize
StatusCode initialize()
Definition: TruthNtupleTool.cxx:84
AthAlgTool
Definition: AthAlgTool.h:26
Trk::TruthNtupleTool::finalize
StatusCode finalize()
finalize
Definition: TruthNtupleTool.cxx:200
Trk::ITruthNtupleTool
Definition: ITruthNtupleTool.h:55
Trk::TruthNtupleTool::m_mc_theta
float m_mc_theta
theta of MC truth particle's perigee parameters
Definition: TruthNtupleTool.h:87
Trk::TruthNtupleTool
Tool to fill basic information about the truth record.
Definition: TruthNtupleTool.h:44
Trk::TruthNtupleTool::m_evt
SG::ReadHandleKey< xAOD::EventInfo > m_evt
Definition: TruthNtupleTool.h:105
Trk::TruthNtupleTool::m_mc_prodR
float m_mc_prodR
Rxy of particle's production vertex.
Definition: TruthNtupleTool.h:96
Trk::TruthNtupleTool::m_recoTrackCounts
std::vector< std::vector< TH1D * > > m_recoTrackCounts
Definition: TruthNtupleTool.h:100
Trk::TruthNtupleTool::m_fillJets
bool m_fillJets
jO: jet filling, set from external call
Definition: TruthNtupleTool.h:69