ATLAS Offline Software
DetailedIDNtupleTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETALIGNNTUPLETOOLS_DETAILEDIDNTUPLETOOL_H
6 #define INDETALIGNNTUPLETOOLS_DETAILEDIDNTUPLETOOL_H
7 
10 #include "GaudiKernel/ToolHandle.h"
14 
15 
22 class TFile;
23 class TTree;
24 class TRT_ID;
25 
26 namespace Trk
27 {
28  class AlignTrack;
29  class ITrackSummaryTool;
30  class IAlignModuleTool;
31  class Track;
32 }
33 
34 namespace InDet
35 {
36  class DetailedIDNtupleTool : virtual public Trk::IFillNtupleTool, public AthAlgTool
37  {
38  public:
39  DetailedIDNtupleTool(const std::string & type, const std::string & name, const IInterface * parent);
40  virtual ~DetailedIDNtupleTool();
41 
42  virtual StatusCode initialize() override;
43  virtual StatusCode finalize() override;
44 
46  virtual void dumpTrack(int itrk, const Trk::AlignTrack * alignTrack) override;
47 
48  virtual void storeHitmap() override;
49  virtual void fillHitmap() override;
50 
51  virtual void fillSummary() override;
52  virtual void showStatistics() override;
53 
54  virtual void setNtuple(TFile* ntuple) override { m_file=ntuple; }
55  virtual StatusCode fillNtuple() override;
56 
57  private:
58  bool retrieveTruthInfo(const Trk::AlignTrack* trk);
60  void initializeNtuple();
61 
62  ToolHandle <Trk::ITrackSummaryTool> m_trackSumTool;
63  ToolHandle <Trk::IAlignModuleTool> m_alignModuleTool;
64  PublicToolHandle <Trk::ITruthToTrack> m_truthToTrack
65  {this,"TruthToTrack","Trk::TruthToTrack/InDetTruthToTrack",""};
66  PublicToolHandle <Trk::IExtrapolator> m_extrapolator
67  {this,"Extrapolator","Trk::Extrapolator/AtlasExtrapolator",""};
68 
71  bool m_storeTruth;
73 
74  TFile * m_file;
75  TTree * m_tree;
76 
77  std::string m_filename;
78  std::string m_filepath;
79 
80  std::string m_trackCollection;
81  std::string m_tracksTruthName;
82 
83  // Reconstructed variables
84  int m_runNumber = 0;
85  int m_evtNumber = 0;
86 
87  // original track information
88  double m_original_xvtx = 0.0;
89  double m_original_yvtx = 0.0;
90  double m_original_zvtx = 0.0;
91 
92  double m_original_d0 = 0.0;
93  double m_original_z0 = 0.0;
94  double m_original_phi0 = 0.0;
95  double m_original_theta = 0.0;
96  double m_original_qoverp = 0.0;
97  double m_original_pt = 0.0;
98 
99  double m_original_eta = 0.0;
100  double m_original_chi2 = 0.0;
102  double m_original_chi2prob = 0.0;
103 
104  double m_original_err_d0 = 0.0;
105  double m_original_err_z0 = 0.0;
106  double m_original_err_phi0 = 0.0;
107  double m_original_err_theta = 0.0;
108  double m_original_err_qoverp = 0.0;
109 
110  // truth informaiton
111  double m_truth_d0 = 0.0;
112  double m_truth_z0 = 0.0;
113  double m_truth_phi0 = 0.0;
114  double m_truth_theta = 0.0;
115  double m_truth_eta = 0.0;
116  double m_truth_pt = 0.0;
117  double m_truth_qoverp = 0.0;
118  double m_truth_qoverpt = 0.0;
119  double m_truth_charge = 0.0;
120  double m_truth_prod_x = 0.0;
121  double m_truth_prod_y = 0.0;
122  double m_truth_prod_z = 0.0;
123 
124  // oroginal track wrt reference points
125  double m_original_toRef_d0 = 0.0;
126  double m_original_toRef_z0 = 0.0;
127  double m_original_toRef_phi0 = 0.0;
130 
131  // refitted track wrt reference points
132  double m_toRef_d0 = 0.0;
133  double m_toRef_z0 = 0.0;
134  double m_toRef_phi0 = 0.0;
135  double m_toRef_theta = 0.0;
136  double m_toRef_qoverp = 0.0;
137 
138  // the AlignTrack information
139  double m_err_d0 = 0.0;
140  double m_err_z0 = 0.0;
141  double m_err_phi0 = 0.0;
142  double m_err_theta = 0.0;
143  double m_err_qoverp = 0.0;
144 
145  double m_xvtx = 0.0;
146  double m_yvtx = 0.0;
147  double m_zvtx = 0.0;
148  double m_d0 = 0.0;
149  double m_z0 = 0.0;
150  double m_phi0 = 0.0;
151  double m_theta = 0.0;
152  double m_qoverp = 0.0;
153  double m_pt = 0.0;
154  double m_eta = 0.0;
155  double m_chi2 = 0.0;
156  int m_ndof = 0;
157  double m_chi2prob = 0.0;
158 
159  }; // end class
160 
161 } // end namespace
162 
163 #endif // INDETALIGNNTUPLETOOLS_DETAILEDIDNTUPLETOOL_H
InDet::DetailedIDNtupleTool::m_storeConstrainedOnly
bool m_storeConstrainedOnly
onlystore the AlignTrack which is normally refitted
Definition: DetailedIDNtupleTool.h:70
InDet::DetailedIDNtupleTool::m_original_chi2prob
double m_original_chi2prob
Definition: DetailedIDNtupleTool.h:102
InDet::DetailedIDNtupleTool::m_original_err_z0
double m_original_err_z0
Definition: DetailedIDNtupleTool.h:105
InDet::DetailedIDNtupleTool::m_filepath
std::string m_filepath
path to ntuple file
Definition: DetailedIDNtupleTool.h:78
TrackParameters.h
IFillNtupleTool.h
InDet::DetailedIDNtupleTool::m_theta
double m_theta
Definition: DetailedIDNtupleTool.h:151
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::DetailedIDNtupleTool::setNtuple
virtual void setNtuple(TFile *ntuple) override
sets the output stream for the logfile
Definition: DetailedIDNtupleTool.h:54
InDet::DetailedIDNtupleTool::m_chi2prob
double m_chi2prob
Definition: DetailedIDNtupleTool.h:157
InDet::DetailedIDNtupleTool::m_original_ndof
int m_original_ndof
Definition: DetailedIDNtupleTool.h:101
InDet::DetailedIDNtupleTool::m_original_pt
double m_original_pt
Definition: DetailedIDNtupleTool.h:97
InDet::DetailedIDNtupleTool::m_storeTruth
bool m_storeTruth
retrieve the truth information
Definition: DetailedIDNtupleTool.h:71
InDet::DetailedIDNtupleTool::m_original_d0
double m_original_d0
Definition: DetailedIDNtupleTool.h:92
InDet::DetailedIDNtupleTool::m_original_yvtx
double m_original_yvtx
Definition: DetailedIDNtupleTool.h:89
InDet::DetailedIDNtupleTool::m_original_err_d0
double m_original_err_d0
Definition: DetailedIDNtupleTool.h:104
InDet::DetailedIDNtupleTool::m_chi2
double m_chi2
Definition: DetailedIDNtupleTool.h:155
InDet::DetailedIDNtupleTool::m_pt
double m_pt
Definition: DetailedIDNtupleTool.h:153
InDet::DetailedIDNtupleTool::finalize
virtual StatusCode finalize() override
Definition: DetailedIDNtupleTool.cxx:100
InDet::DetailedIDNtupleTool::m_runNumber
int m_runNumber
Definition: DetailedIDNtupleTool.h:84
IExtrapolator.h
InDet::DetailedIDNtupleTool::m_truth_charge
double m_truth_charge
Definition: DetailedIDNtupleTool.h:119
InDet::DetailedIDNtupleTool::m_truth_prod_y
double m_truth_prod_y
Definition: DetailedIDNtupleTool.h:121
InDet::DetailedIDNtupleTool::fillSummary
virtual void fillSummary() override
fills ntuple with event and track summary information
Definition: DetailedIDNtupleTool.cxx:467
InDet::DetailedIDNtupleTool::fillNtuple
virtual StatusCode fillNtuple() override
writes trees and histograms to ntuple
Definition: DetailedIDNtupleTool.cxx:91
InDet::DetailedIDNtupleTool::DetailedIDNtupleTool
DetailedIDNtupleTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: DetailedIDNtupleTool.cxx:38
InDet::DetailedIDNtupleTool::m_original_qoverp
double m_original_qoverp
Definition: DetailedIDNtupleTool.h:96
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
InDet::DetailedIDNtupleTool
Definition: DetailedIDNtupleTool.h:37
InDet::DetailedIDNtupleTool::m_truth_z0
double m_truth_z0
Definition: DetailedIDNtupleTool.h:112
InDet::DetailedIDNtupleTool::m_truth_eta
double m_truth_eta
Definition: DetailedIDNtupleTool.h:115
InDet::DetailedIDNtupleTool::m_original_zvtx
double m_original_zvtx
Definition: DetailedIDNtupleTool.h:90
InDet::DetailedIDNtupleTool::m_err_theta
double m_err_theta
Definition: DetailedIDNtupleTool.h:142
InDet::DetailedIDNtupleTool::m_truth_pt
double m_truth_pt
Definition: DetailedIDNtupleTool.h:116
InDet::DetailedIDNtupleTool::m_filename
std::string m_filename
name of ntuple file
Definition: DetailedIDNtupleTool.h:77
InDet::DetailedIDNtupleTool::m_err_phi0
double m_err_phi0
Definition: DetailedIDNtupleTool.h:141
InDet::DetailedIDNtupleTool::m_qoverp
double m_qoverp
Definition: DetailedIDNtupleTool.h:152
InDet::DetailedIDNtupleTool::m_truth_phi0
double m_truth_phi0
Definition: DetailedIDNtupleTool.h:113
InDet::DetailedIDNtupleTool::m_original_toRef_phi0
double m_original_toRef_phi0
Definition: DetailedIDNtupleTool.h:127
InDet::DetailedIDNtupleTool::m_xvtx
double m_xvtx
Definition: DetailedIDNtupleTool.h:145
InDet::DetailedIDNtupleTool::m_original_toRef_z0
double m_original_toRef_z0
Definition: DetailedIDNtupleTool.h:126
InDet::DetailedIDNtupleTool::m_original_err_theta
double m_original_err_theta
Definition: DetailedIDNtupleTool.h:107
Trk::IFillNtupleTool
Definition: IFillNtupleTool.h:33
InDet::DetailedIDNtupleTool::m_extrapolator
PublicToolHandle< Trk::IExtrapolator > m_extrapolator
track extrapolator
Definition: DetailedIDNtupleTool.h:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::DetailedIDNtupleTool::m_toRef_d0
double m_toRef_d0
Definition: DetailedIDNtupleTool.h:132
InDet::DetailedIDNtupleTool::m_err_z0
double m_err_z0
Definition: DetailedIDNtupleTool.h:140
InDet::DetailedIDNtupleTool::m_file
TFile * m_file
Definition: DetailedIDNtupleTool.h:74
AthAlgTool.h
InDet::DetailedIDNtupleTool::m_err_d0
double m_err_d0
Definition: DetailedIDNtupleTool.h:139
InDet::DetailedIDNtupleTool::showStatistics
virtual void showStatistics() override
write statistics out to log file
Definition: DetailedIDNtupleTool.cxx:471
test_pyathena.parent
parent
Definition: test_pyathena.py:15
InDet::DetailedIDNtupleTool::initialize
virtual StatusCode initialize() override
Definition: DetailedIDNtupleTool.cxx:70
InDet::DetailedIDNtupleTool::dumpTrack
virtual void dumpTrack(int itrk, const Trk::AlignTrack *alignTrack) override
fills track information to ntuple
Definition: DetailedIDNtupleTool.cxx:106
InDet::DetailedIDNtupleTool::m_original_chi2
double m_original_chi2
Definition: DetailedIDNtupleTool.h:100
InDet::DetailedIDNtupleTool::m_phi0
double m_phi0
Definition: DetailedIDNtupleTool.h:150
InDet::DetailedIDNtupleTool::retrieveTruthInfo
bool retrieveTruthInfo(const Trk::AlignTrack *trk)
Definition: DetailedIDNtupleTool.cxx:350
InDet::DetailedIDNtupleTool::m_original_phi0
double m_original_phi0
Definition: DetailedIDNtupleTool.h:94
InDet::DetailedIDNtupleTool::m_storeNormalRefittedOnly
bool m_storeNormalRefittedOnly
only store the AlignTrack which is normally refitted
Definition: DetailedIDNtupleTool.h:69
InDet::DetailedIDNtupleTool::storeHitmap
virtual void storeHitmap() override
stores hitmap for writing to ntuple
Definition: DetailedIDNtupleTool.cxx:460
Trk::ParametersBase
Definition: ParametersBase.h:55
InDet::DetailedIDNtupleTool::m_err_qoverp
double m_err_qoverp
Definition: DetailedIDNtupleTool.h:143
InDet::DetailedIDNtupleTool::m_yvtx
double m_yvtx
Definition: DetailedIDNtupleTool.h:146
InDet::DetailedIDNtupleTool::m_original_err_phi0
double m_original_err_phi0
Definition: DetailedIDNtupleTool.h:106
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::DetailedIDNtupleTool::m_zvtx
double m_zvtx
Definition: DetailedIDNtupleTool.h:147
InDet::DetailedIDNtupleTool::m_original_toRef_d0
double m_original_toRef_d0
Definition: DetailedIDNtupleTool.h:125
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
InDet::DetailedIDNtupleTool::m_truth_qoverpt
double m_truth_qoverpt
Definition: DetailedIDNtupleTool.h:118
InDet::DetailedIDNtupleTool::m_original_toRef_theta
double m_original_toRef_theta
Definition: DetailedIDNtupleTool.h:128
InDet::DetailedIDNtupleTool::m_original_z0
double m_original_z0
Definition: DetailedIDNtupleTool.h:93
InDet::DetailedIDNtupleTool::perigeeParameter
const Trk::TrackParameters * perigeeParameter(const Trk::AlignTrack *track) const
Definition: DetailedIDNtupleTool.cxx:445
Trk::AlignTrack
Definition: AlignTrack.h:41
InDet::DetailedIDNtupleTool::m_eta
double m_eta
Definition: DetailedIDNtupleTool.h:154
InDet::DetailedIDNtupleTool::m_toRef_z0
double m_toRef_z0
Definition: DetailedIDNtupleTool.h:133
InDet::DetailedIDNtupleTool::m_truth_theta
double m_truth_theta
Definition: DetailedIDNtupleTool.h:114
InDet::DetailedIDNtupleTool::~DetailedIDNtupleTool
virtual ~DetailedIDNtupleTool()
Definition: DetailedIDNtupleTool.cxx:66
TRT_ID
Definition: TRT_ID.h:82
InDet::DetailedIDNtupleTool::m_tree
TTree * m_tree
Definition: DetailedIDNtupleTool.h:75
ITruthToTrack.h
InDet::DetailedIDNtupleTool::m_alignModuleTool
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
Pointer to AlignmModuleTool.
Definition: DetailedIDNtupleTool.h:63
InDet::DetailedIDNtupleTool::m_original_eta
double m_original_eta
Definition: DetailedIDNtupleTool.h:99
InDet::DetailedIDNtupleTool::m_truthToTrack
PublicToolHandle< Trk::ITruthToTrack > m_truthToTrack
the truth to track Tool
Definition: DetailedIDNtupleTool.h:65
InDet::DetailedIDNtupleTool::m_toRef_phi0
double m_toRef_phi0
Definition: DetailedIDNtupleTool.h:134
InDet::DetailedIDNtupleTool::m_d0
double m_d0
Definition: DetailedIDNtupleTool.h:148
InDet::DetailedIDNtupleTool::m_truth_prod_x
double m_truth_prod_x
Definition: DetailedIDNtupleTool.h:120
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
InDet::DetailedIDNtupleTool::m_truth_prod_z
double m_truth_prod_z
Definition: DetailedIDNtupleTool.h:122
InDet::DetailedIDNtupleTool::m_original_xvtx
double m_original_xvtx
Definition: DetailedIDNtupleTool.h:88
InDet::DetailedIDNtupleTool::initializeNtuple
void initializeNtuple()
Definition: DetailedIDNtupleTool.cxx:475
InDet::DetailedIDNtupleTool::m_truth_qoverp
double m_truth_qoverp
Definition: DetailedIDNtupleTool.h:117
InDet::DetailedIDNtupleTool::m_evtNumber
int m_evtNumber
Definition: DetailedIDNtupleTool.h:85
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
InDet::DetailedIDNtupleTool::m_trackCollection
std::string m_trackCollection
Definition: DetailedIDNtupleTool.h:80
InDet::DetailedIDNtupleTool::m_original_theta
double m_original_theta
Definition: DetailedIDNtupleTool.h:95
AthAlgTool
Definition: AthAlgTool.h:26
InDet::DetailedIDNtupleTool::m_matchProbability
double m_matchProbability
the probabililty cut in the truth matching
Definition: DetailedIDNtupleTool.h:72
InDet::DetailedIDNtupleTool::m_trackSumTool
ToolHandle< Trk::ITrackSummaryTool > m_trackSumTool
Pointer to track summary tool.
Definition: DetailedIDNtupleTool.h:62
InDet::DetailedIDNtupleTool::m_original_toRef_qoverp
double m_original_toRef_qoverp
Definition: DetailedIDNtupleTool.h:129
InDet::DetailedIDNtupleTool::m_z0
double m_z0
Definition: DetailedIDNtupleTool.h:149
InDet::DetailedIDNtupleTool::m_tracksTruthName
std::string m_tracksTruthName
Definition: DetailedIDNtupleTool.h:81
InDet::DetailedIDNtupleTool::m_original_err_qoverp
double m_original_err_qoverp
Definition: DetailedIDNtupleTool.h:108
InDet::DetailedIDNtupleTool::m_toRef_theta
double m_toRef_theta
Definition: DetailedIDNtupleTool.h:135
InDet::DetailedIDNtupleTool::m_truth_d0
double m_truth_d0
Definition: DetailedIDNtupleTool.h:111
InDet::DetailedIDNtupleTool::m_toRef_qoverp
double m_toRef_qoverp
Definition: DetailedIDNtupleTool.h:136
InDet::DetailedIDNtupleTool::fillHitmap
virtual void fillHitmap() override
fills ntuple with hit information
Definition: DetailedIDNtupleTool.cxx:464
AlignTrack
AlignTrack is a generalization of a Trk::Track, used as the basic object to contain track information...
InDet::DetailedIDNtupleTool::m_ndof
int m_ndof
Definition: DetailedIDNtupleTool.h:156