ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
DerivationFramework::PseudoTrackSelector Class Reference

Class-algorithm for pseudo track selection. More...

#include <PseudoTrackSelector.h>

Inheritance diagram for DerivationFramework::PseudoTrackSelector:
Collaboration diagram for DerivationFramework::PseudoTrackSelector:

Public Member Functions

 PseudoTrackSelector (const std::string &t, const std::string &n, const IInterface *p)
 Standard Algotithm methods:
More...
 
virtual ~PseudoTrackSelector ()
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
virtual StatusCode addBranches () const
 Pass the thinning service
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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool interface methods. More...
 

Protected Member Functions

void fillRecoReplacedWithPseudo (const xAOD::TrackParticleContainer *recoTrackParticleCol, const xAOD::TrackParticleContainer *pseudoTrackParticleCol, xAOD::TrackParticleContainer *outputCol, bool onlyFromB=false, bool onlyNotFromB=false) const
 Output track collection. More...
 
void fillRecoPlusPseudo (const xAOD::TrackParticleContainer *recoTrackParticleCol, const xAOD::TrackParticleContainer *pseudoTrackParticleCol, xAOD::TrackParticleContainer *outputCol, bool onlyFromB=false, bool onlyNotFromB=false) const
 
void fillRecoNoFakes (const xAOD::TrackParticleContainer *recoTrackParticleCol, xAOD::TrackParticleContainer *outputCol, bool onlyFromB=false, bool onlyNotFromB=false) const
 
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...
 

Static Protected Member Functions

static const xAOD::TruthParticlegetTruth (const xAOD::TrackParticle *track)
 

Protected Attributes

SG::ReadHandleKey< xAOD::TrackParticleContainerm_in_recoTrackParticleLocation
 Protected data:
More...
 
SG::ReadHandleKey< xAOD::TrackParticleContainerm_in_pseudoTrackParticleLocation
 Reco track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoReplacedWithPseudo
 Pseudo track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoReplacedWithPseudoFromB
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoReplacedWithPseudoNotFromB
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoPlusPseudo
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoPlusPseudoFromB
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoPlusPseudoNotFromB
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoNoFakes
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoNoFakesFromB
 Output track collection. More...
 
SG::WriteHandleKey< xAOD::TrackParticleContainerm_out_recoNoFakesNotFromB
 Output track collection. More...
 

Private Types

typedef ElementLink< xAOD::TruthParticleContainerTruthLink
 
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< InDet::IInDetTrackTruthOriginToolm_trackOriginTool {this, "trackTruthOriginTool", "InDet::InDetTrackTruthOriginTool", "truth track origin tool"}
 
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

Class-algorithm for pseudo track selection.

Definition at line 31 of file PseudoTrackSelector.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ TruthLink

Definition at line 85 of file PseudoTrackSelector.h.

Constructor & Destructor Documentation

◆ PseudoTrackSelector()

DerivationFramework::PseudoTrackSelector::PseudoTrackSelector ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Standard Algotithm methods:

Reco track collection.

Pseudo track collection.

Output track collection.

Output track collection.

Output track collection.

Output track collection.

Output track collection.

Output track collection.

Output track collection.

Output track collection.

Output track collection.

Definition at line 27 of file PseudoTrackSelector.cxx.

29  : AthAlgTool(t,n,p)
30  {
31  declareInterface<DerivationFramework::IAugmentationTool>(this);
32  // The default goal of this selector is to create a track collection from a subset of pseudo tracks
33  declareProperty("RecoTrackParticleLocation", m_in_recoTrackParticleLocation);
34  declareProperty("PseudoTrackParticleLocation", m_in_pseudoTrackParticleLocation);
35  declareProperty("OutputRecoReplacedWithPseudo", m_out_recoReplacedWithPseudo);
36  declareProperty("OutputRecoReplacedWithPseudoFromB", m_out_recoReplacedWithPseudoFromB);
37  declareProperty("OutputRecoReplacedWithPseudoNotFromB", m_out_recoReplacedWithPseudoNotFromB);
38  declareProperty("OutputRecoPlusPseudo", m_out_recoPlusPseudo);
39  declareProperty("OutputRecoPlusPseudoFromB", m_out_recoPlusPseudoFromB);
40  declareProperty("OutputRecoPlusPseudoNotFromB", m_out_recoPlusPseudoNotFromB);
41  declareProperty("OutputRecoNoFakes", m_out_recoNoFakes);
42  declareProperty("OutputRecoNoFakesFromB", m_out_recoNoFakesFromB);
43  declareProperty("OutputRecoNoFakesNotFromB", m_out_recoNoFakesNotFromB);
44  }

◆ ~PseudoTrackSelector()

virtual DerivationFramework::PseudoTrackSelector::~PseudoTrackSelector ( )
inlinevirtual

Definition at line 39 of file PseudoTrackSelector.h.

39 {}

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::PseudoTrackSelector::addBranches ( ) const
virtual

Pass the thinning service

Implements DerivationFramework::IAugmentationTool.

Definition at line 77 of file PseudoTrackSelector.cxx.

78  {
79  const EventContext& ctx = Gaudi::Hive::currentContext();
80  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoReplacedWithPseudo = std::make_unique<xAOD::TrackParticleContainer>();
81  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoReplacedWithPseudoAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
82  outputRecoReplacedWithPseudo->setStore(outputRecoReplacedWithPseudoAux.get());
83  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoReplacedWithPseudoFromB = std::make_unique<xAOD::TrackParticleContainer>();
84  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoReplacedWithPseudoFromBAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
85  outputRecoReplacedWithPseudoFromB->setStore(outputRecoReplacedWithPseudoFromBAux.get());
86  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoReplacedWithPseudoNotFromB = std::make_unique<xAOD::TrackParticleContainer>();
87  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoReplacedWithPseudoNotFromBAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
88  outputRecoReplacedWithPseudoNotFromB->setStore(outputRecoReplacedWithPseudoNotFromBAux.get());
89  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoPlusPseudo = std::make_unique<xAOD::TrackParticleContainer>();
90  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoPlusPseudoAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
91  outputRecoPlusPseudo->setStore(outputRecoPlusPseudoAux.get());
92  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoPlusPseudoFromB = std::make_unique<xAOD::TrackParticleContainer>();
93  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoPlusPseudoFromBAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
94  outputRecoPlusPseudoFromB->setStore(outputRecoPlusPseudoFromBAux.get());
95  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoPlusPseudoNotFromB = std::make_unique<xAOD::TrackParticleContainer>();
96  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoPlusPseudoNotFromBAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
97  outputRecoPlusPseudoNotFromB->setStore(outputRecoPlusPseudoNotFromBAux.get());
98  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoNoFakes = std::make_unique<xAOD::TrackParticleContainer>();
99  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoNoFakesAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
100  outputRecoNoFakes->setStore(outputRecoNoFakesAux.get());
101  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoNoFakesFromB = std::make_unique<xAOD::TrackParticleContainer>();
102  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoNoFakesFromBAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
103  outputRecoNoFakesFromB->setStore(outputRecoNoFakesFromBAux.get());
104  std::unique_ptr<xAOD::TrackParticleContainer> outputRecoNoFakesNotFromB = std::make_unique<xAOD::TrackParticleContainer>();
105  std::unique_ptr<xAOD::TrackParticleAuxContainer> outputRecoNoFakesNotFromBAux = std::make_unique<xAOD::TrackParticleAuxContainer>();
106  outputRecoNoFakesNotFromB->setStore(outputRecoNoFakesNotFromBAux.get());
107 
108  // retrieve reco and pseudo tracks
111 
112  // fail if containers not available
113  if (!recoTrackParticleCol.isValid()){
114  ATH_MSG_ERROR( m_in_recoTrackParticleLocation.key() << " not valid!" );
115  return StatusCode::FAILURE;
116  }
117  if (!pseudoTrackParticleCol.isValid()){
118  ATH_MSG_ERROR( m_in_pseudoTrackParticleLocation.key() << " not valid!" );
119  return StatusCode::FAILURE;
120  }
121 
122  // select subset of tracks
123  fillRecoReplacedWithPseudo(recoTrackParticleCol.cptr(), pseudoTrackParticleCol.cptr(), outputRecoReplacedWithPseudo.get());
124  fillRecoReplacedWithPseudo(recoTrackParticleCol.cptr(), pseudoTrackParticleCol.cptr(), outputRecoReplacedWithPseudoFromB.get(), true, false);
125  fillRecoReplacedWithPseudo(recoTrackParticleCol.cptr(), pseudoTrackParticleCol.cptr(), outputRecoReplacedWithPseudoNotFromB.get(), false, true);
126  fillRecoPlusPseudo(recoTrackParticleCol.cptr(), pseudoTrackParticleCol.cptr(), outputRecoPlusPseudo.get());
127  fillRecoPlusPseudo(recoTrackParticleCol.cptr(), pseudoTrackParticleCol.cptr(), outputRecoPlusPseudoFromB.get(), true, false);
128  fillRecoPlusPseudo(recoTrackParticleCol.cptr(), pseudoTrackParticleCol.cptr(), outputRecoPlusPseudoNotFromB.get(), false, true);
129  fillRecoNoFakes(recoTrackParticleCol.cptr(), outputRecoNoFakes.get());
130  fillRecoNoFakes(recoTrackParticleCol.cptr(), outputRecoNoFakesFromB.get(), true, false);
131  fillRecoNoFakes(recoTrackParticleCol.cptr(), outputRecoNoFakesNotFromB.get(), false, true);
132 
133  // Write tracks to store
134  ATH_MSG_DEBUG("outputRecoReplacedWithPseudo has "<<outputRecoReplacedWithPseudo.get()->size()<<" tracks");
136  ATH_CHECK(h_write_recoReplacedWithPseudo.record(std::move(outputRecoReplacedWithPseudo), std::move(outputRecoReplacedWithPseudoAux)));
137  ATH_MSG_DEBUG("wrote "<<m_out_recoReplacedWithPseudo<<" to store");
138 
139  ATH_MSG_DEBUG("outputRecoReplacedWithPseudoFromB has "<<outputRecoReplacedWithPseudoFromB.get()->size()<<" tracks");
141  ATH_CHECK(h_write_recoReplacedWithPseudoFromB.record(std::move(outputRecoReplacedWithPseudoFromB), std::move(outputRecoReplacedWithPseudoFromBAux)));
142  ATH_MSG_DEBUG("wrote "<<m_out_recoReplacedWithPseudoFromB<<" to store");
143 
144  ATH_MSG_DEBUG("outputRecoReplacedWithPseudoNotFromB has "<<outputRecoReplacedWithPseudoNotFromB.get()->size()<<" tracks");
145  SG::WriteHandle<xAOD::TrackParticleContainer> h_write_recoReplacedWithPseudoNotFromB(m_out_recoReplacedWithPseudoNotFromB, ctx);
146  ATH_CHECK(h_write_recoReplacedWithPseudoNotFromB.record(std::move(outputRecoReplacedWithPseudoNotFromB), std::move(outputRecoReplacedWithPseudoNotFromBAux)));
147  ATH_MSG_DEBUG("wrote "<<m_out_recoReplacedWithPseudoNotFromB<<" to store");
148 
149  ATH_MSG_DEBUG("outputRecoPlusPseudo has "<<outputRecoPlusPseudo.get()->size()<<" tracks");
151  ATH_CHECK(h_write_recoPlusPseudo.record(std::move(outputRecoPlusPseudo), std::move(outputRecoPlusPseudoAux)));
152  ATH_MSG_DEBUG("wrote "<<m_out_recoPlusPseudo<<" to store");
153 
154  ATH_MSG_DEBUG("outputRecoPlusPseudoFromB has "<<outputRecoPlusPseudoFromB.get()->size()<<" tracks");
156  ATH_CHECK(h_write_recoPlusPseudoFromB.record(std::move(outputRecoPlusPseudoFromB), std::move(outputRecoPlusPseudoFromBAux)));
157  ATH_MSG_DEBUG("wrote "<<m_out_recoPlusPseudoFromB<<" to store");
158 
159  ATH_MSG_DEBUG("outputRecoPlusPseudoNotFromB has "<<outputRecoPlusPseudoNotFromB.get()->size()<<" tracks");
161  ATH_CHECK(h_write_recoPlusPseudoNotFromB.record(std::move(outputRecoPlusPseudoNotFromB), std::move(outputRecoPlusPseudoNotFromBAux)));
162  ATH_MSG_DEBUG("wrote "<<m_out_recoPlusPseudoNotFromB<<" to store");
163 
164  ATH_MSG_DEBUG("outputRecoNoFakes has "<<outputRecoNoFakes.get()->size()<<" tracks");
166  ATH_CHECK(h_write_recoNoFakes.record(std::move(outputRecoNoFakes), std::move(outputRecoNoFakesAux)));
167  ATH_MSG_DEBUG("wrote "<<m_out_recoNoFakes<<" to store");
168 
169  ATH_MSG_DEBUG("outputRecoNoFakesFromB has "<<outputRecoNoFakesFromB.get()->size()<<" tracks");
171  ATH_CHECK(h_write_recoNoFakesFromB.record(std::move(outputRecoNoFakesFromB), std::move(outputRecoNoFakesFromBAux)));
172  ATH_MSG_DEBUG("wrote "<<m_out_recoNoFakesFromB<<" to store");
173 
174  ATH_MSG_DEBUG("outputRecoNoFakesNotFromB has "<<outputRecoNoFakesNotFromB.get()->size()<<" tracks");
176  ATH_CHECK(h_write_recoNoFakesNotFromB.record(std::move(outputRecoNoFakesNotFromB), std::move(outputRecoNoFakesNotFromBAux)));
177  ATH_MSG_DEBUG("wrote "<<m_out_recoNoFakesNotFromB<<" to store");
178 
179  return StatusCode::SUCCESS;
180  }

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

◆ execute()

StatusCode DerivationFramework::PseudoTrackSelector::execute ( )

◆ 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

◆ fillRecoNoFakes()

void DerivationFramework::PseudoTrackSelector::fillRecoNoFakes ( const xAOD::TrackParticleContainer recoTrackParticleCol,
xAOD::TrackParticleContainer outputCol,
bool  onlyFromB = false,
bool  onlyNotFromB = false 
) const
protected

Definition at line 340 of file PseudoTrackSelector.cxx.

344  {
345  ATH_MSG_DEBUG("Start fillRecoNoFakes with onlyFromB = "<<onlyFromB<<" and onlyNotFromB = "<<onlyNotFromB);
346  // loop over tracks, accept them and add them into output collection
347  if((recoTrackParticleCol && !recoTrackParticleCol->empty())){
348  ATH_MSG_DEBUG("Size of reco track particle collection " << recoTrackParticleCol->size());
349  int n_saved = 0;
350  static const SG::ConstAccessor< float > acc_truthProb("truthMatchProbability");
351 
352  // loop over tracks
353  for(const auto *const tp_reco: *recoTrackParticleCol){
354  // place cut on truth match probability
355  if (!onlyFromB && !onlyNotFromB){
356  if( acc_truthProb( *tp_reco ) < 0.5) {
357  ATH_MSG_DEBUG("Fake track!");
358  continue;
359  }
360  }
361  int origin = m_trackOriginTool->getTrackOrigin(tp_reco);
362  ATH_MSG_DEBUG("fromB: "<<InDet::TrkOrigin::isFromB(origin));
363  if (onlyFromB && InDet::TrkOrigin::isFromB(origin)){
364  if( acc_truthProb( *tp_reco ) < 0.5) {
365  ATH_MSG_DEBUG("Fake track fromB!");
366  continue;
367  }
368  }
369  if (onlyNotFromB && !InDet::TrkOrigin::isFromB(origin)){
370  if( acc_truthProb( *tp_reco ) < 0.5) {
371  ATH_MSG_DEBUG("Fake track notFromB!");
372  continue;
373  }
374  }
375  // add track into output
376  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_reco);
377  outputCol->push_back(newTrackParticle);
378  n_saved++;
379  }
380  ATH_MSG_DEBUG("Size of output track particle collection " << outputCol->size() <<" (sanity: "<<n_saved<<")");
381  }
382  }

◆ fillRecoPlusPseudo()

void DerivationFramework::PseudoTrackSelector::fillRecoPlusPseudo ( const xAOD::TrackParticleContainer recoTrackParticleCol,
const xAOD::TrackParticleContainer pseudoTrackParticleCol,
xAOD::TrackParticleContainer outputCol,
bool  onlyFromB = false,
bool  onlyNotFromB = false 
) const
protected

Definition at line 272 of file PseudoTrackSelector.cxx.

277  {
278  ATH_MSG_DEBUG("Start fillRecoPlusPseudo with onlyFromB = "<<onlyFromB<<" and onlyNotFromB = "<<onlyNotFromB);
279  // loop over tracks, accept them and add them into output collection
280  if((recoTrackParticleCol && !recoTrackParticleCol->empty()) &&
281  (pseudoTrackParticleCol && !pseudoTrackParticleCol->empty())) {
282  ATH_MSG_DEBUG("Size of reco track particle collection " << recoTrackParticleCol->size());
283  ATH_MSG_DEBUG("Size of pseudo track particle collection " << pseudoTrackParticleCol->size());
284  int n_saved = 0;
285  // Start by keeping reco tracks
286  for(const auto *const tp_reco: *recoTrackParticleCol){
287  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_reco);
288  outputCol->push_back(newTrackParticle);
289  n_saved++;
290  }
291  // Now add pseudo tracks that are not matched to reco tracks
292  for(const auto *const tp_pseudo: *pseudoTrackParticleCol){
293  bool match_found = false;
294  const xAOD::TruthParticle* truth_pseudo = getTruth(tp_pseudo);
295  for(const auto *const tp_reco: *recoTrackParticleCol){
296  // Get truth particle
297  const xAOD::TruthParticle* truth_reco = getTruth(tp_reco);
298  if (truth_reco){
299  if (truth_reco == truth_pseudo){
300  ATH_MSG_DEBUG("reco track has truth-matched pseudo track!");
301  match_found = true;
302  break;
303  }
304  }
305  else{
306  ATH_MSG_DEBUG("no truth particle for reco track!");
307  }
308  }
309  if(!match_found){
310  ATH_MSG_DEBUG("no match found, so adding pseudo track to output");
311  if(!onlyFromB && !onlyNotFromB){
312  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_pseudo);
313  outputCol->push_back(newTrackParticle);
314  n_saved++;
315  ATH_MSG_DEBUG("saving pseudo track");
316  }
317  int origin = m_trackOriginTool->getTrackOrigin(tp_pseudo);
318  ATH_MSG_DEBUG("fromB: "<<InDet::TrkOrigin::isFromB(origin));
319  if(onlyFromB && InDet::TrkOrigin::isFromB(origin)){
320  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_pseudo);
321  outputCol->push_back(newTrackParticle);
322  n_saved++;
323  ATH_MSG_DEBUG("saving fromB pseudo track");
324  }
325  if(onlyNotFromB && !InDet::TrkOrigin::isFromB(origin)){
326  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_pseudo);
327  outputCol->push_back(newTrackParticle);
328  n_saved++;
329  ATH_MSG_DEBUG("saving notFromB pseudo track");
330  }
331  }
332  else{
333  ATH_MSG_DEBUG("match found so not adding pseudo track to output");
334  }
335  }
336  ATH_MSG_DEBUG("Size of output track particle collection " << outputCol->size() <<" (sanity: "<<n_saved<<")");
337  }
338  }

◆ fillRecoReplacedWithPseudo()

void DerivationFramework::PseudoTrackSelector::fillRecoReplacedWithPseudo ( const xAOD::TrackParticleContainer recoTrackParticleCol,
const xAOD::TrackParticleContainer pseudoTrackParticleCol,
xAOD::TrackParticleContainer outputCol,
bool  onlyFromB = false,
bool  onlyNotFromB = false 
) const
protected

Output track collection.

Protected methods:

Routines that selects the relevant (pseudo) tracks.

Definition at line 186 of file PseudoTrackSelector.cxx.

191  {
192  ATH_MSG_DEBUG("Start fillRecoReplacedWithPseudo with onlyFromB = "<<onlyFromB<<" and onlyNotFromB = "<<onlyNotFromB);
193  // loop over tracks, accept them and add them into output collection
194  if((recoTrackParticleCol && !recoTrackParticleCol->empty()) &&
195  (pseudoTrackParticleCol && !pseudoTrackParticleCol->empty())) {
196  ATH_MSG_DEBUG("Size of reco track particle collection " << recoTrackParticleCol->size());
197  ATH_MSG_DEBUG("Size of pseudo track particle collection " << pseudoTrackParticleCol->size());
198  int n_saved = 0;
199  // loop over reco tracks
200  for(const auto *const tp_reco: *recoTrackParticleCol){
201  // Get truth particle
202  const xAOD::TruthParticle* truth_reco = getTruth(tp_reco);
203  if (truth_reco){
204  bool match_found = false;
205  // loop over pseudo tracks to look for a match
206  for(const auto *const tp_pseudo: *pseudoTrackParticleCol){
207  const xAOD::TruthParticle* truth_pseudo = getTruth(tp_pseudo);
208  if (truth_reco == truth_pseudo){
209  ATH_MSG_DEBUG("reco track has truth-matched pseudo track!");
210  match_found = true;
211  // add pseudo track into output
212  if (!onlyFromB && !onlyNotFromB){
213  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_pseudo);
214  outputCol->push_back(newTrackParticle);
215  n_saved++;
216  ATH_MSG_DEBUG("saving pseudo track");
217  }
218  // Check origin of track
219  int origin = m_trackOriginTool->getTrackOrigin(tp_pseudo);
220  ATH_MSG_DEBUG("fromB: "<<InDet::TrkOrigin::isFromB(origin));
221  if (onlyFromB){
222  if (InDet::TrkOrigin::isFromB(origin)){
223  // Track is from B hadron, replace with pseudo track
224  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_pseudo);
225  outputCol->push_back(newTrackParticle);
226  n_saved++;
227  ATH_MSG_DEBUG("saving fromB pseudo track");
228  }
229  else{
230  // Track is not from B hadron, keep reco track
231  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_reco);
232  outputCol->push_back(newTrackParticle);
233  n_saved++;
234  ATH_MSG_DEBUG("keeping notFromB reco track");
235  }
236  }
237  if (onlyNotFromB){
238  if (!InDet::TrkOrigin::isFromB(origin)){
239  // Track is not from B hadron, replace with pseudo track
240  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_pseudo);
241  outputCol->push_back(newTrackParticle);
242  n_saved++;
243  ATH_MSG_DEBUG("saving notFromB pseudo track");
244  }
245  else{
246  // Track is from B hadron, keep reco track
247  xAOD::TrackParticle* newTrackParticle = new xAOD::TrackParticle(*tp_reco);
248  outputCol->push_back(newTrackParticle);
249  n_saved++;
250  ATH_MSG_DEBUG("keeping FromB reco track");
251  }
252  }
253  // Found match and replaced relevant track
254  break;
255  }
256  else{
257  ATH_MSG_VERBOSE("truth-matched pseudo track not found yet...");
258  }
259  }
260  if(!match_found){
261  ATH_MSG_DEBUG("reco track that has truth link DOES NOT have truth-matched pseudo track! :(");
262  }
263  }
264  else{
265  ATH_MSG_DEBUG("no truth particle for reco track!");
266  }
267  }
268  ATH_MSG_DEBUG("Size of output track particle collection " << outputCol->size() <<" (sanity: "<<n_saved<<")");
269  }
270  }

◆ finalize()

StatusCode DerivationFramework::PseudoTrackSelector::finalize ( )

Definition at line 72 of file PseudoTrackSelector.cxx.

73  {
74  return StatusCode::SUCCESS;
75  }

◆ getTruth()

const xAOD::TruthParticle * DerivationFramework::PseudoTrackSelector::getTruth ( const xAOD::TrackParticle track)
staticprotected

Definition at line 384 of file PseudoTrackSelector.cxx.

384  {
385  // create a pointer to a truth particle which will correspond to this track
386  const xAOD::TruthParticle* linkedTruthParticle = nullptr;
387 
388  // if the track doesnt't have a valid truth link, skip to the next track
389  // in practice, all tracks seem to have a truth link, but we need to also
390  // check whether it's valid
391  static const SG::ConstAccessor<TruthLink> truthParticleLinkAcc("truthParticleLink");
392  if ( !truthParticleLinkAcc.isAvailable(*track) ) {
393  return nullptr;
394  }
395 
396  // retrieve the link and check its validity
397  const TruthLink &link = truthParticleLinkAcc(*track);
398 
399  // a missing or invalid link implies truth particle has been dropped from
400  // the truth record at some stage - probably it was a pileup or low pT GEANT
401  // particle.
402  if(!link or !link.isValid()) {
403  return nullptr;
404  }
405 
406  // seems safe to access and return the linked truth particle
407  linkedTruthParticle = (*link);
408  return linkedTruthParticle;
409  }

◆ initialize()

StatusCode DerivationFramework::PseudoTrackSelector::initialize ( )

◆ 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()

static const InterfaceID& DerivationFramework::IAugmentationTool::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 31 of file IAugmentationTool.h.

31 { return IID_IAugmentationTool; }

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

◆ 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();
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  }

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

SG::ReadHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_in_pseudoTrackParticleLocation
protected

Reco track collection.


Definition at line 50 of file PseudoTrackSelector.h.

◆ m_in_recoTrackParticleLocation

SG::ReadHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_in_recoTrackParticleLocation
protected

Protected data:

Definition at line 49 of file PseudoTrackSelector.h.

◆ m_out_recoNoFakes

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoNoFakes
protected

Output track collection.

Definition at line 57 of file PseudoTrackSelector.h.

◆ m_out_recoNoFakesFromB

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoNoFakesFromB
protected

Output track collection.

Definition at line 58 of file PseudoTrackSelector.h.

◆ m_out_recoNoFakesNotFromB

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoNoFakesNotFromB
protected

Output track collection.

Definition at line 59 of file PseudoTrackSelector.h.

◆ m_out_recoPlusPseudo

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoPlusPseudo
protected

Output track collection.

Definition at line 54 of file PseudoTrackSelector.h.

◆ m_out_recoPlusPseudoFromB

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoPlusPseudoFromB
protected

Output track collection.

Definition at line 55 of file PseudoTrackSelector.h.

◆ m_out_recoPlusPseudoNotFromB

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoPlusPseudoNotFromB
protected

Output track collection.

Definition at line 56 of file PseudoTrackSelector.h.

◆ m_out_recoReplacedWithPseudo

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoReplacedWithPseudo
protected

Pseudo track collection.

Definition at line 51 of file PseudoTrackSelector.h.

◆ m_out_recoReplacedWithPseudoFromB

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoReplacedWithPseudoFromB
protected

Output track collection.

Definition at line 52 of file PseudoTrackSelector.h.

◆ m_out_recoReplacedWithPseudoNotFromB

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PseudoTrackSelector::m_out_recoReplacedWithPseudoNotFromB
protected

Output track collection.

Definition at line 53 of file PseudoTrackSelector.h.

◆ m_trackOriginTool

ToolHandle< InDet::IInDetTrackTruthOriginTool > DerivationFramework::PseudoTrackSelector::m_trackOriginTool {this, "trackTruthOriginTool", "InDet::InDetTrackTruthOriginTool", "truth track origin tool"}
private

Definition at line 87 of file PseudoTrackSelector.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:
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::PseudoTrackSelector::m_out_recoNoFakesNotFromB
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoNoFakesNotFromB
Output track collection.
Definition: PseudoTrackSelector.h:59
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
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
SG::ConstAccessor< float >
DerivationFramework::PseudoTrackSelector::m_out_recoReplacedWithPseudo
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoReplacedWithPseudo
Pseudo track collection.
Definition: PseudoTrackSelector.h:51
DerivationFramework::PseudoTrackSelector::m_out_recoReplacedWithPseudoNotFromB
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoReplacedWithPseudoNotFromB
Output track collection.
Definition: PseudoTrackSelector.h:53
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
DerivationFramework::PseudoTrackSelector::m_trackOriginTool
ToolHandle< InDet::IInDetTrackTruthOriginTool > m_trackOriginTool
Definition: PseudoTrackSelector.h:87
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
DerivationFramework::PseudoTrackSelector::m_in_recoTrackParticleLocation
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_in_recoTrackParticleLocation
Protected data:
Definition: PseudoTrackSelector.h:49
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
DerivationFramework::PseudoTrackSelector::m_out_recoPlusPseudoNotFromB
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoPlusPseudoNotFromB
Output track collection.
Definition: PseudoTrackSelector.h:56
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
DerivationFramework::PseudoTrackSelector::fillRecoNoFakes
void fillRecoNoFakes(const xAOD::TrackParticleContainer *recoTrackParticleCol, xAOD::TrackParticleContainer *outputCol, bool onlyFromB=false, bool onlyNotFromB=false) const
Definition: PseudoTrackSelector.cxx:340
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:41
DerivationFramework::PseudoTrackSelector::m_out_recoNoFakesFromB
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoNoFakesFromB
Output track collection.
Definition: PseudoTrackSelector.h:58
DerivationFramework::PseudoTrackSelector::fillRecoPlusPseudo
void fillRecoPlusPseudo(const xAOD::TrackParticleContainer *recoTrackParticleCol, const xAOD::TrackParticleContainer *pseudoTrackParticleCol, xAOD::TrackParticleContainer *outputCol, bool onlyFromB=false, bool onlyNotFromB=false) const
Definition: PseudoTrackSelector.cxx:272
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::PseudoTrackSelector::fillRecoReplacedWithPseudo
void fillRecoReplacedWithPseudo(const xAOD::TrackParticleContainer *recoTrackParticleCol, const xAOD::TrackParticleContainer *pseudoTrackParticleCol, xAOD::TrackParticleContainer *outputCol, bool onlyFromB=false, bool onlyNotFromB=false) const
Output track collection.
Definition: PseudoTrackSelector.cxx:186
InDet::TrkOrigin::isFromB
bool isFromB(int origin)
from B decay chain including B-->D
Definition: InDetTrackTruthOriginDefs.h:111
DerivationFramework::PseudoTrackSelector::m_out_recoReplacedWithPseudoFromB
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoReplacedWithPseudoFromB
Output track collection.
Definition: PseudoTrackSelector.h:52
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
DerivationFramework::PseudoTrackSelector::m_in_pseudoTrackParticleLocation
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_in_pseudoTrackParticleLocation
Reco track collection.
Definition: PseudoTrackSelector.h:50
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
DerivationFramework::PseudoTrackSelector::m_out_recoNoFakes
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoNoFakes
Output track collection.
Definition: PseudoTrackSelector.h:57
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
a
TList * a
Definition: liststreamerinfos.cxx:10
h
DerivationFramework::PseudoTrackSelector::m_out_recoPlusPseudo
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoPlusPseudo
Output track collection.
Definition: PseudoTrackSelector.h:54
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
DerivationFramework::PseudoTrackSelector::m_out_recoPlusPseudoFromB
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_out_recoPlusPseudoFromB
Output track collection.
Definition: PseudoTrackSelector.h:55
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
DerivationFramework::PseudoTrackSelector::getTruth
static const xAOD::TruthParticle * getTruth(const xAOD::TrackParticle *track)
Definition: PseudoTrackSelector.cxx:384
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
fitman.k
k
Definition: fitman.py:528