ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
IDTPM::TruthQualitySelectionTool Class Referenceabstract

#include <TruthQualitySelectionTool.h>

Inheritance diagram for IDTPM::TruthQualitySelectionTool:
Collaboration diagram for IDTPM::TruthQualitySelectionTool:

Public Member Functions

 ASG_TOOL_CLASS (TruthQualitySelectionTool, ITrackSelectionTool)
 
 TruthQualitySelectionTool (const std::string &name)
 
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function. More...
 
virtual StatusCode selectTracks (TrackAnalysisCollections &trkAnaColls) override
 
bool accept (const xAOD::TruthParticle *truth)
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual void print () const
 Print the state of the tool. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ToolHandle< IAthSelectionToolm_truthTool { this, "truthTool", {}, "Truth selection tool to use, has to be setup" }
 
FloatProperty m_minAbsEta { this, "minAbsEta", -9999., "Lower cut on |eta| for truth particles" }
 
FloatProperty m_minAbsPhi { this, "minAbsPhi", -9999., "Lower cut on |phi| for truth particles" }
 
FloatProperty m_maxAbsPhi { this, "maxAbsPhi", -9999., "Higher cut on |phi| for truth particles" }
 
FloatProperty m_minAbsD0 { this, "minAbsD0", -9999., "Lower cut on |d0| for truth particles" }
 
FloatProperty m_maxAbsD0 { this, "maxAbsD0", -9999., "Higher cut on |d0| for truth particles" }
 
FloatProperty m_minAbsZ0 { this, "minAbsZ0", -9999., "Lower cut on |z0| for truth particles" }
 
FloatProperty m_maxAbsZ0 { this, "maxAbsZ0", -9999., "Higher cut on |z0| for truth particles" }
 
FloatProperty m_minAbsQoPT { this, "minAbsQoPT", -9999., "Lower cut on |q/pt| for truth particles" }
 
FloatProperty m_maxAbsQoPT { this, "maxAbsQoPT", -9999., "Higher cut on |q/pt| for truth particles" }
 
FloatProperty m_minEta { this, "minEta", -9999., "Lower cut on eta for truth particles" }
 
FloatProperty m_maxEta { this, "maxEta", -9999., "Higher cut on eta for truth particles" }
 
FloatProperty m_minPhi { this, "minPhi", -9999., "Lower cut on phi for truth particles" }
 
FloatProperty m_maxPhi { this, "maxPhi", -9999., "Higher cut on phi for truth particles" }
 
FloatProperty m_minD0 { this, "minD0", -9999., "Lower cut on d0 for truth particles" }
 
FloatProperty m_maxD0 { this, "maxD0", -9999., "Higher cut on d0 for truth particles" }
 
FloatProperty m_minZ0 { this, "minZ0", -9999., "Lower cut on z0 for truth particles" }
 
FloatProperty m_maxZ0 { this, "maxZ0", -9999., "Higher cut on z0 for truth particles" }
 
FloatProperty m_minQoPT { this, "minQoPT", -9999., "Lower cut on q/pt for truth particles" }
 
FloatProperty m_maxQoPT { this, "maxQoPT", -9999., "Higher cut on q/pt for truth particles" }
 
BooleanProperty m_isHadron { this, "isHadron", false, "Select hadrons" }
 
BooleanProperty m_isPion { this, "isPion", false, "Select pions" }
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 26 of file TruthQualitySelectionTool.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

◆ TruthQualitySelectionTool()

TruthQualitySelectionTool::TruthQualitySelectionTool ( const std::string &  name)

Definition at line 11 of file TruthQualitySelectionTool.cxx.

12  : asg::AsgTool( name ) { }

Member Function Documentation

◆ accept()

bool TruthQualitySelectionTool::accept ( const xAOD::TruthParticle truth)

Definition at line 34 of file TruthQualitySelectionTool.cxx.

34  {
35  if (m_maxEta!=-9999. and (eta(*truth)) > m_maxEta ) return false;
36  if (m_minEta!=-9999. and (eta(*truth)) < m_minEta ) return false;
37  if (m_minPhi!=-9999. and (phi(*truth)) < m_minPhi ) return false;
38  if (m_maxPhi!=-9999. and (phi(*truth)) > m_maxPhi ) return false;
39  if (m_minD0!=-9999. and (d0(*truth)) < m_minD0 ) return false;
40  if (m_maxD0!=-9999. and (d0(*truth)) > m_maxD0 ) return false;
41  if (m_minZ0!=-9999. and (z0(*truth)) < m_minZ0 ) return false;
42  if (m_maxZ0!=-9999. and (z0(*truth)) > m_maxZ0 ) return false;
43  if (m_minQoPT!=-9999. and (qOverPT(*truth)) < m_minQoPT ) return false;
44  if (m_maxQoPT!=-9999. and (qOverPT(*truth)) > m_maxQoPT ) return false;
45  if (m_minAbsEta!=-9999. and std::fabs(eta(*truth)) < m_minAbsEta ) return false;
46  if (m_minAbsPhi!=-9999. and std::fabs(phi(*truth)) < m_minAbsPhi ) return false;
47  if (m_maxAbsPhi!=-9999. and std::fabs(phi(*truth)) > m_maxAbsPhi ) return false;
48  if (m_minAbsD0!=-9999. and std::fabs(d0(*truth)) < m_minAbsD0 ) return false;
49  if (m_maxAbsD0!=-9999. and std::fabs(d0(*truth)) > m_maxAbsD0 ) return false;
50  if (m_minAbsZ0!=-9999. and std::fabs(z0(*truth)) < m_minAbsZ0 ) return false;
51  if (m_maxAbsZ0!=-9999. and std::fabs(z0(*truth)) > m_maxAbsZ0 ) return false;
52  if (m_minAbsQoPT!=-9999. and std::fabs(qOverPT(*truth)) < m_minAbsQoPT ) return false;
53  if (m_maxAbsQoPT!=-9999. and std::fabs(qOverPT(*truth)) > m_maxAbsQoPT ) return false;
54  if (m_isHadron and not isHadron(*truth) ) return false;
55  if (m_isPion and not isPion(*truth) ) return false;
56  return true;
57 }

◆ ASG_TOOL_CLASS()

IDTPM::TruthQualitySelectionTool::ASG_TOOL_CLASS ( TruthQualitySelectionTool  ,
ITrackSelectionTool   
)

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

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

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ 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

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

◆ 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 TruthQualitySelectionTool::initialize ( )
overridevirtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 14 of file TruthQualitySelectionTool.cxx.

14  {
15  ATH_CHECK(not m_truthTool.empty());
16  ATH_CHECK(m_truthTool.retrieve());
17  return StatusCode::SUCCESS;
18 }

◆ 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() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

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

◆ 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() [1/2]

void asg::AsgTool::print ( ) const
virtualinherited

◆ print() [2/2]

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ selectTracks()

StatusCode TruthQualitySelectionTool::selectTracks ( TrackAnalysisCollections trkAnaColls)
overridevirtual

Implements IDTPM::ITrackSelectionTool.

Definition at line 21 of file TruthQualitySelectionTool.cxx.

21  {
22  std::vector< const xAOD::TruthParticle* > selected;
23  for ( auto trk: trkAnaColls.truthPartVec(IDTPM::TrackAnalysisCollections::FS)) {
24  if ( m_truthTool->accept(trk) and this->accept(trk)) {
25  selected.push_back(trk);
26  }
27  }
28  ATH_MSG_DEBUG("Size before selection: " << trkAnaColls.truthPartVec(IDTPM::TrackAnalysisCollections::FS).size() << "\t Size after selection: " << selected.size());
29  ATH_CHECK(trkAnaColls.fillTruthPartVec(selected, IDTPM::TrackAnalysisCollections::FS));
30  return StatusCode::SUCCESS;
31 }

◆ 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 DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

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_isHadron

BooleanProperty IDTPM::TruthQualitySelectionTool::m_isHadron { this, "isHadron", false, "Select hadrons" }
private

Definition at line 66 of file TruthQualitySelectionTool.h.

◆ m_isPion

BooleanProperty IDTPM::TruthQualitySelectionTool::m_isPion { this, "isPion", false, "Select pions" }
private

Definition at line 67 of file TruthQualitySelectionTool.h.

◆ m_maxAbsD0

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxAbsD0 { this, "maxAbsD0", -9999., "Higher cut on |d0| for truth particles" }
private

Definition at line 51 of file TruthQualitySelectionTool.h.

◆ m_maxAbsPhi

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxAbsPhi { this, "maxAbsPhi", -9999., "Higher cut on |phi| for truth particles" }
private

Definition at line 49 of file TruthQualitySelectionTool.h.

◆ m_maxAbsQoPT

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxAbsQoPT { this, "maxAbsQoPT", -9999., "Higher cut on |q/pt| for truth particles" }
private

Definition at line 55 of file TruthQualitySelectionTool.h.

◆ m_maxAbsZ0

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxAbsZ0 { this, "maxAbsZ0", -9999., "Higher cut on |z0| for truth particles" }
private

Definition at line 53 of file TruthQualitySelectionTool.h.

◆ m_maxD0

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxD0 { this, "maxD0", -9999., "Higher cut on d0 for truth particles" }
private

Definition at line 61 of file TruthQualitySelectionTool.h.

◆ m_maxEta

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxEta { this, "maxEta", -9999., "Higher cut on eta for truth particles" }
private

Definition at line 57 of file TruthQualitySelectionTool.h.

◆ m_maxPhi

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxPhi { this, "maxPhi", -9999., "Higher cut on phi for truth particles" }
private

Definition at line 59 of file TruthQualitySelectionTool.h.

◆ m_maxQoPT

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxQoPT { this, "maxQoPT", -9999., "Higher cut on q/pt for truth particles" }
private

Definition at line 65 of file TruthQualitySelectionTool.h.

◆ m_maxZ0

FloatProperty IDTPM::TruthQualitySelectionTool::m_maxZ0 { this, "maxZ0", -9999., "Higher cut on z0 for truth particles" }
private

Definition at line 63 of file TruthQualitySelectionTool.h.

◆ m_minAbsD0

FloatProperty IDTPM::TruthQualitySelectionTool::m_minAbsD0 { this, "minAbsD0", -9999., "Lower cut on |d0| for truth particles" }
private

Definition at line 50 of file TruthQualitySelectionTool.h.

◆ m_minAbsEta

FloatProperty IDTPM::TruthQualitySelectionTool::m_minAbsEta { this, "minAbsEta", -9999., "Lower cut on |eta| for truth particles" }
private

Definition at line 47 of file TruthQualitySelectionTool.h.

◆ m_minAbsPhi

FloatProperty IDTPM::TruthQualitySelectionTool::m_minAbsPhi { this, "minAbsPhi", -9999., "Lower cut on |phi| for truth particles" }
private

Definition at line 48 of file TruthQualitySelectionTool.h.

◆ m_minAbsQoPT

FloatProperty IDTPM::TruthQualitySelectionTool::m_minAbsQoPT { this, "minAbsQoPT", -9999., "Lower cut on |q/pt| for truth particles" }
private

Definition at line 54 of file TruthQualitySelectionTool.h.

◆ m_minAbsZ0

FloatProperty IDTPM::TruthQualitySelectionTool::m_minAbsZ0 { this, "minAbsZ0", -9999., "Lower cut on |z0| for truth particles" }
private

Definition at line 52 of file TruthQualitySelectionTool.h.

◆ m_minD0

FloatProperty IDTPM::TruthQualitySelectionTool::m_minD0 { this, "minD0", -9999., "Lower cut on d0 for truth particles" }
private

Definition at line 60 of file TruthQualitySelectionTool.h.

◆ m_minEta

FloatProperty IDTPM::TruthQualitySelectionTool::m_minEta { this, "minEta", -9999., "Lower cut on eta for truth particles" }
private

Definition at line 56 of file TruthQualitySelectionTool.h.

◆ m_minPhi

FloatProperty IDTPM::TruthQualitySelectionTool::m_minPhi { this, "minPhi", -9999., "Lower cut on phi for truth particles" }
private

Definition at line 58 of file TruthQualitySelectionTool.h.

◆ m_minQoPT

FloatProperty IDTPM::TruthQualitySelectionTool::m_minQoPT { this, "minQoPT", -9999., "Lower cut on q/pt for truth particles" }
private

Definition at line 64 of file TruthQualitySelectionTool.h.

◆ m_minZ0

FloatProperty IDTPM::TruthQualitySelectionTool::m_minZ0 { this, "minZ0", -9999., "Lower cut on z0 for truth particles" }
private

Definition at line 62 of file TruthQualitySelectionTool.h.

◆ m_truthTool

ToolHandle<IAthSelectionTool> IDTPM::TruthQualitySelectionTool::m_truthTool { this, "truthTool", {}, "Truth selection tool to use, has to be setup" }
private

Definition at line 45 of file TruthQualitySelectionTool.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:
IDTPM::TruthQualitySelectionTool::m_maxAbsQoPT
FloatProperty m_maxAbsQoPT
Definition: TruthQualitySelectionTool.h:55
IDTPM::TruthQualitySelectionTool::m_minQoPT
FloatProperty m_minQoPT
Definition: TruthQualitySelectionTool.h:64
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
IDTPM::TruthQualitySelectionTool::m_isHadron
BooleanProperty m_isHadron
Definition: TruthQualitySelectionTool.h:66
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
IDTPM::TruthQualitySelectionTool::m_maxZ0
FloatProperty m_maxZ0
Definition: TruthQualitySelectionTool.h:63
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
IDTPM::z0
float z0(const U &p)
Definition: TrackParametersHelper.h:72
IDTPM::isHadron
float isHadron(const U &p)
Definition: TrackParametersHelper.h:258
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
IDTPM::TruthQualitySelectionTool::m_minD0
FloatProperty m_minD0
Definition: TruthQualitySelectionTool.h:60
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
IDTPM::TruthQualitySelectionTool::m_isPion
BooleanProperty m_isPion
Definition: TruthQualitySelectionTool.h:67
IDTPM::phi
float phi(const U &p)
Definition: TrackParametersHelper.h:61
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
IDTPM::TruthQualitySelectionTool::m_minAbsD0
FloatProperty m_minAbsD0
Definition: TruthQualitySelectionTool.h:50
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
IDTPM::qOverPT
float qOverPT(const U &p)
Definition: TrackParametersHelper.h:114
IDTPM::TruthQualitySelectionTool::m_minEta
FloatProperty m_minEta
Definition: TruthQualitySelectionTool.h:56
IDTPM::eta
float eta(const U &p)
Accessor utility function for getting the value of eta.
Definition: TrackParametersHelper.h:43
IDTPM::TruthQualitySelectionTool::m_maxD0
FloatProperty m_maxD0
Definition: TruthQualitySelectionTool.h:61
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
IDTPM::TrackAnalysisCollections::FS
@ FS
Definition: TrackAnalysisCollections.h:54
IDTPM::d0
float d0(const U &p)
Definition: TrackParametersHelper.h:84
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
IDTPM::TruthQualitySelectionTool::m_maxPhi
FloatProperty m_maxPhi
Definition: TruthQualitySelectionTool.h:59
IDTPM::isPion
float isPion(const U &p)
Definition: TrackParametersHelper.h:264
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
IDTPM::TruthQualitySelectionTool::m_maxAbsD0
FloatProperty m_maxAbsD0
Definition: TruthQualitySelectionTool.h:51
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
IDTPM::TruthQualitySelectionTool::m_maxEta
FloatProperty m_maxEta
Definition: TruthQualitySelectionTool.h:57
IDTPM::TruthQualitySelectionTool::m_minAbsQoPT
FloatProperty m_minAbsQoPT
Definition: TruthQualitySelectionTool.h:54
IDTPM::TruthQualitySelectionTool::m_maxAbsZ0
FloatProperty m_maxAbsZ0
Definition: TruthQualitySelectionTool.h:53
IDTPM::TruthQualitySelectionTool::m_maxQoPT
FloatProperty m_maxQoPT
Definition: TruthQualitySelectionTool.h:65
IDTPM::TruthQualitySelectionTool::m_truthTool
ToolHandle< IAthSelectionTool > m_truthTool
Definition: TruthQualitySelectionTool.h:45
a
TList * a
Definition: liststreamerinfos.cxx:10
h
IDTPM::TruthQualitySelectionTool::m_maxAbsPhi
FloatProperty m_maxAbsPhi
Definition: TruthQualitySelectionTool.h:49
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
IDTPM::TruthQualitySelectionTool::m_minZ0
FloatProperty m_minZ0
Definition: TruthQualitySelectionTool.h:62
IDTPM::TruthQualitySelectionTool::m_minAbsPhi
FloatProperty m_minAbsPhi
Definition: TruthQualitySelectionTool.h:48
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
IDTPM::TruthQualitySelectionTool::m_minAbsEta
FloatProperty m_minAbsEta
Definition: TruthQualitySelectionTool.h:47
IDTPM::TruthQualitySelectionTool::m_minAbsZ0
FloatProperty m_minAbsZ0
Definition: TruthQualitySelectionTool.h:52
SG::DataProxy
Definition: DataProxy.h:45
IDTPM::TruthQualitySelectionTool::m_minPhi
FloatProperty m_minPhi
Definition: TruthQualitySelectionTool.h:58
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528