ATLAS Offline Software
Loading...
Searching...
No Matches
InDetAlignFillTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETALIGNGENTOOLS_INDETALIGNFILLTRACK_H
6#define INDETALIGNGENTOOLS_INDETALIGNFILLTRACK_H
7// ================================================
8// InDetAlignFillTrack
9// ================================================
10//
11// InDetAlignFillTrack.h
12// Headerfile for InDetAlignFillTrack
13//
14// Carlos Escobar, started 27/12/2007
15//
16// AthAlgTool to create store Trk::Track and MCTrack information in a ntuple
17
18#include <string>
19
21
23#include "GaudiKernel/NTuple.h"
24#include "GaudiKernel/ToolHandle.h"
25
30
31namespace Trk {
32 class Track;
33}
34
35class INTupleSvc;
36
37
38class InDetAlignFillTrack: public extends<AthAlgTool, IInDetAlignFillTrack> {
39 public:
40 InDetAlignFillTrack(const std::string& type, const std::string& name,
41 const IInterface* parent);
42
43 virtual StatusCode initialize() override;
44 virtual StatusCode finalize() override;
45
46 virtual StatusCode FillTrack() override;
47
48 virtual int GetTrks() const override { return m_totaltrks; }
49 virtual int GetTrkHits() const override { return m_totalhits; }
50 virtual int GetTrkPixHits() const override { return m_totalPixhits; }
51 virtual int GetTrkSCTHits() const override { return m_totalSCThits; }
52 virtual int GetTrkTRTHits() const override { return m_totalTRThits; }
53
54 private:
55 ServiceHandle<INTupleSvc> m_ntupleSvc{this,"NTupleSvc","NTupleSvc"};
56
57 // member functions
58 void bookNtuple();
59 void bookUpNtuple();
60 void bookLowNtuple();
61 void bookMatchingNtuple();
62 int dumpTrackCol(const TrackCollection*);
63 int dumpTrackCol(const TrackCollection*, const std::string&);
64 void dumpTrack(int, const Trk::Track*, const std::string&);
65 void dumpPerigee(const Trk::TrackParameters*, int);
66 StatusCode dumpMatching(const TrackCollection*,const TrackCollection*);
67
68 // properties
69
70 // Truth information
71 BooleanProperty m_doTruth{this,"doTruth",false};
72 StringProperty m_TruthTrkCol{this,"TruthTrkCol","TrackTruthCollection"};
73
74 StringProperty m_inputCol{this,"InputTrkCol","Tracks"};
75 StringProperty m_inputUpCol{this,"InputUpTrkCol",""};
76 StringProperty m_inputLowCol{this,"InputLowTrkCol",""};
77
78 // cosmic segments matching
79 BooleanProperty m_doMatching{this,"doMatching",true};
80 FloatProperty m_matchedRcut{this,"dRCut",100.};
81 FloatProperty m_mindR{this,"minimumdR",10000.};
82
83 // Ntuple
84 StringProperty m_ntupleName{this,"NtupleName","/NTUPLES/GLOBFILE"};
85
86 // variables
102 int m_events{0};
103
104 // tool handles
105 ToolHandle < Trk::ITruthToTrack > m_truthToTrack{this
106 , "TruthToTrackTool"
107 , "Trk::TruthToTrack"
108 , "tool to produce perigee track parameters from generated parameters"};
109
110 ToolHandle < Trk::IExtrapolator > m_extrapolator{this
111 , "ExtrapolationTool"
112 , "Trk::Extrapolator/CosmicsExtrapolator"
113 , "tool to extrapolate tracks"};
114
115 ToolHandle <Trk::ITrackParticleCreatorTool> m_particleCreator{this
116 , "TrackParticleCreatorTool"
117 , "Trk::TrackParticleCreatorTool/TrackParticleCreatorTool"
118 , "tool to build TrackParticle"};
119
120 NTuple::Item<long> m_nt_ntracks;
121 NTuple::Item<long> m_nt_nUptracks;
122 NTuple::Item<long> m_nt_nLowtracks;
123 NTuple::Item<long> m_nt_nmctracks;
124 NTuple::Item<long> m_nt_matchingTrk;
125 // ----------------------------------------------------------------------
126 // Trk::Track parameters
127 NTuple::Array<float> m_nt_Trk_d0;
128 NTuple::Array<float> m_nt_Trk_z0;
129 NTuple::Array<float> m_nt_Trk_phi0;
130 NTuple::Array<float> m_nt_Trk_theta0;
131 NTuple::Array<float> m_nt_Trk_qoverp;
132 NTuple::Array<float> m_nt_Trk_pt;
133 // ----------------------------------------------------------------------
134
135 // ----------------------------------------------------------------------
136 NTuple::Array<long> m_nt_Trk_nHits;
137 NTuple::Array<long> m_nt_Trk_nhitspix;
138 NTuple::Array<long> m_nt_Trk_nhitssct;
139 NTuple::Array<long> m_nt_Trk_nhitstrt;
140
141 NTuple::Array<long> m_nt_Trk_nsharedPixels;
142 NTuple::Array<long> m_nt_Trk_nsharedSCT;
143 NTuple::Array<long> m_nt_Trk_nshared;
144
145 NTuple::Array<long> m_nt_Trk_nholesPixels;
146 NTuple::Array<long> m_nt_Trk_nholesSCT;
147 NTuple::Array<long> m_nt_Trk_nholes;
148
149 NTuple::Array<float> m_nt_Trk_chi2;
150 NTuple::Array<long> m_nt_Trk_ndof;
151 NTuple::Array<float> m_nt_Trk_chi2Prob;
152 // ----------------------------------------------------------------------
153
154 // ----------------------------------------------------------------------
155 // Trk::Track parameters
156 NTuple::Array<float> m_nt_Trk_d0_Up;
157 NTuple::Array<float> m_nt_Trk_z0_Up;
158 NTuple::Array<float> m_nt_Trk_phi0_Up;
159 NTuple::Array<float> m_nt_Trk_theta0_Up;
160 NTuple::Array<float> m_nt_Trk_qoverp_Up;
161 NTuple::Array<float> m_nt_Trk_pt_Up;
162 // ----------------------------------------------------------------------
163
164 // ----------------------------------------------------------------------
165 NTuple::Array<long> m_nt_Trk_nHits_Up;
166 NTuple::Array<long> m_nt_Trk_nhitspix_Up;
167 NTuple::Array<long> m_nt_Trk_nhitssct_Up;
168 NTuple::Array<long> m_nt_Trk_nhitstrt_Up;
169
170 NTuple::Array<long> m_nt_Trk_nsharedPixels_Up;
171 NTuple::Array<long> m_nt_Trk_nsharedSCT_Up;
172 NTuple::Array<long> m_nt_Trk_nshared_Up;
173
174 NTuple::Array<long> m_nt_Trk_nholesPixels_Up;
175 NTuple::Array<long> m_nt_Trk_nholesSCT_Up;
176 NTuple::Array<long> m_nt_Trk_nholes_Up;
177
178 NTuple::Array<float> m_nt_Trk_chi2_Up;
179 NTuple::Array<long> m_nt_Trk_ndof_Up;
180 NTuple::Array<float> m_nt_Trk_chi2Prob_Up;
181 // ----------------------------------------------------------------------
182
183 // ----------------------------------------------------------------------
184 // Trk::Track parameters
185 NTuple::Array<float> m_nt_Trk_d0_Low;
186 NTuple::Array<float> m_nt_Trk_z0_Low;
187 NTuple::Array<float> m_nt_Trk_phi0_Low;
188 NTuple::Array<float> m_nt_Trk_theta0_Low;
189 NTuple::Array<float> m_nt_Trk_qoverp_Low;
190 NTuple::Array<float> m_nt_Trk_pt_Low;
191 // ----------------------------------------------------------------------
192
193 // ----------------------------------------------------------------------
194 NTuple::Array<long> m_nt_Trk_nHits_Low;
195 NTuple::Array<long> m_nt_Trk_nhitspix_Low;
196 NTuple::Array<long> m_nt_Trk_nhitssct_Low;
197 NTuple::Array<long> m_nt_Trk_nhitstrt_Low;
198
199 NTuple::Array<long> m_nt_Trk_nsharedPixels_Low;
200 NTuple::Array<long> m_nt_Trk_nsharedSCT_Low;
201 NTuple::Array<long> m_nt_Trk_nshared_Low;
202
203 NTuple::Array<long> m_nt_Trk_nholesPixels_Low;
204 NTuple::Array<long> m_nt_Trk_nholesSCT_Low;
205 NTuple::Array<long> m_nt_Trk_nholes_Low;
206
207 NTuple::Array<float> m_nt_Trk_chi2_Low;
208 NTuple::Array<long> m_nt_Trk_ndof_Low;
209 NTuple::Array<float> m_nt_Trk_chi2Prob_Low;
210 // ----------------------------------------------------------------------
211
212 // ----------------------------------------------------------------------
213 NTuple::Array<float> m_nt_mc_trkistruth;
214
215 // generated particle parameters
216 NTuple::Array<float> m_nt_mc_Trk_genParticlePt;
217 NTuple::Array<float> m_nt_mc_Trk_genParticleEta;
218 NTuple::Array<float> m_nt_mc_Trk_genParticlePhi;
219
220 // MonteCarlo Track parameters
221 NTuple::Array<float> m_nt_mc_Trk_d0;
222 NTuple::Array<float> m_nt_mc_Trk_z0;
223 NTuple::Array<float> m_nt_mc_Trk_phi0;
224 NTuple::Array<float> m_nt_mc_Trk_theta0;
225 NTuple::Array<float> m_nt_mc_Trk_eta;
226 NTuple::Array<float> m_nt_mc_Trk_qoverp;
227 NTuple::Array<float> m_nt_mc_Trk_qoverpt;
228
229 NTuple::Array<float> m_nt_mc_Trk_pt;
230 NTuple::Array<float> m_nt_mc_Trk_charge;
231 NTuple::Array<float> m_nt_mc_Trk_prob;
232 NTuple::Array<float> m_nt_mc_Trk_pdg;
233
234 NTuple::Array<float> m_nt_mc_Trk_vtxX;
235 NTuple::Array<float> m_nt_mc_Trk_vtxY;
236 NTuple::Array<float> m_nt_mc_Trk_vtxZ;
237 // ----------------------------------------------------------------------
238
239
240 // ----------------------------------------------------------------------
241 // Matching Trk::Track_Up and Trk::Track_Low
242 NTuple::Array<float> m_nt_Trk_delta_d0;
243 NTuple::Array<float> m_nt_Trk_delta_z0;
244 NTuple::Array<float> m_nt_Trk_delta_phi0;
245 //**
246 NTuple::Array<float> m_nt_Trk_delta_theta0;
247 NTuple::Array<float> m_nt_Trk_delta_eta;
248 NTuple::Array<float> m_nt_Trk_delta_qoverpt;
249 NTuple::Array<float> m_nt_Trk_delta_pt;
250 NTuple::Array<float> m_nt_Trk_delta_charge;
251 // ----------------------------------------------------------------------
252
253};
254
255#endif // INDETALIGNGENTOOLS_INDETALIGNFILLTRACK_H
Extrapolation for HepMC particles.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
NTuple::Array< long > m_nt_Trk_nhitssct_Low
number of SCT hits (Low track)
NTuple::Array< long > m_nt_Trk_nsharedPixels_Up
number of Pixel shared hits (Up track)
void dumpTrack(int, const Trk::Track *, const std::string &)
NTuple::Array< long > m_nt_Trk_nholesSCT
number of SCT holes
BooleanProperty m_doTruth
switch on/off the truth information
NTuple::Item< long > m_nt_nmctracks
number of mc tracks
NTuple::Array< float > m_nt_Trk_delta_charge
charge parameter
virtual StatusCode FillTrack() override
ServiceHandle< INTupleSvc > m_ntupleSvc
NTuple::Array< float > m_nt_Trk_d0
d0 parameter
virtual int GetTrks() const override
NTuple::Array< float > m_nt_Trk_chi2Prob_Up
number of chi2 probability (Up track)
NTuple::Array< long > m_nt_Trk_nsharedSCT_Low
number of SCT shared hits (Low track)
NTuple::Array< long > m_nt_Trk_nholes
number of holes
NTuple::Array< long > m_nt_Trk_nholesSCT_Up
number of SCT holes (Up track)
virtual int GetTrkSCTHits() const override
NTuple::Array< float > m_nt_mc_Trk_vtxY
MonteCarlo Vertex.Y parameter.
NTuple::Array< long > m_nt_Trk_nholes_Up
number of holes (Up track)
StringProperty m_ntupleName
NTuple::Array< float > m_nt_Trk_theta0_Up
theta0 parameter (Up track)
NTuple::Array< long > m_nt_Trk_ndof
number of ndof
NTuple::Array< float > m_nt_mc_Trk_genParticlePt
generated pt
NTuple::Array< float > m_nt_Trk_qoverp_Low
q/p parameter (Low track)
NTuple::Item< long > m_nt_matchingTrk
matching tracks
NTuple::Array< float > m_nt_mc_trkistruth
Has the Track an associated truth track?
NTuple::Array< float > m_nt_Trk_qoverp_Up
q/p parameter (Up track)
virtual int GetTrkTRTHits() const override
NTuple::Array< long > m_nt_Trk_nshared
number of shared hits
StringProperty m_inputLowCol
NTuple::Array< float > m_nt_mc_Trk_qoverpt
MonteCarlo q/pt parameter.
NTuple::Array< long > m_nt_Trk_nholesPixels_Up
number of Pixel holes (Up track)
NTuple::Array< float > m_nt_Trk_delta_qoverpt
q/pt parameter
NTuple::Array< float > m_nt_Trk_chi2_Low
number of chi2 (Low track)
NTuple::Array< float > m_nt_Trk_delta_pt
pt parameter
NTuple::Array< float > m_nt_Trk_d0_Up
d0 parameter (Up track)
NTuple::Array< long > m_nt_Trk_nHits_Up
number of hits (Up track)
NTuple::Array< long > m_nt_Trk_nshared_Low
number of shared hits (Low track)
NTuple::Array< long > m_nt_Trk_nhitstrt
number of TRT hits
NTuple::Array< float > m_nt_mc_Trk_genParticleEta
generated eta
NTuple::Array< float > m_nt_Trk_pt_Up
pt parameter (Up track)
NTuple::Array< long > m_nt_Trk_nholesPixels_Low
number of Pixel holes (Low track)
NTuple::Array< long > m_nt_Trk_nsharedPixels
number of Pixel shared hits
NTuple::Array< float > m_nt_Trk_pt_Low
pt parameter (Low track)
NTuple::Array< float > m_nt_mc_Trk_z0
MonteCarlo z0 parameter.
NTuple::Array< long > m_nt_Trk_nhitstrt_Low
number of TRT hits (Low track)
NTuple::Array< float > m_nt_mc_Trk_qoverp
MonteCarlo q/p parameter.
NTuple::Array< float > m_nt_mc_Trk_pdg
MonteCarlo pdg parameter.
NTuple::Array< float > m_nt_mc_Trk_eta
MonteCarlo eta parameter.
NTuple::Array< float > m_nt_Trk_z0_Low
z0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_chi2
number of chi2
NTuple::Array< float > m_nt_mc_Trk_prob
MonteCarlo prob parameter.
virtual StatusCode finalize() override
NTuple::Array< long > m_nt_Trk_nhitssct
number of SCT hits
NTuple::Array< float > m_nt_mc_Trk_vtxZ
MonteCarlo Vertex.Z parameter.
NTuple::Array< long > m_nt_Trk_nshared_Up
number of shared hits (Up track)
NTuple::Array< float > m_nt_Trk_phi0
phi0 parameter
NTuple::Array< long > m_nt_Trk_nhitspix_Up
number of Pixel hits (Up track)
StringProperty m_inputUpCol
NTuple::Array< long > m_nt_Trk_nhitspix_Low
number of Pixel hits (Low track)
NTuple::Array< float > m_nt_Trk_delta_z0
z0 parameter
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreator
NTuple::Array< float > m_nt_Trk_theta0
theta0 parameter
NTuple::Array< float > m_nt_Trk_qoverp
q/p parameter
NTuple::Array< float > m_nt_Trk_d0_Low
d0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_delta_phi0
phi0 parameter
NTuple::Array< float > m_nt_mc_Trk_d0
MonteCarlo d0 parameter.
NTuple::Item< long > m_nt_ntracks
number of tracks
NTuple::Item< long > m_nt_nLowtracks
number of Low tracks
virtual StatusCode initialize() override
ToolHandle< Trk::ITruthToTrack > m_truthToTrack
NTuple::Array< long > m_nt_Trk_nhitspix
number of Pixel hits
void dumpPerigee(const Trk::TrackParameters *, int)
NTuple::Array< float > m_nt_Trk_delta_theta0
theta parameter
virtual int GetTrkPixHits() const override
BooleanProperty m_doMatching
switch on/off the matching information
NTuple::Array< long > m_nt_Trk_ndof_Up
number of ndof (Up track)
NTuple::Array< long > m_nt_Trk_nholes_Low
number of holes (Low track)
int dumpTrackCol(const TrackCollection *)
NTuple::Array< float > m_nt_mc_Trk_genParticlePhi
generated phi
NTuple::Array< float > m_nt_Trk_z0
z0 parameter
NTuple::Array< float > m_nt_mc_Trk_phi0
MonteCarlo phi0 parameter.
NTuple::Array< float > m_nt_Trk_z0_Up
z0 parameter (Up track)
StringProperty m_TruthTrkCol
NTuple::Array< long > m_nt_Trk_nsharedPixels_Low
number of Pixel shared hits (Low track)
InDetAlignFillTrack(const std::string &type, const std::string &name, const IInterface *parent)
NTuple::Array< float > m_nt_Trk_chi2Prob_Low
number of chi2 probability (Low track)
NTuple::Array< long > m_nt_Trk_nsharedSCT_Up
number of SCT shared hits (Up track)
NTuple::Array< long > m_nt_Trk_nsharedSCT
number of SCT shared hits
NTuple::Array< long > m_nt_Trk_nhitstrt_Up
number of TRT hits (Up track)
NTuple::Array< long > m_nt_Trk_nHits
number of hits
virtual int GetTrkHits() const override
NTuple::Array< float > m_nt_Trk_phi0_Low
phi0 parameter (Low track)
NTuple::Array< float > m_nt_mc_Trk_charge
MonteCarlo charge parameter.
NTuple::Array< float > m_nt_mc_Trk_pt
MonteCarlo pt parameter.
NTuple::Array< long > m_nt_Trk_nHits_Low
number of hits (Low track)
NTuple::Array< float > m_nt_Trk_chi2Prob
number of chi2 probability
NTuple::Array< long > m_nt_Trk_nhitssct_Up
number of SCT hits (Up track)
NTuple::Array< long > m_nt_Trk_nholesSCT_Low
number of SCT holes (Low track)
NTuple::Array< float > m_nt_Trk_phi0_Up
phi0 parameter (Up track)
StatusCode dumpMatching(const TrackCollection *, const TrackCollection *)
NTuple::Array< float > m_nt_Trk_theta0_Low
theta0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_delta_eta
eta parameter
NTuple::Array< float > m_nt_Trk_pt
pt parameter
NTuple::Array< float > m_nt_mc_Trk_vtxX
MonteCarlo Vertex.X parameter.
NTuple::Array< float > m_nt_Trk_delta_d0
d0 parameter
NTuple::Array< float > m_nt_Trk_chi2_Up
number of chi2 (Up track)
NTuple::Array< long > m_nt_Trk_ndof_Low
number of ndof (Low track)
NTuple::Item< long > m_nt_nUptracks
number of Up tracks
ToolHandle< Trk::IExtrapolator > m_extrapolator
NTuple::Array< long > m_nt_Trk_nholesPixels
number of Pixel holes
NTuple::Array< float > m_nt_mc_Trk_theta0
MonteCarlo theta0 parameter.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters