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

This validation tool writes information about track positions. More...

#include <TrackPositionNtupleHelper.h>

Inheritance diagram for Trk::TrackPositionNtupleHelper:
Collaboration diagram for Trk::TrackPositionNtupleHelper:

Public Member Functions

 TrackPositionNtupleHelper (const std::string &, const std::string &, const IInterface *)
 ~TrackPositionNtupleHelper ()
StatusCode initialize ()
 initialize
StatusCode finalize ()
 finalize
virtual StatusCode fillMeasurementData (const Trk::MeasurementBase *, const Trk::TrackParameters *, const int &detectorType, const bool &isOutlier)
 fill hit position data
virtual StatusCode fillHoleData (const Trk::TrackStateOnSurface &, const int &)
 fill special data about holes on track (here: do nothing)
virtual StatusCode addNtupleItems (TTree *tree, const int &detectorType)
 add items to the ntuple and configure the helper tool: should be called once (per detector type) by the steering tool (Trk::ITrackValidationNtupleTool)
virtual StatusCode resetVariables (const int &detectorType)
 reset ntuple variables
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

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

bool m_trkParametersWarning
 warn only once if no track pars exist
std::vector< float > * m_trkX
 global position X of track intersecting meas't surface
std::vector< float > * m_trkY
 global position Y of track intersecting meas't surface
std::vector< float > * m_trkZ
 global position Z of track intersection meas't surface
std::vector< float > * m_trkMomentumX
 global momentum X of track at measurement
std::vector< float > * m_trkMomentumY
 global momentum Y of track at measurement
std::vector< float > * m_trkMomentumZ
 global momentum Z of track at measurement
std::vector< float > * m_trkLoc1
 local position 1st coord.
std::vector< float > * m_trkLoc2
 local position 2nd coord.
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 information about track positions.

Author
Sebas.nosp@m.tian.nosp@m..Flei.nosp@m.schm.nosp@m.ann@c.nosp@m.ern..nosp@m.ch

Definition at line 34 of file TrackPositionNtupleHelper.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

◆ TrackPositionNtupleHelper()

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

Definition at line 18 of file TrackPositionNtupleHelper.cxx.

22 :
23 AthAlgTool(t,n,p),
25 m_trkX(nullptr),
26 m_trkY(nullptr),
27 m_trkZ(nullptr),
28 m_trkMomentumX(nullptr),
29 m_trkMomentumY(nullptr),
30 m_trkMomentumZ(nullptr),
31 m_trkLoc1(nullptr),
32 m_trkLoc2(nullptr)
33
34 {
35 declareInterface<IValidationNtupleHelperTool>(this);
36 //declareProperty("IgnoreMissingTrackCovarianceForPulls", mjo_ignoreMissTrkCov = false);
37}
AthAlgTool()
Default constructor:
std::vector< float > * m_trkMomentumZ
global momentum Z of track at measurement
std::vector< float > * m_trkLoc1
local position 1st coord.
std::vector< float > * m_trkY
global position Y of track intersecting meas't surface
std::vector< float > * m_trkX
global position X of track intersecting meas't surface
std::vector< float > * m_trkLoc2
local position 2nd coord.
bool m_trkParametersWarning
warn only once if no track pars exist
std::vector< float > * m_trkMomentumX
global momentum X of track at measurement
std::vector< float > * m_trkZ
global position Z of track intersection meas't surface
std::vector< float > * m_trkMomentumY
global momentum Y of track at measurement

◆ ~TrackPositionNtupleHelper()

Trk::TrackPositionNtupleHelper::~TrackPositionNtupleHelper ( )
default

Member Function Documentation

◆ addNtupleItems()

StatusCode Trk::TrackPositionNtupleHelper::addNtupleItems ( TTree * tree,
const int & detectorType )
virtual

add items to the ntuple and configure the helper tool: should be called once (per detector type) by the steering tool (Trk::ITrackValidationNtupleTool)

addNtupleItems

Implements Trk::IValidationNtupleHelperTool.

Definition at line 82 of file TrackPositionNtupleHelper.cxx.

84 {
85
86 // add items
87 tree->Branch("TrackX", &m_trkX);
88 tree->Branch("TrackY", &m_trkY);
89 tree->Branch("TrackZ", &m_trkZ);
90 tree->Branch("TrackMomentumX", &m_trkMomentumX);
91 tree->Branch("TrackMomentumY", &m_trkMomentumY);
92 tree->Branch("TrackMomentumZ", &m_trkMomentumZ);
93 tree->Branch("TrackLocal1", &m_trkLoc1);
94 tree->Branch("TrackLocal2", &m_trkLoc2);
95
96 ATH_MSG_VERBOSE ("added items to ntuple.");
97 return StatusCode::SUCCESS;
98}
#define ATH_MSG_VERBOSE(x)
TChain * tree

◆ 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 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ 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::TrackPositionNtupleHelper::fillHoleData ( const Trk::TrackStateOnSurface & ,
const int &  )
virtual

fill special data about holes on track (here: do nothing)

Implements Trk::IValidationNtupleHelperTool.

Definition at line 170 of file TrackPositionNtupleHelper.cxx.

172 {
173 // we do nothing with holes
174 return StatusCode::SUCCESS;
175}

◆ fillMeasurementData()

StatusCode Trk::TrackPositionNtupleHelper::fillMeasurementData ( const Trk::MeasurementBase * ,
const Trk::TrackParameters * trkPar,
const int & detectorType,
const bool & isOutlier )
virtual

fill hit position data

Implements Trk::IValidationNtupleHelperTool.

Definition at line 103 of file TrackPositionNtupleHelper.cxx.

109 {
110
111 if (!trkPar) {
112 m_trkX->push_back( s_errorEntry );
113 m_trkY->push_back( s_errorEntry );
114 m_trkZ->push_back( s_errorEntry );
115 m_trkMomentumX->push_back( s_errorEntry );
116 m_trkMomentumY->push_back( s_errorEntry );
117 m_trkMomentumZ->push_back( s_errorEntry );
118 m_trkLoc1->push_back( s_errorEntry );
119 m_trkLoc2->push_back( s_errorEntry );
120 if (!isOutlier) {
121 // outliers usually have no track parameters, so do not warn for them!
123 // warn once only!
124 ATH_MSG_WARNING ("No TrackParameters: Track positions cannot be filled (filling dummy values).");
125 ATH_MSG_WARNING (" This is possible for slimmed tracks; if track positions are needed choose another track collection");
126 ATH_MSG_WARNING (" (further warnings will be suppressed)");
128 }
129 }
130 return StatusCode::SUCCESS;
131 } // end if (!trkPar)
132
133 //--------------------------
134 // track position info
135
136 // get local and global parameters of the track state
137 Amg::Vector2D lp = trkPar->localPosition();
138
139 const Amg::Vector3D& gmom = trkPar->momentum();
140 const Amg::Vector3D& gpos = trkPar->position();
141
142 m_trkX->push_back( float(gpos.x()) );
143 m_trkY->push_back( float(gpos.y()) );
144 m_trkZ->push_back( float(gpos.z()) );
145 m_trkMomentumX->push_back( float(gmom.x()) );
146 m_trkMomentumY->push_back( float(gmom.y()) );
147 m_trkMomentumZ->push_back( float(gmom.z()) );
148
149 m_trkLoc1->push_back( float(lp[Trk::locX]) );
150 m_trkLoc2->push_back( float(lp[Trk::locY]) );
151
152 return StatusCode::SUCCESS;
153}
#define ATH_MSG_WARNING(x)
static const float s_errorEntry
const Amg::Vector3D & momentum() const
Access method for the momentum.
const Amg::Vector3D & position() const
Access method for the position.
Amg::Vector2D localPosition() const
Access method for the local coordinates, local parameter definitions differ for each surface type.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
@ locY
local cartesian
Definition ParamDefs.h:38
@ locX
Definition ParamDefs.h:37

◆ finalize()

StatusCode Trk::TrackPositionNtupleHelper::finalize ( )

finalize

Definition at line 63 of file TrackPositionNtupleHelper.cxx.

63 {
64
65 delete m_trkX;
66 delete m_trkY;
67 delete m_trkZ;
68 delete m_trkMomentumX;
69 delete m_trkMomentumY;
70 delete m_trkMomentumZ;
71 delete m_trkLoc1;
72 delete m_trkLoc2;
73
74 ATH_MSG_INFO ("finalize() successful in " << name() );
75 return StatusCode::SUCCESS;
76}
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode Trk::TrackPositionNtupleHelper::initialize ( )

initialize

Definition at line 46 of file TrackPositionNtupleHelper.cxx.

46 {
47
48 m_trkX = new std::vector<float>();
49 m_trkY = new std::vector<float>();
50 m_trkZ = new std::vector<float>();
51 m_trkMomentumX = new std::vector<float>();
52 m_trkMomentumY = new std::vector<float>();
53 m_trkMomentumZ = new std::vector<float>();
54 m_trkLoc1 = new std::vector<float>();
55 m_trkLoc2 = new std::vector<float>();
56
57 return StatusCode::SUCCESS;
58}

◆ 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::IValidationNtupleHelperTool::interfaceID ( )
inlinestaticinherited

Interface ID, declared here, and defined below.

Definition at line 76 of file IValidationNtupleHelperTool.h.

76 {
78}
static const InterfaceID IID_IValidationNtupleHelperTool("IValidationNtupleHelperTool", 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()

StatusCode Trk::TrackPositionNtupleHelper::resetVariables ( const int & detectorType)
virtual

reset ntuple variables

Implements Trk::IValidationNtupleHelperTool.

Definition at line 155 of file TrackPositionNtupleHelper.cxx.

156 {
157 m_trkX->clear();
158 m_trkY->clear();
159 m_trkZ->clear();
160 m_trkMomentumX->clear();
161 m_trkMomentumY->clear();
162 m_trkMomentumZ->clear();
163 m_trkLoc1->clear();
164 m_trkLoc2->clear();
165
166 return StatusCode::SUCCESS;
167}

◆ 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_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_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_trkLoc1

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkLoc1
private

local position 1st coord.

of track intersecting meas't surface

Definition at line 81 of file TrackPositionNtupleHelper.h.

◆ m_trkLoc2

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkLoc2
private

local position 2nd coord.

of track intersecting meas't surface

Definition at line 82 of file TrackPositionNtupleHelper.h.

◆ m_trkMomentumX

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkMomentumX
private

global momentum X of track at measurement

Definition at line 78 of file TrackPositionNtupleHelper.h.

◆ m_trkMomentumY

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkMomentumY
private

global momentum Y of track at measurement

Definition at line 79 of file TrackPositionNtupleHelper.h.

◆ m_trkMomentumZ

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkMomentumZ
private

global momentum Z of track at measurement

Definition at line 80 of file TrackPositionNtupleHelper.h.

◆ m_trkParametersWarning

bool Trk::TrackPositionNtupleHelper::m_trkParametersWarning
private

warn only once if no track pars exist

Definition at line 73 of file TrackPositionNtupleHelper.h.

◆ m_trkX

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkX
private

global position X of track intersecting meas't surface

Definition at line 75 of file TrackPositionNtupleHelper.h.

◆ m_trkY

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkY
private

global position Y of track intersecting meas't surface

Definition at line 76 of file TrackPositionNtupleHelper.h.

◆ m_trkZ

std::vector<float>* Trk::TrackPositionNtupleHelper::m_trkZ
private

global position Z of track intersection meas't surface

Definition at line 77 of file TrackPositionNtupleHelper.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: