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

Implementation of the track selector tool. More...

#include <InDetSecVtxTrackSelectionTool.h>

Inheritance diagram for InDet::InDetSecVtxTrackSelectionTool:
Collaboration diagram for InDet::InDetSecVtxTrackSelectionTool:

Public Member Functions

virtual void print () const
 Print the state of the tool.
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
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

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

ASG_TOOL_CLASS2(InDetSecVtxTrackSelectionTool, IAsgSelectionTool, InDet::IInDetTrackSelectionTool) public ~InDetSecVtxTrackSelectionTool ()
 Create a proper constructor for Athena.
virtual void setCutLevel (InDet::CutLevel level, bool overwrite=true) override __attribute__((deprecated("For consistency with the athena interface
 Function to set the cut level within standalone ROOT.
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>
Function(s) implementing the asg::IAsgTool interface
virtual StatusCode initialize () override
 Function initialising the tool.
virtual StatusCode finalize () override
 Function finalizing the tool.
Function(s) implementing the IAsgSelectionTool interface
virtual const asg::AcceptInfogetAcceptInfo () const override
 Get an object describing the "selection steps" of the tool.
virtual asg::AcceptData accept (const xAOD::IParticle *) const override
 Get the decision using a generic IParticle pointer.
Function(s) implementing the IInDetSecVtxTrackSelectionTool interface
virtual asg::AcceptData accept (const xAOD::TrackParticle &track, const xAOD::Vertex *vertex=nullptr) const override
 Get the decision for a specific track object.
virtual asg::AcceptData accept (const Trk::Track &track, const Trk::Vertex *vertex=nullptr) const override

Private Attributes

virtual void the cut level is best set through the CutLevel property
bool m_isInitialized = false
std::atomic< bool > m_warnInit = false
std::unordered_map< std::string, std::shared_ptr< SecVtxTrackAccessor > > m_trackAccessors
 list of the accessors that need to be run for each track
std::map< std::string, std::vector< std::unique_ptr< SecVtxTrackCut > > > m_trackCuts
 First element is the name of the cut family, second element is the set of cuts.
std::atomic< uint64_t > m_numTracksProcessed = 0
 a counter of the number of tracks proccessed
std::atomic< uint64_t > m_numTracksPassed = 0
 a counter of the number of tracks that passed all cuts
asg::AcceptInfo m_acceptInfo
 Object used to store the last decision.
DoubleProperty m_minD0 {this, "minD0", -1., "Minimum |d0| of tracks"}
IntegerProperty m_NPixel0TRT {this, "minNPixelHitsAtZeroTRT", -1, "Minimum number of Pixel hit upon zero TRT hit"}
IntegerProperty m_minInDetHits {this, "minTotalHits", -1, "Minimum number of Pixel + SCT + TRT hits"}
bool m_initTrkTools = false
 Whether to initialize the Trk::Track tools.
bool m_trackSumToolAvailable = false
 Whether the summary tool is available.
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

Static Private Attributes

static constexpr double LOCAL_MAX_DOUBLE = 1.0e16
static constexpr int LOCAL_MAX_INT = std::numeric_limits<int>::max()

Friends

class SecVtxTrackCut

Detailed Description

Implementation of the track selector tool.

Definition at line 35 of file InDetSecVtxTrackSelectionTool.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

◆ ~InDetSecVtxTrackSelectionTool()

InDet::InDetSecVtxTrackSelectionTool::~InDetSecVtxTrackSelectionTool ( )
privatedefault

Create a proper constructor for Athena.

Member Function Documentation

◆ accept() [1/3]

asg::AcceptData InDet::InDetSecVtxTrackSelectionTool::accept ( const Trk::Track & track,
const Trk::Vertex * vertex = nullptr ) const
overrideprivatevirtual

Implements InDet::IInDetTrackSelectionTool.

Definition at line 244 of file InDetSecVtxTrackSelectionTool.cxx.

246{
247 if (!m_isInitialized) ATH_MSG_WARNING( "Tool is not initialized! Calling accept() will not be very helpful." );
248
249 asg::AcceptData acceptData(&m_acceptInfo);
250
251 bool passAll = true;
252
253 // for faster lookup in setCutResult we will keep track of the index explicitly
254 UShort_t cutFamilyIndex = 0;
255 for ( const auto& cutFamily : m_trackCuts ) {
256 bool pass = true;
257 for ( const auto& cut : cutFamily.second ) {
258 if (! cut->result() ) {
259 pass = false;
260 passAll = false;
261 break;
262 }
263 }
264 acceptData.setCutResult( cutFamilyIndex, pass );
265 if (pass)
266 cutFamilyIndex++;
267 }
268
269 if (passAll)
271
273
274 return acceptData;
275}
#define ATH_MSG_WARNING(x)
asg::AcceptInfo m_acceptInfo
Object used to store the last decision.
std::atomic< uint64_t > m_numTracksPassed
a counter of the number of tracks that passed all cuts
std::atomic< uint64_t > m_numTracksProcessed
a counter of the number of tracks proccessed
std::map< std::string, std::vector< std::unique_ptr< SecVtxTrackCut > > > m_trackCuts
First element is the name of the cut family, second element is the set of cuts.
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.

◆ accept() [2/3]

asg::AcceptData InDet::InDetSecVtxTrackSelectionTool::accept ( const xAOD::IParticle * p) const
overrideprivatevirtual

Get the decision using a generic IParticle pointer.

Implements InDet::IInDetTrackSelectionTool.

Definition at line 141 of file InDetSecVtxTrackSelectionTool.cxx.

142{
143 asg::AcceptData acceptData(&m_acceptInfo);
144 // Check if this is a track:
145 if( p->type() != xAOD::Type::TrackParticle ) {
146 ATH_MSG_ERROR( "accept(...) Function received a non-track" );
147 return acceptData;
148 }
149
150 // Cast it to a track (we have already checked its type so we do not have to dynamic_cast):
151 const xAOD::TrackParticle* trk = static_cast< const xAOD::TrackParticle* >( p );
152
153 // Let the specific function do the work:
154//#ifndef XAOD_ANALYSIS
155// m_accept = m_trkFilter->accept( *trk, nullptr );
156// if ( ! (bool)( m_accept ) ) return m_accept ;
157//#endif
158
159 return accept( *trk, nullptr );
160}
#define ATH_MSG_ERROR(x)
virtual asg::AcceptData accept(const xAOD::IParticle *) const override
Get the decision using a generic IParticle pointer.
@ TrackParticle
The object is a charged track particle.
Definition ObjectType.h:43
TrackParticle_v1 TrackParticle
Reference the current persistent version:

◆ accept() [3/3]

asg::AcceptData InDet::InDetSecVtxTrackSelectionTool::accept ( const xAOD::TrackParticle & track,
const xAOD::Vertex * vertex = nullptr ) const
overrideprivatevirtual

Get the decision for a specific track object.

Implements InDet::IInDetTrackSelectionTool.

Definition at line 164 of file InDetSecVtxTrackSelectionTool.cxx.

166{
167 if (!m_isInitialized) {
168 if (!m_warnInit) {
169 ATH_MSG_WARNING( "Tool is not initialized! Calling accept() will not be very helpful." );
170 m_warnInit = true;
171 }
172 }
173
174 asg::AcceptData acceptData(&m_acceptInfo);
175
176 bool passAll = true;
177
178 for ( const auto & accessor : m_trackAccessors ) {
179 if( ! accessor.second->access( trk, vtx ).isSuccess() ) {
180 ATH_MSG_WARNING("Track access for " << accessor.first << " unsuccessful.");
181 }
182 }
183
184 // loop over all cuts
185 UShort_t cutFamilyIndex = 0;
186 for ( const auto& cutFamily : m_trackCuts ) {
187 bool pass = true;
188
189 for ( const auto& cut : cutFamily.second ) {
190 if (! cut->result() ) {
191 pass = false;
192 passAll = false;
193 break;
194 }
195 }
196 acceptData.setCutResult( cutFamilyIndex, pass );
197 // if (pass) m_numTracksPassedCuts.at(cutFamilyIndex)++; // number of tracks that pass each cut family
198 cutFamilyIndex++;
199 }
200
201
202 if (passAll) m_numTracksPassed++;
203
205
206 return acceptData;
207}
std::unordered_map< std::string, std::shared_ptr< SecVtxTrackAccessor > > m_trackAccessors
list of the accessors that need to be run for each track
const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID id)
Returns an attribute accessor corresponding to an AttributeID.

◆ 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

◆ finalize()

StatusCode InDet::InDetSecVtxTrackSelectionTool::finalize ( )
overrideprivatevirtual

Function finalizing the tool.

Implements InDet::IInDetTrackSelectionTool.

Definition at line 114 of file InDetSecVtxTrackSelectionTool.cxx.

115{
116 StatusCode fin = StatusCode::SUCCESS ;
117
118 if (!m_isInitialized) {
119 ATH_MSG_ERROR( "You are attempting to finalize a tool that has not been initialized()." );
120 }
121
122 if (m_numTracksProcessed == 0) {
123 ATH_MSG_INFO( "No tracks processed in selection tool." );
124 return fin ;
125 }
127 << m_numTracksPassed*100./m_numTracksProcessed << "% passed all cuts." );
128
129 return fin ;
130
131}
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ getAcceptInfo()

const asg::AcceptInfo & InDet::InDetSecVtxTrackSelectionTool::getAcceptInfo ( ) const
overrideprivatevirtual

Get an object describing the "selection steps" of the tool.

Implements InDet::IInDetTrackSelectionTool.

Definition at line 134 of file InDetSecVtxTrackSelectionTool.cxx.

135{
136 return m_acceptInfo;
137}

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ getName()

const std::string & asg::AsgTool::getName ( const void * ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode InDet::InDetSecVtxTrackSelectionTool::initialize ( void )
overrideprivatevirtual

Function initialising the tool.

Implements InDet::IInDetTrackSelectionTool.

Definition at line 34 of file InDetSecVtxTrackSelectionTool.cxx.

34 {
35 // Make sure we haven't already been initialized - this would be a sign of improper usage.
36 StatusCode ini = StatusCode::SUCCESS ;
37 if (m_isInitialized) {
38 ATH_MSG_ERROR( "Tool has already been initialized. This is illegitimate." );
39 ATH_MSG_ERROR( "This call to initialize() will do nothing." );
40 return ini;
41 }
42
43 // Greet the user:
45
46 // if the CutLevel string is set to something recognizable,
47 // then do a soft set on the cuts (i.e. not overwriting those already set)
48
49 if ( m_minD0 >= 0 )
50 {
51 ATH_MSG_DEBUG( " Maximum on d0: " << m_minD0 << " mm" );
52 m_trackCuts["D0"].push_back(std::make_unique<D0minCut>(this, m_minD0));
53 }
54
55 if ( m_NPixel0TRT > 0 )
56 {
57 ATH_MSG_DEBUG( " Minimum number of Pixel hit when TRT has zero hit: " << m_NPixel0TRT );
58
59 auto minPixelHits = std::make_unique< FuncSummaryValueCut<3> >
60 ( this, std::array<xAOD::SummaryType,3>
61 (
63// eta acceptance and outliers are ignored for TRT
64 )
65 );
66
67 minPixelHits->setFunction( [=] (const std::array<uint8_t, 3>& vals )
68 { return ( vals[0] > 0 ) || ( ( vals[1] >= m_NPixel0TRT ) || ( vals[2] >= m_NPixel0TRT ) ) ; }
69 );
70
71 m_trackCuts["minPixelHits0TRT"].push_back( std::move( minPixelHits ) );
72
73 }
74
75 if ( m_minInDetHits > 0 )
76 {
77 ATH_MSG_DEBUG( " Minimum number of Pixel + SCT + TRT hits: " << m_minInDetHits );
78
79 auto mintotHits = std::make_unique< FuncSummaryValueCut<4> >
80 ( this, std::array<xAOD::SummaryType,4>
81 (
84 )
85 );
86
87 mintotHits->setFunction( [=] (const std::array<uint8_t, 4>& vals )
88 { return ( vals[0] + vals[1] + vals[2] + vals[3] ) >= m_minInDetHits ; }
89 );
90
91 m_trackCuts["minTotalHits"].push_back( std::move( mintotHits ) );
92 }
93
94
95 // std::lock_guard<std::mutex> lock{m_mutex};
96 for (const auto& cutFamily : m_trackCuts) {
97 for (const auto& cut : cutFamily.second) {
98 ATH_CHECK( cut->initialize() );
99 }
100 const std::string& cutFamilyName = cutFamily.first;
101 // m_numTracksPassedCuts.push_back(0);
102 if (m_acceptInfo.addCut( cutFamilyName, "Selection of SecVtx tracks according to " + cutFamilyName ) < 0) {
103 ATH_MSG_ERROR( "Failed to add cut family " << cutFamilyName << " because the TAccept object is full." );
104 return StatusCode::FAILURE;
105 }
106 ATH_MSG_VERBOSE("Adding cut family " << cutFamilyName);
107 }
108
109 m_isInitialized = true;
110
111 return ini ;
112}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition AsgTool.h:133
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].

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

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

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

◆ print()

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

◆ setCutLevel()

void InDet::InDetSecVtxTrackSelectionTool::setCutLevel ( InDet::CutLevel level,
bool overwrite = true )
overrideprivatevirtual

Function to set the cut level within standalone ROOT.

This function can be used to set the cut selection of the tool to a pre-defined level, as definied in the twiki for InDetTrackingPerformanceGuidelines. It is left public for use in standalone ROOT. In athena, this should be set through the jobOptions via the "CutLevel" property instead.

Parameters
levelThe CutLevel enumeration that picks the preset level to set the cuts to.
overwriteA boolean (default true) that indicates whether to force an overwrite of each cut. If false, this function does not change the cut levels if they have been altered from their default (no cut) value.

Implements InDet::IInDetTrackSelectionTool.

Definition at line 228 of file InDetSecVtxTrackSelectionTool.cxx.

229{
230#ifndef XAOD_STANDALONE
231 ATH_MSG_WARNING( "InDetTrackSelectionTool::setCutLevel() is not designed to be called manually in Athena." );
232 ATH_MSG_WARNING( "It may not behave as intended. Instead, configure it in the job options through the CutLevel property." );
233#endif // XAOD_STANDALONE
234}

◆ 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

◆ SecVtxTrackCut

friend class SecVtxTrackCut
friend

Definition at line 39 of file InDetSecVtxTrackSelectionTool.h.

Member Data Documentation

◆ LOCAL_MAX_DOUBLE

double InDet::InDetSecVtxTrackSelectionTool::LOCAL_MAX_DOUBLE = 1.0e16
staticconstexprprivate

Definition at line 105 of file InDetSecVtxTrackSelectionTool.h.

◆ LOCAL_MAX_INT

int InDet::InDetSecVtxTrackSelectionTool::LOCAL_MAX_INT = std::numeric_limits<int>::max()
staticconstexprprivate

Definition at line 106 of file InDetSecVtxTrackSelectionTool.h.

◆ m_acceptInfo

asg::AcceptInfo InDet::InDetSecVtxTrackSelectionTool::m_acceptInfo
private

Object used to store the last decision.

Object that stores detailed selection information

Definition at line 109 of file InDetSecVtxTrackSelectionTool.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_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_initTrkTools

bool InDet::InDetSecVtxTrackSelectionTool::m_initTrkTools = false
private

Whether to initialize the Trk::Track tools.

Definition at line 119 of file InDetSecVtxTrackSelectionTool.h.

◆ m_isInitialized

bool InDet::InDetSecVtxTrackSelectionTool::m_isInitialized = false
private

Definition at line 92 of file InDetSecVtxTrackSelectionTool.h.

◆ m_minD0

DoubleProperty InDet::InDetSecVtxTrackSelectionTool::m_minD0 {this, "minD0", -1., "Minimum |d0| of tracks"}
private

Definition at line 111 of file InDetSecVtxTrackSelectionTool.h.

111{this, "minD0", -1., "Minimum |d0| of tracks"};

◆ m_minInDetHits

IntegerProperty InDet::InDetSecVtxTrackSelectionTool::m_minInDetHits {this, "minTotalHits", -1, "Minimum number of Pixel + SCT + TRT hits"}
private

Definition at line 114 of file InDetSecVtxTrackSelectionTool.h.

115{this, "minTotalHits", -1, "Minimum number of Pixel + SCT + TRT hits"};

◆ m_NPixel0TRT

IntegerProperty InDet::InDetSecVtxTrackSelectionTool::m_NPixel0TRT {this, "minNPixelHitsAtZeroTRT", -1, "Minimum number of Pixel hit upon zero TRT hit"}
private

Definition at line 112 of file InDetSecVtxTrackSelectionTool.h.

113{this, "minNPixelHitsAtZeroTRT", -1, "Minimum number of Pixel hit upon zero TRT hit"};

◆ m_numTracksPassed

std::atomic<uint64_t> InDet::InDetSecVtxTrackSelectionTool::m_numTracksPassed = 0
mutableprivate

a counter of the number of tracks that passed all cuts

Definition at line 101 of file InDetSecVtxTrackSelectionTool.h.

◆ m_numTracksProcessed

std::atomic<uint64_t> InDet::InDetSecVtxTrackSelectionTool::m_numTracksProcessed = 0
mutableprivate

a counter of the number of tracks proccessed

Definition at line 100 of file InDetSecVtxTrackSelectionTool.h.

◆ m_trackAccessors

std::unordered_map< std::string, std::shared_ptr<SecVtxTrackAccessor> > InDet::InDetSecVtxTrackSelectionTool::m_trackAccessors
private

list of the accessors that need to be run for each track

Definition at line 95 of file InDetSecVtxTrackSelectionTool.h.

◆ m_trackCuts

std::map< std::string, std::vector< std::unique_ptr<SecVtxTrackCut> > > InDet::InDetSecVtxTrackSelectionTool::m_trackCuts
private

First element is the name of the cut family, second element is the set of cuts.

Definition at line 98 of file InDetSecVtxTrackSelectionTool.h.

◆ m_trackSumToolAvailable

bool InDet::InDetSecVtxTrackSelectionTool::m_trackSumToolAvailable = false
private

Whether the summary tool is available.

Definition at line 120 of file InDetSecVtxTrackSelectionTool.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.

◆ m_warnInit

std::atomic<bool> InDet::InDetSecVtxTrackSelectionTool::m_warnInit = false
mutableprivate

Definition at line 93 of file InDetSecVtxTrackSelectionTool.h.

◆ property

virtual void the cut level is best set through the CutLevel InDet::InDetSecVtxTrackSelectionTool::property
private

Definition at line 89 of file InDetSecVtxTrackSelectionTool.h.


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