ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::MeasurementVectorNtupleTool Class Reference

This validation tool writes basic information about Trk::Track into an ntuple; it is also the steering tool for all Trk::IValidationNtupleHelperTool. More...

#include <MeasurementVectorNtupleTool.h>

Inheritance diagram for Trk::MeasurementVectorNtupleTool:
Collaboration diagram for Trk::MeasurementVectorNtupleTool:

Public Member Functions

 MeasurementVectorNtupleTool (const std::string &, const std::string &, const IInterface *)
 ~MeasurementVectorNtupleTool ()
StatusCode initialize ()
StatusCode finalize ()
virtual StatusCode addNtupleItems (TTree *tree)
 add branches to the tree Should be called once (per track collection and tree) dunring the initialisation phase by the calling algorithm (usually Trk::TrackValidationNtupleWriter)
virtual StatusCode fillTrackData (const Trk::Track &, const int iterationIndex, const unsigned int fitStatCode)
 fill ntuple data of a given track without writing the record.
virtual StatusCode fillTrackParticleData (const Trk::TrackParticleBase &)
 fill ntuple data of a given TrackParticle without writing the record.
virtual StatusCode fillTrackTruthData (const TrackParameters *&, const TrackTruth &, const int)
 fill data about the truth match (score, parameter-pulls etc)
virtual void resetVariables ()
 reset the variables after writing the record to disk 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 ()
 Interface ID, declared here, and defined below.

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.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode fillMeasurementData (const Trk::MeasurementBase *, const Trk::TrackParameters *, const bool &isOutlier, const int &detectorType)
 fill variables with call for each measurement TSoS
StatusCode callHelperTools (const Trk::MeasurementBase *, const Trk::TrackParameters *, const bool &isOutlier, const int &detectorType, const int &nCurrentHit)
 call the helper tools
virtual StatusCode fillHoleData (const Trk::TrackStateOnSurface &)
 fill ntuple data of holes on track without writing the record
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

const AtlasDetectorIDm_idHelper
 Used to find out the sub-det from PRD->identify().
MeasurementTypeIDm_detTypeHelper
ToolHandle< Trk::IUpdatorm_updatorHandle
 Tool handle of updator for unbiased states.
Trk::IUpdatorm_updator
 updator for unbiased states
ToolHandle< Trk::IResidualPullCalculatorm_residualPullCalculator
 The residual and pull calculator tool.
ToolHandle< Trk::ITrackHoleSearchToolm_holeSearchTool
 The hole search tool.
ToolHandleArray< IValidationNtupleHelperToolm_PixelNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for Pixel
ToolHandleArray< IValidationNtupleHelperToolm_SCTNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for SCT
ToolHandleArray< IValidationNtupleHelperToolm_TRTNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for TRT
ToolHandleArray< IValidationNtupleHelperToolm_MDTNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for MDT
ToolHandleArray< IValidationNtupleHelperToolm_CSCNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for CSC
ToolHandleArray< IValidationNtupleHelperToolm_RPCNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for RPC
ToolHandleArray< IValidationNtupleHelperToolm_TGCNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for TGC
ToolHandleArray< IValidationNtupleHelperToolm_GeneralNtupleHelperToolHandles
 jobOption: List of Ntuple validation helper tools for data independent from detector technology
bool m_useROTwithMaxAssgnProb
 jobOption: use ROT with max.
bool m_ignoreMissTrkCov
 jobOption: ignore missing covariance of track parameters for pull calculation?
std::vector< IValidationNtupleHelperTool * > m_PixelHelperTools
 the helper tools for Pixel data
std::vector< IValidationNtupleHelperTool * > m_SCTHelperTools
 the helper tools for SCT data
std::vector< IValidationNtupleHelperTool * > m_TRTHelperTools
 the helper tools for TRT data
std::vector< IValidationNtupleHelperTool * > m_MDTHelperTools
 the helper tools for MDT data
std::vector< IValidationNtupleHelperTool * > m_CSCHelperTools
 the helper tools for CSC data
std::vector< IValidationNtupleHelperTool * > m_RPCHelperTools
 the helper tools for RPC data
std::vector< IValidationNtupleHelperTool * > m_TGCHelperTools
 the helper tools for TGC data
std::vector< IValidationNtupleHelperTool * > m_GeneralHelperTools
 the helper tools for data independent from detector technology
bool m_pullWarning
 warn only ones, if pull cannot be calculated
bool m_UpdatorWarning
 warn only ones, if unbiased track states can not be calculated
bool m_trkParametersWarning
 warn once only, if no track parameters exist
bool m_doTruth
 switch to turn truth on/off
bool m_doHoleSearch
 switch to turn hole search on/off
std::map< const IValidationNtupleHelperTool *, bool > m_helperToolWarning
int m_isUnbiased
 flag if track states are unbiased to the related measurements (0:no, 1:yes)
std::vector< float > * m_residualLocX
 residual in Trk::LocX for each measurement on the track, vector of size nHits, value set to -1000 if meas't was outlier UNIT:mm
std::vector< float > * m_residualLocY
 residual in Trk::LocY for each meas't on the track (value is set to -1000 if no second local coord.
std::vector< float > * m_pullLocX
 pull in Trk::LocX for each measurement on the track, vector of size nHits, value set to -1000 if meas't was outlier UNIT:1
std::vector< float > * m_pullLocY
 pull in Trk::LocY for each measurement on the track (value is set to -1000 if no second local coord.
std::vector< int > * m_DetectorType
 Detector type of the measurement, enum according to TrkEventPrimitives/TrackStateDefs.h, vector of size nHits.
std::vector< int > * m_isOutlier
 flag if measurement is outlier (1) or not (0), vector of size nHits UNIT:0:no, 1:yes
int m_nPixelHits
 number of measurements in the Pixels (without outliers)
int m_nSCTHits
 number of measurements in the SCT (without outliers)
int m_nTRTHits
 number of measurements in the TRT (without outliers)
int m_nMDTHits
 number of measurements in the MDTs (without outliers)
int m_nCSCHits
 number of measurements in the CSC (without outliers)
int m_nRPCHits
 number of measurements in the RPC (without outliers)
int m_nTGCHits
 number of measurements in the TGC (without outliers)
std::vector< int > * m_pixelHitIndex
 corresp.
std::vector< int > * m_sctHitIndex
 corresp.
std::vector< int > * m_trtHitIndex
 corresp.
std::vector< int > * m_mdtHitIndex
 corresp.
std::vector< int > * m_cscHitIndex
 corresp.
std::vector< int > * m_rpcHitIndex
 corresp.
std::vector< int > * m_tgcHitIndex
 icorresp.
int m_nHoles
 number of holes on track
int m_nPixelHoles
 number of Pixel holes on track
int m_nSctHoles
 number of SCT holes on track
std::vector< int > * m_HoleDetectorType
 detector type of the hole (vector of size nHoles)
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

This validation tool writes basic information about Trk::Track into an ntuple; it is also the steering tool for all Trk::IValidationNtupleHelperTool.

You use an existing ntuple tree (which has to have the same track-wise structure) and just use the Trk::BasicValidationNtupleTool to add some ntuple variables.

One can give a list of Trk::IValidationNtupleHelperTool for each detector type by joboptions which are called by Trk::BasicValidationNtupleTool if a measurement of the related detector is found on the track. Those Trk::IValidationNtupleHelperTool can add items to the ntuple and fill special data needed for validation.

Every entry (track) contains the event number, a track id (numbering the tracks within one event) and an optional iteration index, which can be used if different intermediate results of a track are produced in the refit procedure. The track id is the same for all tracks generated within one iteration process and reset to 0 every time a new event is started.

Definition at line 52 of file MeasurementVectorNtupleTool.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

◆ MeasurementVectorNtupleTool()

Trk::MeasurementVectorNtupleTool::MeasurementVectorNtupleTool ( const std::string & t,
const std::string & n,
const IInterface * p )

Definition at line 29 of file MeasurementVectorNtupleTool.cxx.

33 :
34 AthAlgTool(t,n,p),
35 m_idHelper(nullptr),
36 m_detTypeHelper(nullptr),
37 m_updatorHandle("Trk::KalmanUpdator/TrkKalmanUpdator"),
38 m_updator(nullptr),
39 m_residualPullCalculator("Trk::ResidualPullCalculator/ResidualPullCalculator"),
40 m_holeSearchTool("InDet::InDetTrackHoleSearchTool/InDetHoleSearchTool"),
41 m_PixelNtupleHelperToolHandles(this), // retrieve as private tools
49 //m_useROTwithMaxAssgnProb
50 //m_ignoreMissTrkCov
51 //vectors could be initialised here
55 m_doTruth{},
56 m_doHoleSearch(true),
57 //map could be initialised here
59 m_residualLocX(nullptr),
60 m_residualLocY(nullptr),
61 m_pullLocX(nullptr),
62 m_pullLocY(nullptr),
63 m_DetectorType(nullptr),
64 m_isOutlier(nullptr),
66 m_nSCTHits{},
67 m_nTRTHits{},
68 m_nMDTHits{},
69 m_nCSCHits{},
70 m_nRPCHits{},
71 m_nTGCHits{},
72 m_pixelHitIndex(nullptr),
73 m_sctHitIndex(nullptr),
74 m_trtHitIndex(nullptr),
75 m_mdtHitIndex(nullptr),
76 m_cscHitIndex(nullptr),
77 m_rpcHitIndex(nullptr),
78 m_tgcHitIndex(nullptr),
79 m_nHoles{},
82 m_HoleDetectorType(nullptr)
83{
84 declareInterface<ITrackValidationNtupleTool>(this);
85
86 declareProperty("UseROTwithMaxAssgnProb", m_useROTwithMaxAssgnProb = true, "In case of CompetingRIOsOnTrack: Use the ROT with maximum assignment probabilty to calculate residuals, etc or use mean measurement?");
87 declareProperty("IgnoreMissingTrackCovarianceForPulls", m_ignoreMissTrkCov = false, "Do not warn, if track states do not have covariance matries when calculating pulls");
88 declareProperty("UpdatorTool", m_updatorHandle, "Measurement updator to calculate unbiased track states");
89 declareProperty("ResidualPullCalculatorTool", m_residualPullCalculator, "Tool to calculate residuals and pulls");
90 declareProperty("HoleSearchTool", m_holeSearchTool, "Tool to search for holes on track");
91 // these are for detector-internal validation, unless an
92 // specific <-> general index hit mapper is there.
93 declareProperty("PixelNtupleHelperTools", m_PixelNtupleHelperToolHandles,
94 "List of Pixel validation tools");
95 declareProperty("SCTNtupleHelperTools", m_SCTNtupleHelperToolHandles, "List of SCT validation tools");
96 declareProperty("TRTNtupleHelperTools", m_TRTNtupleHelperToolHandles, "List of TRT validation tools");
97 declareProperty("MDTNtupleHelperTools", m_MDTNtupleHelperToolHandles, "List of MDT validation tools");
98 declareProperty("CSCNtupleHelperTools", m_CSCNtupleHelperToolHandles, "List of CSC validation tools");
99 declareProperty("RPCNtupleHelperTools", m_RPCNtupleHelperToolHandles, "List of RPC validation tools");
100 declareProperty("TGCNtupleHelperTools", m_TGCNtupleHelperToolHandles, "List of TGC validation tools");
101 declareProperty("GeneralNtupleHelperTools", m_GeneralNtupleHelperToolHandles, "List of detector independent validation tools");
102 declareProperty("DoTruth", m_doTruth, "Write truth data?");
103 declareProperty("DoHoleSearch", m_doHoleSearch, "Write hole data?");
104 m_UpdatorWarning = false;
105 m_pullWarning = false;
107
108}
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const AtlasDetectorID * m_idHelper
Used to find out the sub-det from PRD->identify().
std::vector< float > * m_pullLocY
pull in Trk::LocY for each measurement on the track (value is set to -1000 if no second local coord.
bool m_useROTwithMaxAssgnProb
jobOption: use ROT with max.
ToolHandle< Trk::IUpdator > m_updatorHandle
Tool handle of updator for unbiased states.
bool m_doTruth
switch to turn truth on/off
std::vector< int > * m_HoleDetectorType
detector type of the hole (vector of size nHoles)
bool m_ignoreMissTrkCov
jobOption: ignore missing covariance of track parameters for pull calculation?
ToolHandleArray< IValidationNtupleHelperTool > m_TGCNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for TGC
bool m_doHoleSearch
switch to turn hole search on/off
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
The residual and pull calculator tool.
std::vector< int > * m_tgcHitIndex
icorresp.
std::vector< int > * m_pixelHitIndex
corresp.
int m_nSCTHits
number of measurements in the SCT (without outliers)
int m_nPixelHoles
number of Pixel holes on track
std::vector< float > * m_residualLocX
residual in Trk::LocX for each measurement on the track, vector of size nHits, value set to -1000 if ...
bool m_UpdatorWarning
warn only ones, if unbiased track states can not be calculated
int m_nMDTHits
number of measurements in the MDTs (without outliers)
int m_nTRTHits
number of measurements in the TRT (without outliers)
int m_nRPCHits
number of measurements in the RPC (without outliers)
ToolHandleArray< IValidationNtupleHelperTool > m_TRTNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for TRT
ToolHandleArray< IValidationNtupleHelperTool > m_SCTNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for SCT
ToolHandleArray< IValidationNtupleHelperTool > m_MDTNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for MDT
ToolHandleArray< IValidationNtupleHelperTool > m_CSCNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for CSC
bool m_trkParametersWarning
warn once only, if no track parameters exist
ToolHandle< Trk::ITrackHoleSearchTool > m_holeSearchTool
The hole search tool.
ToolHandleArray< IValidationNtupleHelperTool > m_GeneralNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for data independent from detector technology
std::vector< float > * m_residualLocY
residual in Trk::LocY for each meas't on the track (value is set to -1000 if no second local coord.
bool m_pullWarning
warn only ones, if pull cannot be calculated
Trk::IUpdator * m_updator
updator for unbiased states
std::vector< float > * m_pullLocX
pull in Trk::LocX for each measurement on the track, vector of size nHits, value set to -1000 if meas...
int m_nPixelHits
number of measurements in the Pixels (without outliers)
int m_nCSCHits
number of measurements in the CSC (without outliers)
int m_isUnbiased
flag if track states are unbiased to the related measurements (0:no, 1:yes)
std::vector< int > * m_DetectorType
Detector type of the measurement, enum according to TrkEventPrimitives/TrackStateDefs....
int m_nTGCHits
number of measurements in the TGC (without outliers)
int m_nSctHoles
number of SCT holes on track
std::vector< int > * m_isOutlier
flag if measurement is outlier (1) or not (0), vector of size nHits UNIT:0:no, 1:yes
ToolHandleArray< IValidationNtupleHelperTool > m_PixelNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for Pixel
ToolHandleArray< IValidationNtupleHelperTool > m_RPCNtupleHelperToolHandles
jobOption: List of Ntuple validation helper tools for RPC

◆ ~MeasurementVectorNtupleTool()

Trk::MeasurementVectorNtupleTool::~MeasurementVectorNtupleTool ( )
default

Member Function Documentation

◆ addNtupleItems()

StatusCode Trk::MeasurementVectorNtupleTool::addNtupleItems ( TTree * tree)
virtual

add branches to the tree Should be called once (per track collection and tree) dunring the initialisation phase by the calling algorithm (usually Trk::TrackValidationNtupleWriter)

Implements Trk::ITrackValidationNtupleTool.

Definition at line 324 of file MeasurementVectorNtupleTool.cxx.

324 {
325 if (!tree) return StatusCode::FAILURE;
326 ATH_MSG_DEBUG ("added branches to ntuple");
327 //-----------------
328 // add items *** Note: Documentation is in the header file, doxygen and wikis! ***
329 //
330 tree->Branch("TrackStatesUnbiased", &m_isUnbiased );
331 m_isUnbiased=999;
332
333 if (!m_residualPullCalculator.empty()) {
334 tree->Branch("pullLocX", &m_pullLocX );
335 tree->Branch("pullLocY", &m_pullLocY );
336 tree->Branch("residualLocX", &m_residualLocX );
337 tree->Branch("residualLocY", &m_residualLocY );
338 }
339
340 tree->Branch("DetectorType", &m_DetectorType );
341 tree->Branch("outlierFlag", &m_isOutlier );
342
343 tree->Branch("nPixelHits", &m_nPixelHits );
344 tree->Branch("nSCTHits", &m_nSCTHits );
345 tree->Branch("nTRTHits", &m_nTRTHits );
346 tree->Branch("nMDTHits", &m_nMDTHits );
347 tree->Branch("nCSCHits", &m_nCSCHits );
348 tree->Branch("nRPCHits", &m_nRPCHits );
349 tree->Branch("nTGCHits", &m_nTGCHits );
350
351 tree->Branch("pixelHitIndex", &m_pixelHitIndex );
352 tree->Branch("sctHitIndex", &m_sctHitIndex );
353 tree->Branch("trtHitIndex", &m_trtHitIndex );
354 tree->Branch("mdtHitIndex", &m_mdtHitIndex );
355 tree->Branch("cscHitIndex", &m_cscHitIndex );
356 tree->Branch("rpcHitIndex", &m_rpcHitIndex );
357 tree->Branch("tgcHitIndex", &m_tgcHitIndex );
358
359 ATH_MSG_VERBOSE ("added own branches to ntuple");
360
361 StatusCode sc(StatusCode::SUCCESS);
362 ToolHandleArray< IValidationNtupleHelperTool >::iterator itTools;
363 // get all the given ntuple helper tools for Pixel
364 itTools = m_PixelNtupleHelperToolHandles.begin();
365 for ( ; itTools != m_PixelNtupleHelperToolHandles.end(); ++itTools ) {
366 // let tool add its items
367 sc = (*itTools)->addNtupleItems (tree, TrackState::Pixel);
368 if(sc.isFailure()) {
369 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
370 return sc;
371 }
372 }
373 // SCT helper tools
374 itTools = m_SCTNtupleHelperToolHandles.begin();
375 for ( ; itTools != m_SCTNtupleHelperToolHandles.end(); ++itTools ) {
376 // let tool add its items
377 sc = (*itTools)->addNtupleItems (tree, TrackState::SCT);
378 if(sc.isFailure()) {
379 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
380 return sc;
381 }
382 }
383 // get all the given ntuple helper tools for TRT
384 itTools = m_TRTNtupleHelperToolHandles.begin();
385 for ( ; itTools != m_TRTNtupleHelperToolHandles.end(); ++itTools ) {
386 // let tool add its items
387 sc = (*itTools)->addNtupleItems (tree, TrackState::TRT);
388 if(sc.isFailure()) {
389 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
390 return sc;
391 }
392 }
393 // get all the given ntuple helper tools for MDT
394 itTools = m_MDTNtupleHelperToolHandles.begin();
395 for ( ; itTools != m_MDTNtupleHelperToolHandles.end(); ++itTools ) {
396 // let tool add its items
397 sc = (*itTools)->addNtupleItems (tree, TrackState::MDT);
398 if(sc.isFailure()) {
399 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
400 return sc;
401 }
402 }
403 // get all the given ntuple helper tools for CSC
404 itTools = m_CSCNtupleHelperToolHandles.begin();
405 for ( ; itTools != m_CSCNtupleHelperToolHandles.end(); ++itTools ) {
406 // let tool add its items
407 sc = (*itTools)->addNtupleItems (tree, TrackState::CSC);
408 if(sc.isFailure()) {
409 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
410 return sc;
411 }
412 }
413 // get all the given ntuple helper tools for RPC
414 itTools = m_RPCNtupleHelperToolHandles.begin();
415 for ( ; itTools != m_RPCNtupleHelperToolHandles.end(); ++itTools ) {
416 // let tool add its items
417 sc = (*itTools)->addNtupleItems (tree, TrackState::RPC);
418 if(sc.isFailure()) {
419 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
420 return sc;
421 }
422 }
423 // get all the given ntuple helper tools for TGC
424 itTools = m_TGCNtupleHelperToolHandles.begin();
425 for ( ; itTools != m_TGCNtupleHelperToolHandles.end(); ++itTools ) {
426 // let tool add its items
427 sc = (*itTools)->addNtupleItems (tree, TrackState::TGC);
428 if(sc.isFailure()) {
429 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
430 return sc;
431 }
432 }
433 itTools = m_GeneralNtupleHelperToolHandles.begin();
434 for ( ; itTools != m_GeneralNtupleHelperToolHandles.end(); ++itTools ) {
435 // let tool add its items
436 sc = (*itTools)->addNtupleItems (tree, TrackState::unidentified);
437 if(sc.isFailure()) {
438 msg(MSG::ERROR)<<"The helper " << (*itTools) << " could not add its items" << endmsg;
439 return sc;
440 }
441 }
442 return StatusCode::SUCCESS;
443}
#define endmsg
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
MsgStream & msg() const
::StatusCode StatusCode
StatusCode definition for legacy code.
TChain * tree

◆ callHelperTools()

StatusCode Trk::MeasurementVectorNtupleTool::callHelperTools ( const Trk::MeasurementBase * measurement,
const Trk::TrackParameters * trkPar,
const bool & isOutlier,
const int & detectorType,
const int & nCurrentHit )
private

call the helper tools

Definition at line 786 of file MeasurementVectorNtupleTool.cxx.

791 {
792
793 // ------------------------------------
794 // try if measurement is a competingROT and check if joboption
795 // is set to use ROT with highest assgn. prob. in the case of a competingROT.
796 // for general helper tools measurement is always used (the jobOption
797 // has no meaning for them).
798 const Trk::MeasurementBase* measurementBaseOrROT = measurement;
800 // use ROT with max assgn prob for calculations
801 const Trk::CompetingRIOsOnTrack* comprot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement);
802 if (comprot){
803 measurementBaseOrROT = &comprot->rioOnTrack(comprot->indexOfMaxAssignProb());
804 }
805 }
806
807 // -------------------------------------------
808 // write detector specific data (for used measurements only, i.e. not for outliers)
809 if ( !isOutlier && ( detectorType==TrackState::Pixel ||
810 detectorType==TrackState::SCT ||
811 detectorType==TrackState::TRT ||
812 detectorType==TrackState::MDT ||
813 detectorType==TrackState::CSC ||
814 detectorType==TrackState::RPC ||
815 detectorType==TrackState::TGC) ) {
816 std::vector< Trk::IValidationNtupleHelperTool* >::const_iterator toolIter;
817 std::vector< Trk::IValidationNtupleHelperTool* >::const_iterator toolIterEnd;
818 switch (detectorType) {
820 toolIter = m_PixelHelperTools.begin();
821 toolIterEnd = m_PixelHelperTools.end();
822 m_pixelHitIndex->push_back(nCurrentHit-1);
823 m_nPixelHits++;
824 break;
825 case TrackState::SCT:
826 toolIter = m_SCTHelperTools.begin();
827 toolIterEnd = m_SCTHelperTools.end();
828 m_sctHitIndex->push_back(nCurrentHit-1);
829 m_nSCTHits++;
830 break;
831 case TrackState::TRT:
832 toolIter = m_TRTHelperTools.begin();
833 toolIterEnd = m_TRTHelperTools.end();
834 m_trtHitIndex->push_back(nCurrentHit-1);
835 m_nTRTHits++;
836 break;
837 case TrackState::MDT:
838 toolIter = m_MDTHelperTools.begin();
839 toolIterEnd = m_MDTHelperTools.end();
840 m_mdtHitIndex->push_back(nCurrentHit-1);
841 m_nMDTHits++;
842 break;
843 case TrackState::CSC:
844 toolIter = m_CSCHelperTools.begin();
845 toolIterEnd = m_CSCHelperTools.end();
846 m_cscHitIndex->push_back(nCurrentHit-1);
847 m_nCSCHits++;
848 break;
849 case TrackState::RPC:
850 toolIter = m_RPCHelperTools.begin();
851 toolIterEnd = m_RPCHelperTools.end();
852 m_rpcHitIndex->push_back(nCurrentHit-1);
853 m_nRPCHits++;
854 break;
855 case TrackState::TGC:
856 toolIter = m_TGCHelperTools.begin();
857 toolIterEnd = m_TGCHelperTools.end();
858 m_tgcHitIndex->push_back(nCurrentHit-1);
859 m_nTGCHits++;
860 break;
861 }
862 // now run the detector specific helper tools
863 for (; toolIter!=toolIterEnd; ++toolIter) {
864 if (((*toolIter)->fillMeasurementData(measurementBaseOrROT, trkPar, detectorType, isOutlier)).isFailure()) {
865 if (!m_helperToolWarning[(*toolIter)]) {
866 msg(MSG::WARNING) << "sub-det helper tool did not succeed to fill data (further warnings for this tool will be suppressed)" << endmsg;
867 m_helperToolWarning[(*toolIter)] = true;
868 }
869 }
870 }
871 } //end if (detectorType!=TrackState::unidentified && !isOutlier)
872
873 // call the general tools
874 if (!m_GeneralHelperTools.empty()) {
875 std::vector< Trk::IValidationNtupleHelperTool* >::const_iterator toolIter = m_GeneralHelperTools.begin();
876 for (; toolIter!=m_GeneralHelperTools.end(); ++toolIter) {
877 if (((*toolIter)->fillMeasurementData(measurement, trkPar, detectorType, isOutlier)).isFailure()) {
878 if (!m_helperToolWarning[(*toolIter)]) {
879 msg(MSG::WARNING) << "general helper tool did not succeed to fill general data" << endmsg;
880 m_helperToolWarning[(*toolIter)] = true;
881 }
882 }
883 }
884 }
885
886 return StatusCode::SUCCESS;
887}
unsigned int indexOfMaxAssignProb() const
Index of the ROT with the highest assignment probability.
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
std::vector< IValidationNtupleHelperTool * > m_MDTHelperTools
the helper tools for MDT data
std::vector< IValidationNtupleHelperTool * > m_TGCHelperTools
the helper tools for TGC data
std::vector< IValidationNtupleHelperTool * > m_PixelHelperTools
the helper tools for Pixel data
std::map< const IValidationNtupleHelperTool *, bool > m_helperToolWarning
std::vector< IValidationNtupleHelperTool * > m_CSCHelperTools
the helper tools for CSC data
std::vector< IValidationNtupleHelperTool * > m_TRTHelperTools
the helper tools for TRT data
std::vector< IValidationNtupleHelperTool * > m_SCTHelperTools
the helper tools for SCT data
std::vector< IValidationNtupleHelperTool * > m_RPCHelperTools
the helper tools for RPC data
std::vector< IValidationNtupleHelperTool * > m_GeneralHelperTools
the helper tools for data independent from detector technology

◆ 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.

◆ 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

◆ fillHoleData()

StatusCode Trk::MeasurementVectorNtupleTool::fillHoleData ( const Trk::TrackStateOnSurface & tsos)
privatevirtual

fill ntuple data of holes on track without writing the record

Definition at line 889 of file MeasurementVectorNtupleTool.cxx.

890 {
891 if (!m_doHoleSearch) return StatusCode::SUCCESS;
892 // check if we really have a hole
893 if (!tsos.type(Trk::TrackStateOnSurface::Hole)) return StatusCode::FAILURE;
894 // hole without track pars is not allowed
895 if (!tsos.trackParameters()) return StatusCode::FAILURE;
896 // identify the detector type
897 int detectorType = TrackState::unidentified;
899 if ( id.is_valid() ) {
900 if (m_idHelper->is_pixel(id) ) {
901 detectorType = TrackState::Pixel;
902 } else if (m_idHelper->is_sct(id)) {
903 detectorType = TrackState::SCT;
904 } else if (m_idHelper->is_trt(id)) {
905 detectorType = TrackState::TRT;
906 } else if (m_idHelper->is_mdt(id)) {
907 detectorType = TrackState::MDT;
908 } else if (m_idHelper->is_csc(id)) {
909 detectorType = TrackState::CSC;
910 } else if (m_idHelper->is_rpc(id)) {
911 detectorType = TrackState::RPC;
912 } else if (m_idHelper->is_tgc(id)) {
913 detectorType = TrackState::TGC;
914 } else {
915 detectorType = TrackState::unidentified;
916 }
917 } // end if(isValid)
918 // count the holes
919 m_nHoles++;
920 m_HoleDetectorType->push_back(detectorType);
921 ATH_MSG_VERBOSE ("hole #" << m_nHoles-1 << ": detector technology identified as " << detectorType);
922 if (detectorType == TrackState::Pixel) m_nPixelHoles++;
923 if (detectorType == TrackState::SCT) m_nSctHoles++;
924
925 // ----------------------------
926 // write detector specific data
927 if ( detectorType!=TrackState::unidentified ) {
928 std::vector< Trk::IValidationNtupleHelperTool* >::const_iterator toolIter;
929 std::vector< Trk::IValidationNtupleHelperTool* >::const_iterator toolIterEnd;
930 switch (detectorType) {
932 toolIter = m_PixelHelperTools.begin();
933 toolIterEnd = m_PixelHelperTools.end();
934 break;
935 case TrackState::SCT:
936 toolIter = m_SCTHelperTools.begin();
937 toolIterEnd = m_SCTHelperTools.end();
938 break;
939 case TrackState::TRT:
940 toolIter = m_TRTHelperTools.begin();
941 toolIterEnd = m_TRTHelperTools.end();
942 break;
943 case TrackState::MDT:
944 toolIter = m_MDTHelperTools.begin();
945 toolIterEnd = m_MDTHelperTools.end();
946 break;
947 case TrackState::CSC:
948 toolIter = m_CSCHelperTools.begin();
949 toolIterEnd = m_CSCHelperTools.end();
950 break;
951 case TrackState::RPC:
952 toolIter = m_RPCHelperTools.begin();
953 toolIterEnd = m_RPCHelperTools.end();
954 break;
955 case TrackState::TGC:
956 toolIter = m_TGCHelperTools.begin();
957 toolIterEnd = m_TGCHelperTools.end();
958 break;
959 }
960 // now run the detector specific helper tools
961 for (; toolIter!=toolIterEnd; ++toolIter) {
962 if (((*toolIter)->fillHoleData(tsos, detectorType)).isFailure()) {
963 msg(MSG::WARNING) << "sub-det helper tool did not succeed to fill hole data" << endmsg;
964 }
965 }
966 } //end if (detectorType!=TrackState::unidentified)
967
968 // call the general tools
969 if (!m_GeneralHelperTools.empty()) {
970 std::vector< Trk::IValidationNtupleHelperTool* >::iterator toolIter = m_GeneralHelperTools.begin();
971 for (; toolIter!=m_GeneralHelperTools.end(); ++toolIter) {
972 if (((*toolIter)->fillHoleData(tsos, detectorType)).isFailure()) {
973 msg(MSG::WARNING) << "general helper tool did not succeed to fill general hole data" << endmsg;
974 }
975 }
976 }
977 return StatusCode::SUCCESS;
978}
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
@ Hole
A hole on the track - this is defined in the following way.

◆ fillMeasurementData()

StatusCode Trk::MeasurementVectorNtupleTool::fillMeasurementData ( const Trk::MeasurementBase * measurement,
const Trk::TrackParameters * trkParameters,
const bool & isOutlier,
const int & detectorType )
private

fill variables with call for each measurement TSoS

fill the per-state vector variables

Definition at line 715 of file MeasurementVectorNtupleTool.cxx.

719 {
720
721 ATH_MSG_VERBOSE ("in fillMeasurementData");
722
723 if (!isOutlier && trkParameters==nullptr) {
724 ATH_MSG_VERBOSE ("Given TrackParameters == NULL");
726 // warn once only!
727 msg(MSG::WARNING) << "TSoS (type: measurement) contains no TrackParameters: Residuals, etc. cannot be calculated" << endmsg;
728 msg(MSG::WARNING) << " This is possible for slimmed tracks; if residuals are needed choose another track collection" << endmsg;
729 msg(MSG::WARNING) << " (further warnings will be suppressed)" << endmsg;
731 }
732 }
733
734 m_isOutlier->push_back(isOutlier? 1 : 0);
735 if (!m_residualPullCalculator.empty()) {
736 // --------------------------------------
737 // fill general residuals and pulls
738 // for the residuals and pulls always use the ROT.
739 // --------------------------------------
740 float residualLocX = s_errorEntry;
741 float residualLocY = s_errorEntry;
742 float pullLocX = s_errorEntry;
743 float pullLocY = s_errorEntry;
744 if (trkParameters) {
745 std::optional<Trk::ResidualPull> residualPull
746 = m_residualPullCalculator->residualPull(measurement, trkParameters,
749 if (residualPull) {
750 residualLocX = residualPull->residual()[Trk::loc1];
751 if (residualPull->dimension() >= 2)
752 residualLocY = residualPull->residual()[Trk::loc2];
753 if ((residualPull->isPullValid()) || m_ignoreMissTrkCov ) {
754 pullLocX = residualPull->pull()[Trk::loc1];
755 if (residualPull->dimension() >= 2)
756 pullLocY = residualPull->pull()[Trk::loc2];
757 } else {
758 if (!m_pullWarning && !isOutlier) { // warn only once!!!
759 m_pullWarning = true;
760 msg(MSG::WARNING) << "no covariance of the track parameters given, can not compute pull!" << endmsg;
761 msg(MSG::INFO) << "Detector type "<< detectorType
762 << (isOutlier? " (flagged as outlier)" : "(not an outlier)") << endmsg;
763 msg(MSG::INFO) << "you may want to use the jobOption 'IgnoreMissingTrackCovarianceForPulls' to calculate it anyhow." << endmsg;
764 msg(MSG::INFO) << "No further warnings will be given for this type of situation." << endmsg;
765 } else {
766 ATH_MSG_DEBUG ("invalid pull due to missing COV at detector type " << detectorType
767 << (isOutlier? " (flagged as outlier)." : "."));
768 }
769 }
770 } else {
771 msg(MSG::WARNING) << "ResidualPullCalculator failed!" << endmsg;
772 }
773 }
774 m_residualLocX->push_back(residualLocX);
775 m_residualLocY->push_back(residualLocY);
776 m_pullLocX->push_back(pullLocX);
777 m_pullLocY->push_back(pullLocY);
778 } // end if (!m_residualPullCalculator.empty())
779
780 return StatusCode::SUCCESS;
781}
static const float s_errorEntry
@ Biased
RP with track state including the hit.
@ Unbiased
RP with track state that has measurement not included.
@ loc2
generic first and second local coordinate
Definition ParamDefs.h:35
@ loc1
Definition ParamDefs.h:34

◆ fillTrackData()

StatusCode Trk::MeasurementVectorNtupleTool::fillTrackData ( const Trk::Track & track,
const int iterationIndex,
const unsigned int fitStatCode )
virtual

fill ntuple data of a given track without writing the record.

fill track data into variables without actually writing the record

  • if this method is called twice without writing the ntuple inbetween the first data will be lost!

Implements Trk::ITrackValidationNtupleTool.

Definition at line 448 of file MeasurementVectorNtupleTool.cxx.

451 {
452 // const Trk::FitterStatusCode /*fitStatCode*/ ) const {
453
454 ATH_MSG_VERBOSE ("in fillTrackData(trk, indx) filling info about track states");
455
457 if (m_updator) {
458 m_isUnbiased = 1;
459 } else {
460 m_isUnbiased = 0;
461 }
462
463 //----------------------------------------------
464 // fill info about trackstates in ntuple
465 const Trk::TrackStates* trackStates=track.trackStateOnSurfaces();
466 if (trackStates == nullptr) {
467 msg(MSG::WARNING) << "current track does not have any TrackStateOnSurface vector, no data will be written for this track" << endmsg;
468 return StatusCode::FAILURE;
469 }
470
471 // Loop over all track states on surfaces
472 int stateIndexCounter=0;
473 for (const auto *trackState : *trackStates) {
474
475
476 if (!trackState) {
477 msg(MSG::WARNING) << "TrackStateOnSurface == Null" << endmsg;
478 continue;
479 }
480 if (trackState->type(Trk::TrackStateOnSurface::Measurement) ||
481 trackState->type(Trk::TrackStateOnSurface::Outlier) ) {
482
483 ++stateIndexCounter;
484 ATH_MSG_VERBOSE ("try to get measurement for track state");
485 // Get pointer to measurement on track
486 const Trk::MeasurementBase *measurement = trackState->measurementOnTrack();
487 if (!measurement) {
488 msg(MSG::ERROR) << "measurementOnTrack == Null for a TrackStateOnSurface "
489 << "of type Measurement or Outlier" << endmsg;
490 return StatusCode::FAILURE;
491 } // end if (!measurement)
492 TrackState::MeasurementType detectorType = m_detTypeHelper->defineType(measurement);
493 const Trk::TrackParameters* theParameters = trackState->trackParameters();
494 const Trk::TrackParameters* unbiasedParameters = nullptr;
495
496 // -----------------------------------------
497 // use unbiased track states or normal ones?
498 // unbiased track parameters are tried to retrieve if the updator tool
499 // is available and if unbiased track states could be produced before
500 // for the current track (ie. if one trial to get unbiased track states
501 // fails, for all following track states of the current track the biased state
502 // will be used).
503 if (theParameters && m_updator && (m_isUnbiased==1)
504 && (detectorType!=TrackState::Pseudo)
505 && (! trackState->type(Trk::TrackStateOnSurface::Outlier)) ) {
506 if ( theParameters->covariance() ) {
507 // Get unbiased state
508 unbiasedParameters = m_updator->removeFromState( *theParameters,
509 measurement->localParameters(),
510 measurement->localCovariance()).release();
511 if (unbiasedParameters) {
512 theParameters = unbiasedParameters;
513 ATH_MSG_VERBOSE ("successfully calculated unbiased state");
514 } else {
515 if (measurement->localParameters().contains(Trk::locX)) {
516 double covTrk = (*theParameters->covariance())(Trk::locX,Trk::locX);
517 double covRot = measurement->localCovariance()(Trk::locX,Trk::locX);
518 if (std::abs(covTrk-covRot)<0.001*covRot) {
519 ATH_MSG_DEBUG("Track not overconstrained in local X (track_cov_x = "<<covTrk<<" vs. meas_cov_x="<<covRot<<" => do not calculate unbiased residual.");
520 } else ATH_MSG_INFO ("Could not get unbiased track parameters, use normal parameters");
521 } else ATH_MSG_INFO ("Could not get unbiased track parameters, use normal parameters");
522 m_isUnbiased = 0;
523 } // end if no unbiased track parameters
524 } else if(!m_UpdatorWarning) {
525 // warn only once!
526 msg(MSG::WARNING) << "TrackParameters contain no covariance: Unbiased track states can not be calculated (ie. pulls and residuals will be too small)" << endmsg;
527 m_UpdatorWarning = true;
528 m_isUnbiased = 0;
529 } else {
530 m_isUnbiased = 0;
531 } // end if no measured track parameters
532 } // end if m_updator
533
534 m_DetectorType->push_back((int)detectorType);
535 ATH_MSG_VERBOSE ("meas #" << stateIndexCounter <<
536 ": detector technology identified as " << detectorType);
537
538 if ((fillMeasurementData(measurement,
539 theParameters,
540 (trackState->type(Trk::TrackStateOnSurface::Outlier)),
541 detectorType)).isFailure())
542 msg(MSG::WARNING) << "info about TrackState could not be written to ntuple" << endmsg;
543 if ((callHelperTools(measurement,
544 theParameters,
545 (trackState->type(Trk::TrackStateOnSurface::Outlier)),
546 detectorType,
547 stateIndexCounter)).isFailure())
548 msg(MSG::WARNING) << "Could not call helper Tool! " << endmsg;
549
550 delete unbiasedParameters;
551 } // end if(TSoS is measurement)
552 } // end for loop on trackstates
553
554
555 //----------------------------------------------
556 // do hole search if selected
557 if (m_doHoleSearch) {
558 std::unique_ptr<const Trk::TrackStates> holesOnTrack (m_holeSearchTool->getHolesOnTrack(track, track.info().particleHypothesis()));
559 // loop over holes
560 if (!holesOnTrack) {
561 msg(MSG::WARNING) << "Got no holes on track" << endmsg;
562 return StatusCode::SUCCESS;
563 }
564 for (const auto *it : *holesOnTrack) {
565 if (!it) {
566 msg(MSG::WARNING) << "TrackStateOnSurface from hole search tool == Null" << endmsg;
567 continue;
568 }
569 if (fillHoleData(*it).isFailure()) {
570 msg(MSG::WARNING) << "info about TrackState (hole) could not be written to ntuple" << endmsg;
571 }
572 } // end loop on holes
573 }
574
575 return StatusCode::SUCCESS;
576}
#define ATH_MSG_INFO(x)
bool contains(ParamDefs par) const
The simple check for the clients whether the parameter is contained.
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
virtual StatusCode fillHoleData(const Trk::TrackStateOnSurface &)
fill ntuple data of holes on track without writing the record
StatusCode callHelperTools(const Trk::MeasurementBase *, const Trk::TrackParameters *, const bool &isOutlier, const int &detectorType, const int &nCurrentHit)
call the helper tools
StatusCode fillMeasurementData(const Trk::MeasurementBase *, const Trk::TrackParameters *, const bool &isOutlier, const int &detectorType)
fill variables with call for each measurement TSoS
virtual void resetVariables()
reset the variables after writing the record to disk ntuple
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
MeasurementType
enum describing the flavour of MeasurementBase
DataVector< const Trk::TrackStateOnSurface > TrackStates
@ locX
Definition ParamDefs.h:37
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ fillTrackParticleData()

StatusCode Trk::MeasurementVectorNtupleTool::fillTrackParticleData ( const Trk::TrackParticleBase & )
virtual

fill ntuple data of a given TrackParticle without writing the record.

fill trackparticle data into variables without actually writing the record

  • if this method is called twice without writing the ntuple inbetween the first data will be lost!

Implements Trk::ITrackValidationNtupleTool.

Definition at line 581 of file MeasurementVectorNtupleTool.cxx.

583{
584
585 ATH_MSG_WARNING ("MeasurementVectorNtupleTool not meant to be used with TrackParticles.");
586
587 return StatusCode::SUCCESS;
588}
#define ATH_MSG_WARNING(x)

◆ fillTrackTruthData()

StatusCode Trk::MeasurementVectorNtupleTool::fillTrackTruthData ( const TrackParameters *& ,
const TrackTruth & ,
const int  )
virtual

fill data about the truth match (score, parameter-pulls etc)

Implements Trk::ITrackValidationNtupleTool.

Definition at line 704 of file MeasurementVectorNtupleTool.cxx.

705{
706
707 // implement code here (truth trajectory?)
708 return StatusCode::SUCCESS;
709
710}

◆ finalize()

StatusCode Trk::MeasurementVectorNtupleTool::finalize ( )

Definition at line 299 of file MeasurementVectorNtupleTool.cxx.

299 {
300
301 ATH_MSG_DEBUG ("start finalize() in " << name());
302
303 if (!m_residualPullCalculator.empty()) {
304 delete m_pullLocX;
305 delete m_pullLocY;
306 delete m_residualLocX;
307 delete m_residualLocY;
308 }
309 delete m_DetectorType;
310 delete m_isOutlier;
311 delete m_pixelHitIndex;
312 delete m_sctHitIndex;
313 delete m_trtHitIndex;
314 delete m_mdtHitIndex;
315 delete m_cscHitIndex;
316 delete m_rpcHitIndex;
317 delete m_tgcHitIndex;
319 delete m_detTypeHelper;
320
321 return StatusCode::SUCCESS;
322}

◆ initialize()

StatusCode Trk::MeasurementVectorNtupleTool::initialize ( )

Definition at line 117 of file MeasurementVectorNtupleTool.cxx.

117 {
118
119 if (!m_residualPullCalculator.empty()) {
120 m_pullLocX = new std::vector<float>();
121 m_pullLocY = new std::vector<float>();
122 m_residualLocX = new std::vector<float>();
123 m_residualLocY = new std::vector<float>();
124 }
125
126 m_DetectorType = new std::vector<int>();
127 m_isOutlier = new std::vector<int>();
128
129 m_pixelHitIndex = new std::vector<int>();
130 m_sctHitIndex = new std::vector<int>();
131 m_trtHitIndex = new std::vector<int>();
132 m_mdtHitIndex = new std::vector<int>();
133 m_cscHitIndex = new std::vector<int>();
134 m_rpcHitIndex = new std::vector<int>();
135 m_tgcHitIndex = new std::vector<int>();
136 if (m_doHoleSearch) {
137 m_HoleDetectorType = new std::vector<int>();
138 }
139
140 if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) {
141 ATH_MSG_ERROR ("Could not get AtlasDetectorID helper" );
142 return StatusCode::FAILURE;
143 }
144 m_detTypeHelper = new MeasurementTypeID(m_idHelper);
145
146 StatusCode sc(StatusCode::SUCCESS);
147 // ----------------------------------
148 // use updator to get unbiased states
149 if ( ! m_updatorHandle.empty() ) {
150 sc = m_updatorHandle.retrieve();
151 if (sc.isFailure()) {
152 msg(MSG::FATAL) << "Could not retrieve measurement updator tool: "<< m_updatorHandle << endmsg;
153 return sc;
154 }
155 m_updator = &(*m_updatorHandle);
156 } else {
157 ATH_MSG_DEBUG ("No Updator for unbiased track states given, use normal states!");
158 m_updator = nullptr;
159 }
160
161 // need an Atlas id-helper to identify sub-detectors, take the one from detStore
162 if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) {
163 ATH_MSG_ERROR ("Could not get AtlasDetectorID helper" );
164 return StatusCode::FAILURE;
165 } // ---------------------------------------
166
167 // -------------------------------
168 // get given helper tools
169 ToolHandleArray< Trk::IValidationNtupleHelperTool >::iterator itTools;
170 // get all the given ntuple helper tools for Pixel
171 if ( m_PixelNtupleHelperToolHandles.retrieve().isFailure() ) {
172 msg(MSG::ERROR) << "Failed to retreive " << m_PixelNtupleHelperToolHandles << endmsg;
173 } else {
174 msg(MSG::INFO) << "Retrieved " << m_PixelNtupleHelperToolHandles << endmsg;
175 }
176 itTools = m_PixelNtupleHelperToolHandles.begin();
177 for ( ; itTools != m_PixelNtupleHelperToolHandles.end(); ++itTools ) {
178 // add tool to list
179 m_PixelHelperTools.push_back(&(*(*itTools)));
180 m_helperToolWarning[&(*(*itTools))] = false;
181 }
182 // get all the given ntuple helper tools for SCT
183 if ( m_SCTNtupleHelperToolHandles.retrieve().isFailure() ) {
184 msg(MSG::ERROR) << "Failed to retreive " << m_SCTNtupleHelperToolHandles << endmsg;
185 } else {
186 msg(MSG::INFO) << "Retrieved " << m_SCTNtupleHelperToolHandles << endmsg;
187 }
188 itTools = m_SCTNtupleHelperToolHandles.begin();
189 for ( ; itTools != m_SCTNtupleHelperToolHandles.end(); ++itTools ) {
190 // add tool to list
191 m_SCTHelperTools.push_back(&(*(*itTools)));
192 m_helperToolWarning[&(*(*itTools))] = false;
193 }
194 // get all the given ntuple helper tools for TRT
195 if ( m_TRTNtupleHelperToolHandles.retrieve().isFailure() ) {
196 msg(MSG::ERROR) << "Failed to retreive " << m_TRTNtupleHelperToolHandles << endmsg;
197 } else {
198 msg(MSG::INFO) << "Retrieved " << m_TRTNtupleHelperToolHandles << endmsg;
199 }
200 itTools = m_TRTNtupleHelperToolHandles.begin();
201 for ( ; itTools != m_TRTNtupleHelperToolHandles.end(); ++itTools ) {
202 // add tool to list
203 m_TRTHelperTools.push_back(&(*(*itTools)));
204 m_helperToolWarning[&(*(*itTools))] = false;
205 }
206 // get all the given ntuple helper tools for MDT
207 if ( m_MDTNtupleHelperToolHandles.retrieve().isFailure() ) {
208 msg(MSG::ERROR) << "Failed to retreive " << m_MDTNtupleHelperToolHandles << endmsg;
209 } else {
210 msg(MSG::INFO) << "Retrieved " << m_MDTNtupleHelperToolHandles << endmsg;
211 }
212 itTools = m_MDTNtupleHelperToolHandles.begin();
213 for ( ; itTools != m_MDTNtupleHelperToolHandles.end(); ++itTools ) {
214 // add tool to list
215 m_MDTHelperTools.push_back(&(*(*itTools)));
216 m_helperToolWarning[&(*(*itTools))] = false;
217 }
218 // get all the given ntuple helper tools for CSC
219 if ( m_CSCNtupleHelperToolHandles.retrieve().isFailure() ) {
220 msg(MSG::ERROR) << "Failed to retreive " << m_CSCNtupleHelperToolHandles << endmsg;
221 } else {
222 msg(MSG::INFO) << "Retrieved " << m_CSCNtupleHelperToolHandles << endmsg;
223 }
224 itTools = m_CSCNtupleHelperToolHandles.begin();
225 for ( ; itTools != m_CSCNtupleHelperToolHandles.end(); ++itTools ) {
226 // add tool to list
227 m_CSCHelperTools.push_back(&(*(*itTools)));
228 m_helperToolWarning[&(*(*itTools))] = false;
229 }
230 // get all the given ntuple helper tools for RPC
231 if ( m_RPCNtupleHelperToolHandles.retrieve().isFailure() ) {
232 msg(MSG::ERROR) << "Failed to retreive " << m_RPCNtupleHelperToolHandles << endmsg;
233 } else {
234 msg(MSG::INFO) << "Retrieved " << m_RPCNtupleHelperToolHandles << endmsg;
235 }
236 itTools = m_RPCNtupleHelperToolHandles.begin();
237 for ( ; itTools != m_RPCNtupleHelperToolHandles.end(); ++itTools ) {
238 // add tool to list
239 m_RPCHelperTools.push_back(&(*(*itTools)));
240 m_helperToolWarning[&(*(*itTools))] = false;
241 }
242 // get all the given ntuple helper tools for TGC
243 if ( m_TGCNtupleHelperToolHandles.retrieve().isFailure() ) {
244 msg(MSG::ERROR) << "Failed to retreive " << m_TGCNtupleHelperToolHandles << endmsg;
245 } else {
246 msg(MSG::INFO) << "Retrieved " << m_TGCNtupleHelperToolHandles << endmsg;
247 }
248 itTools = m_TGCNtupleHelperToolHandles.begin();
249 for ( ; itTools != m_TGCNtupleHelperToolHandles.end(); ++itTools ) {
250 // add tool to list
251 m_TGCHelperTools.push_back(&(*(*itTools)));
252 m_helperToolWarning[&(*(*itTools))] = false;
253 }
254 // get all the given ntuple helper tools independent from detector tech
255 if ( m_GeneralNtupleHelperToolHandles.retrieve().isFailure() ) {
256 msg(MSG::ERROR) << "Failed to retreive " << m_GeneralNtupleHelperToolHandles << endmsg;
257 } else {
258 msg(MSG::INFO) << "Retrieved " << m_GeneralNtupleHelperToolHandles << endmsg;
259 }
260 itTools = m_GeneralNtupleHelperToolHandles.begin();
261 for ( ; itTools != m_GeneralNtupleHelperToolHandles.end(); ++itTools ) {
262 // add tool to list
263 m_GeneralHelperTools.push_back(&(*(*itTools)));
264 m_helperToolWarning[&(*(*itTools))] = false;
265 }
266
267 // get the ResidualPullCalculator
268 if (m_residualPullCalculator.empty()) {
269 msg(MSG::INFO) << "No residual/pull calculator for general hit residuals configured."
270 << endmsg;
271 msg(MSG::INFO) << "It is recommended to give R/P calculators to the det-specific tool"
272 << " handle lists then." << endmsg;
273 } else {
274 sc = m_residualPullCalculator.retrieve();
275 if (sc.isFailure()) {
276 msg(MSG::FATAL) << "Could not retrieve "<< m_residualPullCalculator <<" (to calculate residuals and pulls) "<< endmsg;
277 return sc;
278 } else {
279 msg(MSG::INFO) << "Generic hit residuals&pulls will be calculated in one or both "
280 << "available local coordinates" << endmsg;
281 }
282 }
283 // get the hole search tool if needed
284 if (m_doHoleSearch) {
285 sc = m_holeSearchTool.retrieve();
286 if (sc.isFailure()) {
287 msg(MSG::FATAL) << "Could not retrieve "<< m_holeSearchTool <<" (needed for hole search) "<< endmsg;
288 return sc;
289 }
290 }
291
292 ATH_MSG_DEBUG ("successfully initialized in " << name());
293 return StatusCode::SUCCESS;
294}
#define ATH_MSG_ERROR(x)
const ServiceHandle< StoreGateSvc > & detStore() const
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ 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 & Trk::ITrackValidationNtupleTool::interfaceID ( )
inlinestaticinherited

Interface ID, declared here, and defined below.

Definition at line 69 of file ITrackValidationNtupleTool.h.

69 {
71}
static const InterfaceID IID_ITrackValidationNtupleTool("ITrackValidationNtupleTool", 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.

◆ 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 }

◆ resetVariables()

void Trk::MeasurementVectorNtupleTool::resetVariables ( )
virtual

reset the variables after writing the record to disk ntuple

Implements Trk::ITrackValidationNtupleTool.

Definition at line 593 of file MeasurementVectorNtupleTool.cxx.

593 {
594
595 // reset the counters
596 m_nPixelHits = 0;
597 m_nSCTHits = 0;
598 m_nTRTHits = 0;
599 m_nMDTHits = 0;
600 m_nCSCHits = 0;
601 m_nRPCHits = 0;
602 m_nTGCHits = 0;
603
604 m_pixelHitIndex->clear();
605 m_sctHitIndex->clear();
606 m_trtHitIndex->clear();
607 m_mdtHitIndex->clear();
608 m_cscHitIndex->clear();
609 m_rpcHitIndex->clear();
610 m_tgcHitIndex->clear();
611
612 if (m_doHoleSearch) {
613 m_nHoles = 0;
614 m_nPixelHoles = 0;
615 m_nSctHoles = 0;
616 m_HoleDetectorType->clear();
617 }
618
619 // clear data vectors
620 if (!m_residualPullCalculator.empty()) {
621 m_pullLocX->clear();
622 m_pullLocY->clear();
623 m_residualLocX->clear();
624 m_residualLocY->clear();
625 }
626 m_DetectorType->clear();
627 m_isOutlier->clear();
628
629 std::vector< Trk::IValidationNtupleHelperTool* >::iterator toolIter;
630 toolIter = m_PixelHelperTools.begin();
631 for ( ; toolIter != m_PixelHelperTools.end(); ++toolIter ) {
632 // let tool reset its variables
633 StatusCode sc = (*toolIter)->resetVariables (TrackState::Pixel);
634 if(sc.isFailure()) {
635 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
636 return;
637 }
638 }
639 toolIter = m_SCTHelperTools.begin();
640 for ( ; toolIter != m_SCTHelperTools.end(); ++toolIter ) {
641 // let tool reset its variables
642 StatusCode sc = (*toolIter)->resetVariables (TrackState::SCT);
643 if(sc.isFailure()) {
644 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
645 return;
646 }
647 }
648 toolIter = m_TRTHelperTools.begin();
649 for ( ; toolIter != m_TRTHelperTools.end(); ++toolIter ) {
650 // let tool reset its variables
651 StatusCode sc = (*toolIter)->resetVariables (TrackState::TRT);
652 if(sc.isFailure()) {
653 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
654 return;
655 }
656 }
657 toolIter = m_MDTHelperTools.begin();
658 for ( ; toolIter != m_MDTHelperTools.end(); ++toolIter ) {
659 // let tool reset its variables
660 StatusCode sc = (*toolIter)->resetVariables (TrackState::MDT);
661 if(sc.isFailure()) {
662 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
663 return;
664 }
665 }
666 toolIter = m_CSCHelperTools.begin();
667 for ( ; toolIter != m_CSCHelperTools.end(); ++toolIter ) {
668 // let tool reset its variables
669 StatusCode sc = (*toolIter)->resetVariables (TrackState::CSC);
670 if(sc.isFailure()) {
671 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
672 return;
673 }
674 }
675 toolIter = m_RPCHelperTools.begin();
676 for ( ; toolIter != m_RPCHelperTools.end(); ++toolIter ) {
677 // let tool reset its variables
678 StatusCode sc = (*toolIter)->resetVariables (TrackState::RPC);
679 if(sc.isFailure()) {
680 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
681 return;
682 }
683 }
684 toolIter = m_TGCHelperTools.begin();
685 for ( ; toolIter != m_TGCHelperTools.end(); ++toolIter ) {
686 // let tool reset its variables
687 StatusCode sc = (*toolIter)->resetVariables (TrackState::TGC);
688 if(sc.isFailure()) {
689 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
690 return;
691 }
692 }
693 toolIter = m_GeneralHelperTools.begin();
694 for ( ; toolIter != m_GeneralHelperTools.end(); ++toolIter ) {
695 // let tool reset its variables
696 StatusCode sc = (*toolIter)->resetVariables (TrackState::unidentified);
697 if(sc.isFailure()) {
698 msg(MSG::ERROR)<<"The helper could not reset its ntuple variables" << endmsg;
699 return;
700 }
701 }
702}

◆ 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_CSCHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_CSCHelperTools
private

the helper tools for CSC data

Definition at line 129 of file MeasurementVectorNtupleTool.h.

◆ m_cscHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_cscHitIndex
private

corresp.

index for CSC measurement vector

Definition at line 161 of file MeasurementVectorNtupleTool.h.

◆ m_CSCNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_CSCNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for CSC

Definition at line 118 of file MeasurementVectorNtupleTool.h.

◆ m_DetectorType

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_DetectorType
private

Detector type of the measurement, enum according to TrkEventPrimitives/TrackStateDefs.h, vector of size nHits.

Definition at line 146 of file MeasurementVectorNtupleTool.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_detTypeHelper

MeasurementTypeID* Trk::MeasurementVectorNtupleTool::m_detTypeHelper
private

Definition at line 107 of file MeasurementVectorNtupleTool.h.

◆ m_doHoleSearch

bool Trk::MeasurementVectorNtupleTool::m_doHoleSearch
private

switch to turn hole search on/off

Definition at line 138 of file MeasurementVectorNtupleTool.h.

◆ m_doTruth

bool Trk::MeasurementVectorNtupleTool::m_doTruth
private

switch to turn truth on/off

Definition at line 137 of file MeasurementVectorNtupleTool.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_GeneralHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_GeneralHelperTools
private

the helper tools for data independent from detector technology

Definition at line 132 of file MeasurementVectorNtupleTool.h.

◆ m_GeneralNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_GeneralNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for data independent from detector technology

Definition at line 121 of file MeasurementVectorNtupleTool.h.

◆ m_helperToolWarning

std::map<const IValidationNtupleHelperTool*, bool> Trk::MeasurementVectorNtupleTool::m_helperToolWarning
private

Definition at line 139 of file MeasurementVectorNtupleTool.h.

◆ m_HoleDetectorType

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_HoleDetectorType
private

detector type of the hole (vector of size nHoles)

Definition at line 169 of file MeasurementVectorNtupleTool.h.

◆ m_holeSearchTool

ToolHandle<Trk::ITrackHoleSearchTool> Trk::MeasurementVectorNtupleTool::m_holeSearchTool
private

The hole search tool.

Definition at line 113 of file MeasurementVectorNtupleTool.h.

◆ m_idHelper

const AtlasDetectorID* Trk::MeasurementVectorNtupleTool::m_idHelper
private

Used to find out the sub-det from PRD->identify().

Definition at line 106 of file MeasurementVectorNtupleTool.h.

◆ m_ignoreMissTrkCov

bool Trk::MeasurementVectorNtupleTool::m_ignoreMissTrkCov
private

jobOption: ignore missing covariance of track parameters for pull calculation?

Definition at line 124 of file MeasurementVectorNtupleTool.h.

◆ m_isOutlier

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_isOutlier
private

flag if measurement is outlier (1) or not (0), vector of size nHits UNIT:0:no, 1:yes

Definition at line 147 of file MeasurementVectorNtupleTool.h.

◆ m_isUnbiased

int Trk::MeasurementVectorNtupleTool::m_isUnbiased
private

flag if track states are unbiased to the related measurements (0:no, 1:yes)

Definition at line 141 of file MeasurementVectorNtupleTool.h.

◆ m_MDTHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_MDTHelperTools
private

the helper tools for MDT data

Definition at line 128 of file MeasurementVectorNtupleTool.h.

◆ m_mdtHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_mdtHitIndex
private

corresp.

index for MDT measurement vector

Definition at line 160 of file MeasurementVectorNtupleTool.h.

◆ m_MDTNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_MDTNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for MDT

Definition at line 117 of file MeasurementVectorNtupleTool.h.

◆ m_nCSCHits

int Trk::MeasurementVectorNtupleTool::m_nCSCHits
private

number of measurements in the CSC (without outliers)

Definition at line 153 of file MeasurementVectorNtupleTool.h.

◆ m_nHoles

int Trk::MeasurementVectorNtupleTool::m_nHoles
private

number of holes on track

Definition at line 166 of file MeasurementVectorNtupleTool.h.

◆ m_nMDTHits

int Trk::MeasurementVectorNtupleTool::m_nMDTHits
private

number of measurements in the MDTs (without outliers)

Definition at line 152 of file MeasurementVectorNtupleTool.h.

◆ m_nPixelHits

int Trk::MeasurementVectorNtupleTool::m_nPixelHits
private

number of measurements in the Pixels (without outliers)

Definition at line 149 of file MeasurementVectorNtupleTool.h.

◆ m_nPixelHoles

int Trk::MeasurementVectorNtupleTool::m_nPixelHoles
private

number of Pixel holes on track

Definition at line 167 of file MeasurementVectorNtupleTool.h.

◆ m_nRPCHits

int Trk::MeasurementVectorNtupleTool::m_nRPCHits
private

number of measurements in the RPC (without outliers)

Definition at line 154 of file MeasurementVectorNtupleTool.h.

◆ m_nSCTHits

int Trk::MeasurementVectorNtupleTool::m_nSCTHits
private

number of measurements in the SCT (without outliers)

Definition at line 150 of file MeasurementVectorNtupleTool.h.

◆ m_nSctHoles

int Trk::MeasurementVectorNtupleTool::m_nSctHoles
private

number of SCT holes on track

Definition at line 168 of file MeasurementVectorNtupleTool.h.

◆ m_nTGCHits

int Trk::MeasurementVectorNtupleTool::m_nTGCHits
private

number of measurements in the TGC (without outliers)

Definition at line 155 of file MeasurementVectorNtupleTool.h.

◆ m_nTRTHits

int Trk::MeasurementVectorNtupleTool::m_nTRTHits
private

number of measurements in the TRT (without outliers)

Definition at line 151 of file MeasurementVectorNtupleTool.h.

◆ m_PixelHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_PixelHelperTools
private

the helper tools for Pixel data

Definition at line 125 of file MeasurementVectorNtupleTool.h.

◆ m_pixelHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_pixelHitIndex
private

corresp.

index for pixel measurement vector

Definition at line 157 of file MeasurementVectorNtupleTool.h.

◆ m_PixelNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_PixelNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for Pixel

Definition at line 114 of file MeasurementVectorNtupleTool.h.

◆ m_pullLocX

std::vector<float>* Trk::MeasurementVectorNtupleTool::m_pullLocX
private

pull in Trk::LocX for each measurement on the track, vector of size nHits, value set to -1000 if meas't was outlier UNIT:1

Definition at line 144 of file MeasurementVectorNtupleTool.h.

◆ m_pullLocY

std::vector<float>* Trk::MeasurementVectorNtupleTool::m_pullLocY
private

pull in Trk::LocY for each measurement on the track (value is set to -1000 if no second local coord.

exists for the meas't), vector of size nHits UNIT:1

Definition at line 145 of file MeasurementVectorNtupleTool.h.

◆ m_pullWarning

bool Trk::MeasurementVectorNtupleTool::m_pullWarning
private

warn only ones, if pull cannot be calculated

Definition at line 134 of file MeasurementVectorNtupleTool.h.

◆ m_residualLocX

std::vector<float>* Trk::MeasurementVectorNtupleTool::m_residualLocX
private

residual in Trk::LocX for each measurement on the track, vector of size nHits, value set to -1000 if meas't was outlier UNIT:mm

Definition at line 142 of file MeasurementVectorNtupleTool.h.

◆ m_residualLocY

std::vector<float>* Trk::MeasurementVectorNtupleTool::m_residualLocY
private

residual in Trk::LocY for each meas't on the track (value is set to -1000 if no second local coord.

exists for the meas't), vector of size nHits UNIT:mm

Definition at line 143 of file MeasurementVectorNtupleTool.h.

◆ m_residualPullCalculator

ToolHandle<Trk::IResidualPullCalculator> Trk::MeasurementVectorNtupleTool::m_residualPullCalculator
private

The residual and pull calculator tool.

Definition at line 112 of file MeasurementVectorNtupleTool.h.

◆ m_RPCHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_RPCHelperTools
private

the helper tools for RPC data

Definition at line 130 of file MeasurementVectorNtupleTool.h.

◆ m_rpcHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_rpcHitIndex
private

corresp.

index for RPC measurement vector

Definition at line 162 of file MeasurementVectorNtupleTool.h.

◆ m_RPCNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_RPCNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for RPC

Definition at line 119 of file MeasurementVectorNtupleTool.h.

◆ m_SCTHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_SCTHelperTools
private

the helper tools for SCT data

Definition at line 126 of file MeasurementVectorNtupleTool.h.

◆ m_sctHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_sctHitIndex
private

corresp.

index for SCT measurement vector

Definition at line 158 of file MeasurementVectorNtupleTool.h.

◆ m_SCTNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_SCTNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for SCT

Definition at line 115 of file MeasurementVectorNtupleTool.h.

◆ m_TGCHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_TGCHelperTools
private

the helper tools for TGC data

Definition at line 131 of file MeasurementVectorNtupleTool.h.

◆ m_tgcHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_tgcHitIndex
private

icorresp.

index for TGC measurement vector

Definition at line 163 of file MeasurementVectorNtupleTool.h.

◆ m_TGCNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_TGCNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for TGC

Definition at line 120 of file MeasurementVectorNtupleTool.h.

◆ m_trkParametersWarning

bool Trk::MeasurementVectorNtupleTool::m_trkParametersWarning
private

warn once only, if no track parameters exist

Definition at line 136 of file MeasurementVectorNtupleTool.h.

◆ m_TRTHelperTools

std::vector<IValidationNtupleHelperTool*> Trk::MeasurementVectorNtupleTool::m_TRTHelperTools
private

the helper tools for TRT data

Definition at line 127 of file MeasurementVectorNtupleTool.h.

◆ m_trtHitIndex

std::vector<int>* Trk::MeasurementVectorNtupleTool::m_trtHitIndex
private

corresp.

index for TRT measurement vector

Definition at line 159 of file MeasurementVectorNtupleTool.h.

◆ m_TRTNtupleHelperToolHandles

ToolHandleArray<IValidationNtupleHelperTool> Trk::MeasurementVectorNtupleTool::m_TRTNtupleHelperToolHandles
private

jobOption: List of Ntuple validation helper tools for TRT

Definition at line 116 of file MeasurementVectorNtupleTool.h.

◆ m_updator

Trk::IUpdator* Trk::MeasurementVectorNtupleTool::m_updator
private

updator for unbiased states

Definition at line 110 of file MeasurementVectorNtupleTool.h.

◆ m_updatorHandle

ToolHandle<Trk::IUpdator> Trk::MeasurementVectorNtupleTool::m_updatorHandle
private

Tool handle of updator for unbiased states.

Definition at line 109 of file MeasurementVectorNtupleTool.h.

◆ m_UpdatorWarning

bool Trk::MeasurementVectorNtupleTool::m_UpdatorWarning
private

warn only ones, if unbiased track states can not be calculated

Definition at line 135 of file MeasurementVectorNtupleTool.h.

◆ m_useROTwithMaxAssgnProb

bool Trk::MeasurementVectorNtupleTool::m_useROTwithMaxAssgnProb
private

jobOption: use ROT with max.

assignment probabilty in the case of Trk::CompetingRIOsOnTrack or use competingROT itself?

Definition at line 123 of file MeasurementVectorNtupleTool.h.

◆ 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.


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