ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::DetailedIDNtupleTool Class Reference

#include <DetailedIDNtupleTool.h>

Inheritance diagram for InDet::DetailedIDNtupleTool:
Collaboration diagram for InDet::DetailedIDNtupleTool:

Public Member Functions

 DetailedIDNtupleTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~DetailedIDNtupleTool ()
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual void dumpTrack (int itrk, const Trk::AlignTrack *alignTrack) override
 fills track information to ntuple
virtual void storeHitmap () override
 stores hitmap for writing to ntuple
virtual void fillHitmap () override
 fills ntuple with hit information
virtual void fillSummary () override
 fills ntuple with event and track summary information
virtual void showStatistics () override
 write statistics out to log file
virtual void setNtuple (TFile *ntuple) override
 sets the output stream for the logfile
virtual StatusCode fillNtuple () override
 writes trees and histograms to ntuple
virtual void fillChi2VChamberShift (const int, const int, int *, double **, double **, double **, double **, double **, double **)
 used for numerical derivatives to write chi2 vs.
virtual void setLogStream (std::ostream *os)
 returns pointer to TFile containing ntuple
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Protected Attributes

std::ostream * m_logStream = nullptr
 logfile output stream

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

bool retrieveTruthInfo (const Trk::AlignTrack *trk)
const Trk::TrackParametersperigeeParameter (const Trk::AlignTrack *track) const
void initializeNtuple ()
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< Trk::ITrackSummaryToolm_trackSumTool
 Pointer to track summary tool.
ToolHandle< Trk::IAlignModuleToolm_alignModuleTool
 Pointer to AlignmModuleTool.
PublicToolHandle< Trk::ITruthToTrackm_truthToTrack {this,"TruthToTrack","Trk::TruthToTrack/InDetTruthToTrack",""}
 the truth to track Tool
PublicToolHandle< Trk::IExtrapolatorm_extrapolator {this,"Extrapolator","Trk::Extrapolator/AtlasExtrapolator",""}
 track extrapolator
bool m_storeNormalRefittedOnly
 only store the AlignTrack which is normally refitted
bool m_storeConstrainedOnly
 onlystore the AlignTrack which is normally refitted
bool m_storeTruth
 retrieve the truth information
double m_matchProbability
 the probabililty cut in the truth matching
TFile * m_file
TTree * m_tree
std::string m_filename
 name of ntuple file
std::string m_filepath
 path to ntuple file
std::string m_trackCollection
std::string m_tracksTruthName
int m_runNumber = 0
int m_evtNumber = 0
double m_original_xvtx = 0.0
double m_original_yvtx = 0.0
double m_original_zvtx = 0.0
double m_original_d0 = 0.0
double m_original_z0 = 0.0
double m_original_phi0 = 0.0
double m_original_theta = 0.0
double m_original_qoverp = 0.0
double m_original_pt = 0.0
double m_original_eta = 0.0
double m_original_chi2 = 0.0
int m_original_ndof = 0
double m_original_chi2prob = 0.0
double m_original_err_d0 = 0.0
double m_original_err_z0 = 0.0
double m_original_err_phi0 = 0.0
double m_original_err_theta = 0.0
double m_original_err_qoverp = 0.0
double m_truth_d0 = 0.0
double m_truth_z0 = 0.0
double m_truth_phi0 = 0.0
double m_truth_theta = 0.0
double m_truth_eta = 0.0
double m_truth_pt = 0.0
double m_truth_qoverp = 0.0
double m_truth_qoverpt = 0.0
double m_truth_charge = 0.0
double m_truth_prod_x = 0.0
double m_truth_prod_y = 0.0
double m_truth_prod_z = 0.0
double m_original_toRef_d0 = 0.0
double m_original_toRef_z0 = 0.0
double m_original_toRef_phi0 = 0.0
double m_original_toRef_theta = 0.0
double m_original_toRef_qoverp = 0.0
double m_toRef_d0 = 0.0
double m_toRef_z0 = 0.0
double m_toRef_phi0 = 0.0
double m_toRef_theta = 0.0
double m_toRef_qoverp = 0.0
double m_err_d0 = 0.0
double m_err_z0 = 0.0
double m_err_phi0 = 0.0
double m_err_theta = 0.0
double m_err_qoverp = 0.0
double m_xvtx = 0.0
double m_yvtx = 0.0
double m_zvtx = 0.0
double m_d0 = 0.0
double m_z0 = 0.0
double m_phi0 = 0.0
double m_theta = 0.0
double m_qoverp = 0.0
double m_pt = 0.0
double m_eta = 0.0
double m_chi2 = 0.0
int m_ndof = 0
double m_chi2prob = 0.0
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 36 of file DetailedIDNtupleTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ DetailedIDNtupleTool()

InDet::DetailedIDNtupleTool::DetailedIDNtupleTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 38 of file DetailedIDNtupleTool.cxx.

39 : AthAlgTool(type, name, parent)
40 , m_trackSumTool("Trk::TrackSummaryTool/TrackSummaryTool", this)
44 , m_storeTruth{true}
46 , m_file{}
47 , m_tree{}
48 , m_trackCollection{"Tracks"}
49 , m_tracksTruthName{"TrackTruthCollection"} {
50 declareInterface<Trk::IFillNtupleTool>(this);
51
52 declareProperty("FileName", m_filename = "IDAlign.root");
53 declareProperty("FilePath", m_filepath = "./");
54 declareProperty("TrackCollection", m_trackCollection);
55 declareProperty("TracksTruthName", m_tracksTruthName);
56 declareProperty("TrackSummaryTool", m_trackSumTool);
57 declareProperty("AlignModuleTool", m_alignModuleTool);
58 declareProperty("MatchProbability", m_matchProbability);
59 declareProperty("StoreTruth", m_storeTruth);
60 declareProperty("MatchProbability", m_matchProbability);
61 declareProperty("StoreNormalRefittedOnly", m_storeNormalRefittedOnly);
62 declareProperty("StoreConstrainedOnly", m_storeConstrainedOnly);
63 }
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
bool m_storeTruth
retrieve the truth information
std::string m_filename
name of ntuple file
bool m_storeConstrainedOnly
onlystore the AlignTrack which is normally refitted
ToolHandle< Trk::ITrackSummaryTool > m_trackSumTool
Pointer to track summary tool.
bool m_storeNormalRefittedOnly
only store the AlignTrack which is normally refitted
std::string m_filepath
path to ntuple file
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
Pointer to AlignmModuleTool.
double m_matchProbability
the probabililty cut in the truth matching

◆ ~DetailedIDNtupleTool()

InDet::DetailedIDNtupleTool::~DetailedIDNtupleTool ( )
virtual

Definition at line 66 of file DetailedIDNtupleTool.cxx.

66 {
67 }

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dumpTrack()

void InDet::DetailedIDNtupleTool::dumpTrack ( int itrk,
const Trk::AlignTrack * alignTrack )
overridevirtual

fills track information to ntuple

if match truth fail, return directly

Implements Trk::IFillNtupleTool.

Definition at line 106 of file DetailedIDNtupleTool.cxx.

106 {
107 ATH_MSG_DEBUG("In dumpTrack()");
109 const EventContext& ctx = Gaudi::Hive::currentContext();
110 // if hope to dump all the tracks, should set:
111 // m_storeNormalRefittedOnly = false, m_storeConstrainedOnly=false
114 return;
115 }
116
117 // get run and event numbers
118 ATH_MSG_DEBUG("Retrieving event info.");
119 const xAOD::EventInfo* eventInfo;
120 if (evtStore()->retrieve(eventInfo).isFailure()) {
121 ATH_MSG_ERROR("Could not retrieve event info.");
122 } else {
123 m_runNumber = eventInfo->runNumber();
124 m_evtNumber = eventInfo->eventNumber();
125 }
126
127 // initialize variables
128 constexpr double invalidParameterValue{-999.};
129 m_d0 = invalidParameterValue;
130 m_z0 = invalidParameterValue;
131 m_phi0 = invalidParameterValue;
132 m_theta = invalidParameterValue;
133 m_qoverp = invalidParameterValue;
134 m_pt = invalidParameterValue;
135 m_eta = invalidParameterValue;
136 constexpr double invalidChiSq{-1e12};
137 m_chi2 = invalidChiSq;
138 m_chi2prob = invalidChiSq;
139 constexpr int invalidDegreesOfFreedom{-999};
140
141 m_ndof = invalidDegreesOfFreedom;
142 m_xvtx = invalidParameterValue;
143 m_yvtx = invalidParameterValue;
144 m_zvtx = invalidParameterValue;
145
146 m_err_d0 = invalidParameterValue;
147 m_err_z0 = invalidParameterValue;
148 m_err_phi0 = invalidParameterValue;
149 m_err_theta = invalidParameterValue;
150 m_err_qoverp = invalidParameterValue;
151 m_toRef_d0 = invalidParameterValue;
152 m_toRef_z0 = invalidParameterValue;
153 m_toRef_phi0 = invalidParameterValue;
154 m_toRef_theta = invalidParameterValue;
155 m_toRef_qoverp = invalidParameterValue;
156
157
158 m_original_d0 = invalidParameterValue;
159 m_original_z0 = invalidParameterValue;
160 m_original_phi0 = invalidParameterValue;
161 m_original_theta = invalidParameterValue;
162 m_original_qoverp = invalidParameterValue;
163 m_original_pt =invalidParameterValue;
164 m_original_eta = -999.;
165 m_original_chi2 = invalidChiSq;
166 m_original_chi2prob = invalidChiSq;
167 m_original_ndof = invalidDegreesOfFreedom;
168 m_original_xvtx = invalidParameterValue;
169 m_original_yvtx = invalidParameterValue;
170 m_original_zvtx = invalidParameterValue;
171
172 m_original_err_d0 = invalidParameterValue;
173 m_original_err_z0 = invalidParameterValue;
174 m_original_err_phi0 = invalidParameterValue;
175 m_original_err_theta = invalidParameterValue;
176 m_original_err_qoverp = invalidParameterValue;;
177 m_original_toRef_d0 = invalidParameterValue;
178 m_original_toRef_z0 = invalidParameterValue;
179 m_original_toRef_phi0 = invalidParameterValue;
180 m_original_toRef_theta =invalidParameterValue;
181 m_original_toRef_qoverp = invalidParameterValue;;
182
183 m_truth_d0 = invalidParameterValue;
184 m_truth_z0 = invalidParameterValue;
185 m_truth_phi0 = invalidParameterValue;
186 m_truth_theta = invalidParameterValue;
187 m_truth_qoverp = invalidParameterValue;
188 m_truth_pt = invalidParameterValue;
189 m_truth_eta = invalidParameterValue;;
190 m_truth_prod_x = invalidParameterValue;
191 m_truth_prod_y = invalidParameterValue;
192 m_truth_prod_z = invalidParameterValue;;
193
194
195
196 const Trk::Perigee* aMeasPer = (alignTrack->perigeeParameters());
197
198 if (not aMeasPer) {
199 ATH_MSG_ERROR("Could not get Trk::Perigee of the alignTrack");
200 return;
201 } else {
202 m_d0 = aMeasPer->parameters()[Trk::d0];
203 m_z0 = aMeasPer->parameters()[Trk::z0];
204 m_phi0 = aMeasPer->parameters()[Trk::phi0];
205 m_theta = aMeasPer->parameters()[Trk::theta];
206 m_qoverp = aMeasPer->parameters()[Trk::qOverP];
207
208 const AmgSymMatrix(5) * locCov = aMeasPer->covariance();
209 m_err_d0 = Amg::error(*locCov, Trk::d0);
210 m_err_z0 = Amg::error(*locCov, Trk::z0);
211 m_err_phi0 = Amg::error(*locCov, Trk::phi0);
214
215 m_pt =
216 std::sqrt((aMeasPer->momentum().x()) * (aMeasPer->momentum().x()) + (aMeasPer->momentum().y()) *
217 (aMeasPer->momentum().y()));
218 m_eta = aMeasPer->eta();
219
220 m_xvtx = aMeasPer->position().x();
221 m_yvtx = aMeasPer->position().y();
222 m_zvtx = aMeasPer->position().z();
223
224
225
226 // get fit quality and chi2 probability of track
227 const Trk::FitQuality* fitQual = alignTrack->fitQuality();
228 if (not fitQual) ATH_MSG_ERROR("No fit quality assigned to the track");
229 else {
230 if (fitQual->chiSquared() > 0. && fitQual->numberDoF() > 0) {
231 m_chi2 = fitQual->chiSquared();
232 m_ndof = fitQual->numberDoF();
233 m_chi2prob = TMath::Prob(m_chi2, m_ndof);
234
235 ATH_MSG_DEBUG(" - chi2 : " << m_chi2);
236 ATH_MSG_DEBUG(" - ndof : " << m_ndof);
237 ATH_MSG_DEBUG(" - chi2/ndof : " << m_chi2 / (double) m_ndof);
238 ATH_MSG_DEBUG(" - chi2 propability : " << m_chi2prob);
239 }
240 }
241 }
242
243 const Trk::MeasurementBase* measbase = *(alignTrack->measurementsOnTrack()->begin());
244 Amg::Vector3D refPoint = measbase->associatedSurface().center();
245 const Trk::VertexOnTrack* vot = dynamic_cast<const Trk::VertexOnTrack*> (measbase);
246 if (!vot) {
247 ATH_MSG_ERROR(" Seems the pseudo-measuremnt in the alignTrack not exist!");
248 ATH_MSG_ERROR(" this pseudo-measurement has been rejected as outlier in the refitting!");
249 return;
250 } else {
251 ATH_MSG_DEBUG(" VoT get from the alignTrack:" << *vot);
252 }
253
254 ATH_MSG_DEBUG(" the pseudo-measurement position: " << refPoint);
255 const Trk::Track* originalTrack = alignTrack->originalTrack();
256
257 const Trk::Perigee* originalMeasPer = originalTrack->perigeeParameters();
258 if (!originalMeasPer) {
259 ATH_MSG_ERROR("No original track!");
260 } else {
261 m_original_d0 = originalMeasPer->parameters()[Trk::d0];
262 m_original_z0 = originalMeasPer->parameters()[Trk::z0];
263 m_original_phi0 = originalMeasPer->parameters()[Trk::phi0];
264 m_original_theta = originalMeasPer->parameters()[Trk::theta];
265 m_original_qoverp = originalMeasPer->parameters()[Trk::qOverP];
266
267 const AmgSymMatrix(5) * locError = originalMeasPer->covariance();
273
275 m_original_eta = -std::log(std::tan(0.5 * m_original_theta));
276
277 m_original_xvtx = originalMeasPer->position().x();
278 m_original_yvtx = originalMeasPer->position().y();
279 m_original_zvtx = originalMeasPer->position().z();
280
281 // get fit quality and chi2 probability of original Track
282 const Trk::FitQuality* originalFitQual = originalTrack->fitQuality();
283 if (not originalFitQual) ATH_MSG_ERROR("No fit quality assigned to the track");
284 else {
285 if (originalFitQual->chiSquared() > 0. && originalFitQual->numberDoF() > 0) {
286 m_original_chi2 = originalFitQual->chiSquared();
287 m_original_ndof = originalFitQual->numberDoF();
289
290 ATH_MSG_DEBUG(" - original chi2 : " << m_original_chi2);
291 ATH_MSG_DEBUG(" - original ndof : " << m_original_ndof);
292 ATH_MSG_DEBUG(" - original chi2/ndof : " << m_original_chi2 / (double) m_original_ndof);
293 ATH_MSG_DEBUG(" - original chi2 propability : " << m_original_chi2prob);
294 }
295 }
296
297
298 const Trk::PerigeeSurface persf(refPoint);
299 const Trk::Perigee* originalPerigeeAtRef =
300 dynamic_cast<const Trk::Perigee*>(m_extrapolator->extrapolateTrack(ctx, *originalTrack, persf).release());
301 if (!originalPerigeeAtRef) {
302 const Trk::Perigee* originalTrackPerigee = originalTrack->perigeeParameters();
303 if (originalTrackPerigee && ((originalTrackPerigee->associatedSurface())) == persf) {
304 ATH_MSG_DEBUG("Perigee of Track is already expressed to given vertex, a copy is returned.");
305 originalPerigeeAtRef = originalTrackPerigee->clone();
306 } else ATH_MSG_DEBUG("Extrapolation to Perigee failed, NULL pointer is returned.");
307 }
308
309 if (originalPerigeeAtRef) {
310 std::unique_ptr<const Trk::Perigee > originalMeasPerAtRef(originalPerigeeAtRef);
311 m_original_toRef_d0 = originalMeasPerAtRef->parameters()[Trk::d0];
312 m_original_toRef_z0 = originalMeasPerAtRef->parameters()[Trk::z0];
313 m_original_toRef_phi0 = originalMeasPerAtRef->parameters()[Trk::phi0];
314 m_original_toRef_theta = originalMeasPerAtRef->parameters()[Trk::theta];
315 m_original_toRef_qoverp = originalMeasPerAtRef->parameters()[Trk::qOverP];
316 }
317
318 const Trk::Perigee* PerigeeAtRef =
319 dynamic_cast<const Trk::Perigee*>(m_extrapolator->extrapolateTrack(ctx, *alignTrack, persf).release());
320 if (!PerigeeAtRef) {
321 const Trk::Perigee* alignTrackPerigee = alignTrack->perigeeParameters();
322 if (alignTrackPerigee && ((alignTrackPerigee->associatedSurface())) == persf) {
323 ATH_MSG_DEBUG("Perigee of AlignTrack is already expressed to given vertex, a copy is returned.");
324 PerigeeAtRef = alignTrackPerigee->clone();
325 } else ATH_MSG_DEBUG("Extrapolation to Perigee failed, NULL pointer is returned.");
326 }
327
328 //post-eigen, can simply use the TrackParameters * returned by m_extrapolator->extrapolate?
329 if (PerigeeAtRef) {
330 std::unique_ptr<const Trk::Perigee > MeasPerAtRef((PerigeeAtRef));
331 m_toRef_d0 = MeasPerAtRef->parameters()[Trk::d0];
332 m_toRef_z0 = MeasPerAtRef->parameters()[Trk::z0];
333 m_toRef_phi0 = MeasPerAtRef->parameters()[Trk::phi0];
334 m_toRef_theta = MeasPerAtRef->parameters()[Trk::theta];
335 m_toRef_qoverp = MeasPerAtRef->parameters()[Trk::qOverP];
336 }
337 }
338
340 if (m_storeTruth) retrieveTruthInfo(alignTrack);
341
342
343 m_file->cd();
344 m_tree->Fill();
345 ATH_MSG_DEBUG("tree filled");
346
347 return;
348 }
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
#define AmgSymMatrix(dim)
ServiceHandle< StoreGateSvc > & evtStore()
PublicToolHandle< Trk::IExtrapolator > m_extrapolator
track extrapolator
bool retrieveTruthInfo(const Trk::AlignTrack *trk)
const Track * originalTrack() const
retrieve pointer to original track
Definition AlignTrack.h:90
@ NormalRefitted
normally refitted, without adding any pseudo-measurement
Definition AlignTrack.h:48
@ BeamspotConstrained
refitted with beamspot constraint
Definition AlignTrack.h:49
AlignTrackType type() const
get and set the refit type
Definition AlignTrack.h:96
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
const Amg::Vector3D & position() const
Access method for the position.
virtual ParametersT< DIM, T, S > * clone() const override final
Virtual clone.
virtual const S & associatedSurface() const override final
Access to the Surface method.
const Amg::Vector3D & center() const
Returns the center position of the Surface.
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
const Perigee * perigeeParameters() const
return Perigee.
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
uint32_t runNumber() const
The current event's run number.
uint64_t eventNumber() const
The current event's event number.
static std::string release
Definition computils.h:50
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Eigen::Matrix< double, 3, 1 > Vector3D
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ phi0
Definition ParamDefs.h:65
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ d0
Definition ParamDefs.h:63
@ z0
Definition ParamDefs.h:64
retrieve(aClass, aKey=None)
Definition PyKernel.py:110
EventInfo_v1 EventInfo
Definition of the latest event info version.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fillChi2VChamberShift()

virtual void Trk::IFillNtupleTool::fillChi2VChamberShift ( const int ,
const int ,
int * ,
double ** ,
double ** ,
double ** ,
double ** ,
double ** ,
double **  )
inlinevirtualinherited

used for numerical derivatives to write chi2 vs.

chamber positions

Definition at line 59 of file IFillNtupleTool.h.

61 {}

◆ fillHitmap()

void InDet::DetailedIDNtupleTool::fillHitmap ( )
overridevirtual

fills ntuple with hit information

Implements Trk::IFillNtupleTool.

Definition at line 464 of file DetailedIDNtupleTool.cxx.

464 {
465 }

◆ fillNtuple()

StatusCode InDet::DetailedIDNtupleTool::fillNtuple ( )
overridevirtual

writes trees and histograms to ntuple

Implements Trk::IFillNtupleTool.

Definition at line 91 of file DetailedIDNtupleTool.cxx.

91 {
92 if (m_file && m_file->IsOpen()) {
93 m_file->cd();
94 if (m_tree) m_tree->Write();
95 }
96 return StatusCode::SUCCESS;
97 }

◆ fillSummary()

void InDet::DetailedIDNtupleTool::fillSummary ( )
overridevirtual

fills ntuple with event and track summary information

Implements Trk::IFillNtupleTool.

Definition at line 467 of file DetailedIDNtupleTool.cxx.

467 {
468 }

◆ finalize()

StatusCode InDet::DetailedIDNtupleTool::finalize ( )
overridevirtual

Implements Trk::IFillNtupleTool.

Definition at line 100 of file DetailedIDNtupleTool.cxx.

100 {
101 ATH_MSG_DEBUG("finalize() of DetailedIDNtupleTool");
102 return StatusCode::SUCCESS;
103 }

◆ initialize()

StatusCode InDet::DetailedIDNtupleTool::initialize ( )
overridevirtual

Implements Trk::IFillNtupleTool.

Definition at line 70 of file DetailedIDNtupleTool.cxx.

70 {
71 ATH_MSG_DEBUG("initialize() of DetailedIDNtupleTool");
72 ATH_MSG_DEBUG("creating file with name " << m_filepath << m_filename);
73
75 ATH_CHECK(m_truthToTrack.retrieve());
76
77 /* Retrieve extrapolator tool */
78 ATH_CHECK(m_extrapolator.retrieve());
79
80 // get AlignModuleTool
81 if (m_alignModuleTool.empty()) {
82 ATH_MSG_FATAL("m_alignModuleTool is empty in DetailedIDNtupleTool::initialize()");
83 return StatusCode::FAILURE;
84 } else {
85 ATH_CHECK(m_alignModuleTool.retrieve());
86 }
87 return StatusCode::SUCCESS;
88 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
PublicToolHandle< Trk::ITruthToTrack > m_truthToTrack
the truth to track Tool

◆ initializeNtuple()

void InDet::DetailedIDNtupleTool::initializeNtuple ( )
private

Definition at line 475 of file DetailedIDNtupleTool.cxx.

475 {
476 //m_file = new TFile((m_filepath+m_filename).c_str(), "RECREATE");
477 m_file->cd();
478 m_tree = new TTree("IDAlign", "Inner Detector Alignment Ntuple");
479
480 m_tree->Branch("run", &m_runNumber, "run/I");
481 m_tree->Branch("evt", &m_evtNumber, "evt/I");
482
483 m_tree->Branch("xvtx", &m_xvtx, "xvtx/D");
484 m_tree->Branch("yvtx", &m_yvtx, "yvtx/D");
485 m_tree->Branch("zvtx", &m_zvtx, "zvtx/D");
486 m_tree->Branch("d0", &m_d0, "d0/D");
487 m_tree->Branch("z0", &m_z0, "z0/D");
488 m_tree->Branch("phi0", &m_phi0, "phi0/D");
489 m_tree->Branch("theta", &m_theta, "theta/D");
490 m_tree->Branch("qoverp", &m_qoverp, "qoverp/D");
491 m_tree->Branch("pt", &m_pt, "pt/D");
492 m_tree->Branch("eta", &m_eta, "eta/D");
493 m_tree->Branch("chi2", &m_chi2, "chi2/D");
494 m_tree->Branch("ndof", &m_ndof, "ndof/I");
495 m_tree->Branch("chi2prob", &m_chi2prob, "chi2prob/D");
496 m_tree->Branch("err_d0", &m_err_d0, "err_d0/D");
497 m_tree->Branch("err_z0", &m_err_z0, "err_z0/D");
498 m_tree->Branch("err_phi0", &m_err_phi0, "err_phi0/D");
499 m_tree->Branch("err_theta", &m_err_theta, "err_theta/D");
500 m_tree->Branch("err_qoverp", &m_err_qoverp, "err_qoverp/D");
501
502 if (m_storeTruth) {
503 m_tree->Branch("m_truth_prod_x", &m_truth_prod_x, "truth_prod_x/D");
504 m_tree->Branch("m_truth_prod_y", &m_truth_prod_y, "truth_prod_y/D");
505 m_tree->Branch("m_truth_prod_z", &m_truth_prod_z, "truth_prod_z/D");
506 m_tree->Branch("truth_d0", &m_truth_d0, "truth_d0/D");
507 m_tree->Branch("truth_z0", &m_truth_z0, "truth_z0/D");
508 m_tree->Branch("truth_phi0", &m_truth_phi0, "truth_phi0/D");
509 m_tree->Branch("truth_theta", &m_truth_theta, "truth_theta/D");
510 m_tree->Branch("truth_qoverp", &m_truth_qoverp, "truth_qoverp/D");
511 m_tree->Branch("truth_pt", &m_truth_pt, "truth_pt/D");
512 m_tree->Branch("truth_eta", &m_truth_eta, "truth_eta/D");
513 }
514
515 m_tree->Branch("original_xvtx", &m_original_xvtx, "original_xvtx/D");
516 m_tree->Branch("original_yvtx", &m_original_yvtx, "original_yvtx/D");
517 m_tree->Branch("original_zvtx", &m_original_zvtx, "original_zvtx/D");
518 m_tree->Branch("original_d0", &m_original_d0, "original_d0/D");
519 m_tree->Branch("original_z0", &m_original_z0, "original_z0/D");
520 m_tree->Branch("original_phi0", &m_original_phi0, "original_phi0/D");
521 m_tree->Branch("original_theta", &m_original_theta, "original_theta/D");
522 m_tree->Branch("original_qoverp", &m_original_qoverp, "original_qoverp/D");
523 m_tree->Branch("original_pt", &m_original_pt, "original_pt/D");
524 m_tree->Branch("original_eta", &m_original_eta, "original_eta/D");
525 m_tree->Branch("original_chi2", &m_original_chi2, "original_chi2/D");
526 m_tree->Branch("original_ndof", &m_original_ndof, "original_ndof/I");
527 m_tree->Branch("original_chi2prob", &m_original_chi2prob, "original_chi2prob/D");
528
529 m_tree->Branch("original_err_d0", &m_original_err_d0, "original_err_d0/D");
530 m_tree->Branch("original_err_z0", &m_original_err_z0, "original_err_z0/D");
531 m_tree->Branch("original_err_phi0", &m_original_err_phi0, "original_err_phi0/D");
532 m_tree->Branch("original_err_theta", &m_original_err_theta, "original_err_theta/D");
533 m_tree->Branch("original_err_qoverp", &m_original_err_qoverp, "original_err_qoverp/D");
534
535 m_tree->Branch("toRef_d0", &m_toRef_d0, "toRef_d0/D");
536 m_tree->Branch("toRef_z0", &m_toRef_z0, "toRef_z0/D");
537 m_tree->Branch("toRef_phi0", &m_toRef_phi0, "toRef_phi0/D");
538 m_tree->Branch("toRef_theta", &m_toRef_theta, "toRef_theta/D");
539 m_tree->Branch("toRef_qoverp", &m_toRef_qoverp, "toRef_qoverp/D");
540 m_tree->Branch("original_toRef_d0", &m_original_toRef_d0, "original_toRef_d0/D");
541 m_tree->Branch("original_toRef_z0", &m_original_toRef_z0, "original_toRef_z0/D");
542 m_tree->Branch("original_toRef_phi0", &m_original_toRef_phi0, "original_toRef_phi0/D");
543 m_tree->Branch("original_toRef_theta", &m_original_toRef_theta, "original_toRef_theta/D");
544 m_tree->Branch("original_toRef_qoverp", &m_original_toRef_qoverp, "original_toRef_qoverp/D");
545
546 return;
547 }

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & IFillNtupleTool::interfaceID ( )
inlinestaticinherited

Definition at line 80 of file IFillNtupleTool.h.

static const InterfaceID IID_TRKALIGNINTERFACES_IFillNtupleTool("IFillNtupleTool", 1, 0)

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ perigeeParameter()

const Trk::TrackParameters * InDet::DetailedIDNtupleTool::perigeeParameter ( const Trk::AlignTrack * track) const
private

Definition at line 445 of file DetailedIDNtupleTool.cxx.

445 {
446 const Trk::TrackParameters* aMeasPer {};
447
448 for (const auto i:*(alignTrack->trackStateOnSurfaces())) {
450 aMeasPer = (i->trackParameters());
451 break;
452 }
453 }
454 if (not aMeasPer) {
455 ATH_MSG_ERROR("Could not get Trk::MeasuredPerigee of the alignTrack");
456 }
457 return aMeasPer;
458 }
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ retrieveTruthInfo()

bool InDet::DetailedIDNtupleTool::retrieveTruthInfo ( const Trk::AlignTrack * trk)
private

Definition at line 350 of file DetailedIDNtupleTool.cxx.

350 {
351 // although we select tracks using the TrackSelectionTool, we still need to get a complete TrackCollection
352 // from StoreGate for use in the track-truth map, otherwise the track-truth matching is screwed up
353
354 const TrackCollection* RecCollection = nullptr;
355
356 if (evtStore()->retrieve(RecCollection, m_trackCollection).isFailure()) {
357 ATH_MSG_WARNING("Track collection \"" << m_trackCollection << "\" not found.");
358 return false;
359 }
360 if (RecCollection) {
362 "Retrieved " << m_trackCollection << " with size " << RecCollection->size() <<
363 " reconstructed tracks from storegate");
364 } else {
365 ATH_MSG_WARNING("RecCollection is null pointer in DetailedIDNtupleTool::retrieveTruthInfo");
366 return false;
367 }
368
369 // get TrackTruthCollection
370 const TrackTruthCollection* TruthMap = nullptr;
371 if (StatusCode::SUCCESS != evtStore()->retrieve(TruthMap, m_tracksTruthName)) {
372 ATH_MSG_DEBUG("Cannot find " << m_tracksTruthName);
373 return false;
374 }
375
377 "Track Truth Collection with name " << m_tracksTruthName << " with size " << TruthMap->size() <<
378 " found in StoreGate");
379
380 bool flag = false;
381 // get fit quality and chi2 probability of track
382 const Trk::Perigee* startPerigee = alignTrack->perigeeParameters();
383 const Trk::Perigee* measPer = startPerigee;
384
385 if (measPer == nullptr) {
386 ATH_MSG_DEBUG("No measured perigee parameters assigned to the track");
387 return false;
388 }
389
390 ElementLink<TrackCollection> tracklink;
391 tracklink.setElement(const_cast<Trk::Track*>(alignTrack->originalTrack()));
392 tracklink.setStorableObject(*RecCollection);
393 const ElementLink<TrackCollection> tracklink2 = tracklink;
394
395 TrackTruthCollection::const_iterator found = TruthMap->find(tracklink2);
396 if ((found != TruthMap->end()) && (found->second.probability() > m_matchProbability)) {
397 TrackTruth trtruth = found->second;
398 const HepMcParticleLink& HMPL = trtruth.particleLink();
399
400 if (HMPL.isValid()) {
401#ifdef HEPMC3
402 HepMC::ConstGenParticlePtr genparptr = HMPL.scptr();
403#else
404 const HepMC::GenParticle* genparptr = HMPL.cptr();
405#endif
406
407 if (genparptr) {
408 if (genparptr->production_vertex()) {
409 if (genparptr->pdg_id() == 0) {
410 ATH_MSG_INFO("PDG ID is zero in DetailedIDNtupleTool::retrieveTruthInfo");
411 } else {
412 const Trk::TrackParameters* generatedTrackPerigee = m_truthToTrack->makePerigeeParameters(genparptr);
413 if (!generatedTrackPerigee) ATH_MSG_WARNING("Unable to extrapolate genparticle to perigee!");
414 else {
415 flag = true;
416 m_truth_qoverpt = generatedTrackPerigee->parameters()[Trk::qOverP] / std::sin(
417 generatedTrackPerigee->parameters()[Trk::theta]);
418 m_truth_qoverp = generatedTrackPerigee->parameters()[Trk::qOverP];
419 m_truth_phi0 = generatedTrackPerigee->parameters()[Trk::phi0];
420 m_truth_d0 = generatedTrackPerigee->parameters()[Trk::d0];
421 m_truth_z0 = generatedTrackPerigee->parameters()[Trk::z0];
422 m_truth_theta = generatedTrackPerigee->parameters()[Trk::theta];
423 m_truth_eta = generatedTrackPerigee->eta();
424 m_truth_prod_x = genparptr->production_vertex()->position().x();
425 m_truth_prod_y = genparptr->production_vertex()->position().y();
426 m_truth_prod_z = genparptr->production_vertex()->position().z();
427
428 delete generatedTrackPerigee;
429 m_truth_pt = 1. / std::abs(m_truth_qoverpt);
430 m_truth_charge = 1;
431 if (m_truth_qoverpt < 0) m_truth_charge = -1;
432 if (m_truth_phi0 < 0) m_truth_phi0 += 2 * M_PI;
433 ATH_MSG_DEBUG("Found matched truth track with phi, PT = " << m_truth_phi0 << ", " << m_truth_pt);
434 }
435 }
436 }
437 }
438 }
439 }
440
441 return flag;
442 }
#define M_PI
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
size_type size() const noexcept
Returns the number of elements in the collection.
const HepMcParticleLink & particleLink() const
Definition TrackTruth.h:26
double eta() const
Access method for pseudorapidity - from momentum.
const GenParticle * ConstGenParticlePtr
Definition GenParticle.h:38
bool flag
Definition master.py:29

◆ setLogStream()

virtual void Trk::IFillNtupleTool::setLogStream ( std::ostream * os)
inlinevirtualinherited

returns pointer to TFile containing ntuple

sets the output stream for the logfile

Definition at line 67 of file IFillNtupleTool.h.

67{ m_logStream = os; }
std::ostream * m_logStream
logfile output stream

◆ setNtuple()

virtual void InDet::DetailedIDNtupleTool::setNtuple ( TFile * ntuple)
inlineoverridevirtual

sets the output stream for the logfile

Implements Trk::IFillNtupleTool.

Definition at line 54 of file DetailedIDNtupleTool.h.

54{ m_file=ntuple; }

◆ showStatistics()

void InDet::DetailedIDNtupleTool::showStatistics ( )
overridevirtual

write statistics out to log file

Implements Trk::IFillNtupleTool.

Definition at line 471 of file DetailedIDNtupleTool.cxx.

471 {
472 }

◆ storeHitmap()

void InDet::DetailedIDNtupleTool::storeHitmap ( )
overridevirtual

stores hitmap for writing to ntuple

Implements Trk::IFillNtupleTool.

Definition at line 460 of file DetailedIDNtupleTool.cxx.

460 {
461 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_alignModuleTool

ToolHandle<Trk::IAlignModuleTool> InDet::DetailedIDNtupleTool::m_alignModuleTool
private

Pointer to AlignmModuleTool.

Definition at line 63 of file DetailedIDNtupleTool.h.

◆ m_chi2

double InDet::DetailedIDNtupleTool::m_chi2 = 0.0
private

Definition at line 155 of file DetailedIDNtupleTool.h.

◆ m_chi2prob

double InDet::DetailedIDNtupleTool::m_chi2prob = 0.0
private

Definition at line 157 of file DetailedIDNtupleTool.h.

◆ m_d0

double InDet::DetailedIDNtupleTool::m_d0 = 0.0
private

Definition at line 148 of file DetailedIDNtupleTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_err_d0

double InDet::DetailedIDNtupleTool::m_err_d0 = 0.0
private

Definition at line 139 of file DetailedIDNtupleTool.h.

◆ m_err_phi0

double InDet::DetailedIDNtupleTool::m_err_phi0 = 0.0
private

Definition at line 141 of file DetailedIDNtupleTool.h.

◆ m_err_qoverp

double InDet::DetailedIDNtupleTool::m_err_qoverp = 0.0
private

Definition at line 143 of file DetailedIDNtupleTool.h.

◆ m_err_theta

double InDet::DetailedIDNtupleTool::m_err_theta = 0.0
private

Definition at line 142 of file DetailedIDNtupleTool.h.

◆ m_err_z0

double InDet::DetailedIDNtupleTool::m_err_z0 = 0.0
private

Definition at line 140 of file DetailedIDNtupleTool.h.

◆ m_eta

double InDet::DetailedIDNtupleTool::m_eta = 0.0
private

Definition at line 154 of file DetailedIDNtupleTool.h.

◆ m_evtNumber

int InDet::DetailedIDNtupleTool::m_evtNumber = 0
private

Definition at line 85 of file DetailedIDNtupleTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extrapolator

PublicToolHandle<Trk::IExtrapolator> InDet::DetailedIDNtupleTool::m_extrapolator {this,"Extrapolator","Trk::Extrapolator/AtlasExtrapolator",""}
private

track extrapolator

Definition at line 66 of file DetailedIDNtupleTool.h.

67{this,"Extrapolator","Trk::Extrapolator/AtlasExtrapolator",""};

◆ m_file

TFile* InDet::DetailedIDNtupleTool::m_file
private

Definition at line 74 of file DetailedIDNtupleTool.h.

◆ m_filename

std::string InDet::DetailedIDNtupleTool::m_filename
private

name of ntuple file

Definition at line 77 of file DetailedIDNtupleTool.h.

◆ m_filepath

std::string InDet::DetailedIDNtupleTool::m_filepath
private

path to ntuple file

Definition at line 78 of file DetailedIDNtupleTool.h.

◆ m_logStream

std::ostream* Trk::IFillNtupleTool::m_logStream = nullptr
protectedinherited

logfile output stream

Definition at line 76 of file IFillNtupleTool.h.

◆ m_matchProbability

double InDet::DetailedIDNtupleTool::m_matchProbability
private

the probabililty cut in the truth matching

Definition at line 72 of file DetailedIDNtupleTool.h.

◆ m_ndof

int InDet::DetailedIDNtupleTool::m_ndof = 0
private

Definition at line 156 of file DetailedIDNtupleTool.h.

◆ m_original_chi2

double InDet::DetailedIDNtupleTool::m_original_chi2 = 0.0
private

Definition at line 100 of file DetailedIDNtupleTool.h.

◆ m_original_chi2prob

double InDet::DetailedIDNtupleTool::m_original_chi2prob = 0.0
private

Definition at line 102 of file DetailedIDNtupleTool.h.

◆ m_original_d0

double InDet::DetailedIDNtupleTool::m_original_d0 = 0.0
private

Definition at line 92 of file DetailedIDNtupleTool.h.

◆ m_original_err_d0

double InDet::DetailedIDNtupleTool::m_original_err_d0 = 0.0
private

Definition at line 104 of file DetailedIDNtupleTool.h.

◆ m_original_err_phi0

double InDet::DetailedIDNtupleTool::m_original_err_phi0 = 0.0
private

Definition at line 106 of file DetailedIDNtupleTool.h.

◆ m_original_err_qoverp

double InDet::DetailedIDNtupleTool::m_original_err_qoverp = 0.0
private

Definition at line 108 of file DetailedIDNtupleTool.h.

◆ m_original_err_theta

double InDet::DetailedIDNtupleTool::m_original_err_theta = 0.0
private

Definition at line 107 of file DetailedIDNtupleTool.h.

◆ m_original_err_z0

double InDet::DetailedIDNtupleTool::m_original_err_z0 = 0.0
private

Definition at line 105 of file DetailedIDNtupleTool.h.

◆ m_original_eta

double InDet::DetailedIDNtupleTool::m_original_eta = 0.0
private

Definition at line 99 of file DetailedIDNtupleTool.h.

◆ m_original_ndof

int InDet::DetailedIDNtupleTool::m_original_ndof = 0
private

Definition at line 101 of file DetailedIDNtupleTool.h.

◆ m_original_phi0

double InDet::DetailedIDNtupleTool::m_original_phi0 = 0.0
private

Definition at line 94 of file DetailedIDNtupleTool.h.

◆ m_original_pt

double InDet::DetailedIDNtupleTool::m_original_pt = 0.0
private

Definition at line 97 of file DetailedIDNtupleTool.h.

◆ m_original_qoverp

double InDet::DetailedIDNtupleTool::m_original_qoverp = 0.0
private

Definition at line 96 of file DetailedIDNtupleTool.h.

◆ m_original_theta

double InDet::DetailedIDNtupleTool::m_original_theta = 0.0
private

Definition at line 95 of file DetailedIDNtupleTool.h.

◆ m_original_toRef_d0

double InDet::DetailedIDNtupleTool::m_original_toRef_d0 = 0.0
private

Definition at line 125 of file DetailedIDNtupleTool.h.

◆ m_original_toRef_phi0

double InDet::DetailedIDNtupleTool::m_original_toRef_phi0 = 0.0
private

Definition at line 127 of file DetailedIDNtupleTool.h.

◆ m_original_toRef_qoverp

double InDet::DetailedIDNtupleTool::m_original_toRef_qoverp = 0.0
private

Definition at line 129 of file DetailedIDNtupleTool.h.

◆ m_original_toRef_theta

double InDet::DetailedIDNtupleTool::m_original_toRef_theta = 0.0
private

Definition at line 128 of file DetailedIDNtupleTool.h.

◆ m_original_toRef_z0

double InDet::DetailedIDNtupleTool::m_original_toRef_z0 = 0.0
private

Definition at line 126 of file DetailedIDNtupleTool.h.

◆ m_original_xvtx

double InDet::DetailedIDNtupleTool::m_original_xvtx = 0.0
private

Definition at line 88 of file DetailedIDNtupleTool.h.

◆ m_original_yvtx

double InDet::DetailedIDNtupleTool::m_original_yvtx = 0.0
private

Definition at line 89 of file DetailedIDNtupleTool.h.

◆ m_original_z0

double InDet::DetailedIDNtupleTool::m_original_z0 = 0.0
private

Definition at line 93 of file DetailedIDNtupleTool.h.

◆ m_original_zvtx

double InDet::DetailedIDNtupleTool::m_original_zvtx = 0.0
private

Definition at line 90 of file DetailedIDNtupleTool.h.

◆ m_phi0

double InDet::DetailedIDNtupleTool::m_phi0 = 0.0
private

Definition at line 150 of file DetailedIDNtupleTool.h.

◆ m_pt

double InDet::DetailedIDNtupleTool::m_pt = 0.0
private

Definition at line 153 of file DetailedIDNtupleTool.h.

◆ m_qoverp

double InDet::DetailedIDNtupleTool::m_qoverp = 0.0
private

Definition at line 152 of file DetailedIDNtupleTool.h.

◆ m_runNumber

int InDet::DetailedIDNtupleTool::m_runNumber = 0
private

Definition at line 84 of file DetailedIDNtupleTool.h.

◆ m_storeConstrainedOnly

bool InDet::DetailedIDNtupleTool::m_storeConstrainedOnly
private

onlystore the AlignTrack which is normally refitted

Definition at line 70 of file DetailedIDNtupleTool.h.

◆ m_storeNormalRefittedOnly

bool InDet::DetailedIDNtupleTool::m_storeNormalRefittedOnly
private

only store the AlignTrack which is normally refitted

Definition at line 69 of file DetailedIDNtupleTool.h.

◆ m_storeTruth

bool InDet::DetailedIDNtupleTool::m_storeTruth
private

retrieve the truth information

Definition at line 71 of file DetailedIDNtupleTool.h.

◆ m_theta

double InDet::DetailedIDNtupleTool::m_theta = 0.0
private

Definition at line 151 of file DetailedIDNtupleTool.h.

◆ m_toRef_d0

double InDet::DetailedIDNtupleTool::m_toRef_d0 = 0.0
private

Definition at line 132 of file DetailedIDNtupleTool.h.

◆ m_toRef_phi0

double InDet::DetailedIDNtupleTool::m_toRef_phi0 = 0.0
private

Definition at line 134 of file DetailedIDNtupleTool.h.

◆ m_toRef_qoverp

double InDet::DetailedIDNtupleTool::m_toRef_qoverp = 0.0
private

Definition at line 136 of file DetailedIDNtupleTool.h.

◆ m_toRef_theta

double InDet::DetailedIDNtupleTool::m_toRef_theta = 0.0
private

Definition at line 135 of file DetailedIDNtupleTool.h.

◆ m_toRef_z0

double InDet::DetailedIDNtupleTool::m_toRef_z0 = 0.0
private

Definition at line 133 of file DetailedIDNtupleTool.h.

◆ m_trackCollection

std::string InDet::DetailedIDNtupleTool::m_trackCollection
private

Definition at line 80 of file DetailedIDNtupleTool.h.

◆ m_tracksTruthName

std::string InDet::DetailedIDNtupleTool::m_tracksTruthName
private

Definition at line 81 of file DetailedIDNtupleTool.h.

◆ m_trackSumTool

ToolHandle<Trk::ITrackSummaryTool> InDet::DetailedIDNtupleTool::m_trackSumTool
private

Pointer to track summary tool.

Definition at line 62 of file DetailedIDNtupleTool.h.

◆ m_tree

TTree* InDet::DetailedIDNtupleTool::m_tree
private

Definition at line 75 of file DetailedIDNtupleTool.h.

◆ m_truth_charge

double InDet::DetailedIDNtupleTool::m_truth_charge = 0.0
private

Definition at line 119 of file DetailedIDNtupleTool.h.

◆ m_truth_d0

double InDet::DetailedIDNtupleTool::m_truth_d0 = 0.0
private

Definition at line 111 of file DetailedIDNtupleTool.h.

◆ m_truth_eta

double InDet::DetailedIDNtupleTool::m_truth_eta = 0.0
private

Definition at line 115 of file DetailedIDNtupleTool.h.

◆ m_truth_phi0

double InDet::DetailedIDNtupleTool::m_truth_phi0 = 0.0
private

Definition at line 113 of file DetailedIDNtupleTool.h.

◆ m_truth_prod_x

double InDet::DetailedIDNtupleTool::m_truth_prod_x = 0.0
private

Definition at line 120 of file DetailedIDNtupleTool.h.

◆ m_truth_prod_y

double InDet::DetailedIDNtupleTool::m_truth_prod_y = 0.0
private

Definition at line 121 of file DetailedIDNtupleTool.h.

◆ m_truth_prod_z

double InDet::DetailedIDNtupleTool::m_truth_prod_z = 0.0
private

Definition at line 122 of file DetailedIDNtupleTool.h.

◆ m_truth_pt

double InDet::DetailedIDNtupleTool::m_truth_pt = 0.0
private

Definition at line 116 of file DetailedIDNtupleTool.h.

◆ m_truth_qoverp

double InDet::DetailedIDNtupleTool::m_truth_qoverp = 0.0
private

Definition at line 117 of file DetailedIDNtupleTool.h.

◆ m_truth_qoverpt

double InDet::DetailedIDNtupleTool::m_truth_qoverpt = 0.0
private

Definition at line 118 of file DetailedIDNtupleTool.h.

◆ m_truth_theta

double InDet::DetailedIDNtupleTool::m_truth_theta = 0.0
private

Definition at line 114 of file DetailedIDNtupleTool.h.

◆ m_truth_z0

double InDet::DetailedIDNtupleTool::m_truth_z0 = 0.0
private

Definition at line 112 of file DetailedIDNtupleTool.h.

◆ m_truthToTrack

PublicToolHandle<Trk::ITruthToTrack> InDet::DetailedIDNtupleTool::m_truthToTrack {this,"TruthToTrack","Trk::TruthToTrack/InDetTruthToTrack",""}
private

the truth to track Tool

Definition at line 64 of file DetailedIDNtupleTool.h.

65{this,"TruthToTrack","Trk::TruthToTrack/InDetTruthToTrack",""};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xvtx

double InDet::DetailedIDNtupleTool::m_xvtx = 0.0
private

Definition at line 145 of file DetailedIDNtupleTool.h.

◆ m_yvtx

double InDet::DetailedIDNtupleTool::m_yvtx = 0.0
private

Definition at line 146 of file DetailedIDNtupleTool.h.

◆ m_z0

double InDet::DetailedIDNtupleTool::m_z0 = 0.0
private

Definition at line 149 of file DetailedIDNtupleTool.h.

◆ m_zvtx

double InDet::DetailedIDNtupleTool::m_zvtx = 0.0
private

Definition at line 147 of file DetailedIDNtupleTool.h.


The documentation for this class was generated from the following files: