ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
TrackCaloClusterInfoUFOAlg Class Reference

#include <TrackCaloClusterInfoAlg.h>

Inheritance diagram for TrackCaloClusterInfoUFOAlg:
Collaboration diagram for TrackCaloClusterInfoUFOAlg:

Public Member Functions

 TrackCaloClusterInfoUFOAlg (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual StatusCode initialize () override
 
virtual StatusCode execute () override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. 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 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

virtual StatusCode fillInfo (SG::WriteHandle< TrackCaloClusterInfo > &tccInfo) const override
 
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...
 

Protected Attributes

SG::ReadHandleKey< xAOD::FlowElementContainerm_inputPFOHandle {this, "InputPFO", "JetEtMissChargedParticleFlowObjects_DEFAULT", "Key"}
 
Gaudi::Property< std::string > m_orig_pfo {this, "OriginPFO", "originalObjectLink", "Key to access original un-modified pfo"}
 
Gaudi::Property< float > m_clusterEcut {this , "ClusterECut", 0, " Important !! : must be the same value as in UFOTool"}
 cluster with E below this cut won't be considered in the TCC alg. WARNING cut must be configured as in UFOTool More...
 
ToolHandle< CP::ITrackVertexAssociationToolm_trackVertexAssoTool {this, "TrackVertexAssoTool", "" }
 
SG::WriteHandleKey< TrackCaloClusterInfom_tccInfoHandle {this, "TCCInfoName","TCCInfo","Name of TrackCaloClusterInfo to be created" }
 TrackCaloClusterInfo created by this alg. More...
 
SG::ReadHandleKey< xAOD::TrackParticleContainerm_inputTracksHandle {this, "InputTracks", "InDetTrackParticles", ""}
 Tracks used by this alg. More...
 
SG::ReadDecorHandleKey< xAOD::TrackParticleContainerm_assoClustersKey {this, "AssoClustersDecor", "", "Key to access clusters associated to a track. IMPORTANT must be consistent with TrackParticleContainer "}
 Decoration of tracks expected by this alg (set by TrackParticleClusterAssociationAlg) More...
 
SG::ReadHandleKey< xAOD::CaloClusterContainerm_inputClustersHandle {this, "InputClusters", "CaloCalTopoClusters","input calo clusters"}
 Original clusters from which the m_inputObjectName are build () More...
 
SG::ReadHandleKey< xAOD::VertexContainerm_inputVertexHandle {this, "VertexContainer", "PrimaryVertices", "IMPORTANT : if blank all tracks will be considered, else only those from the PV[0] of VertexContainer"}
 
Gaudi::Property< bool > m_useEnergy {this, "UseEnergy", false,"wether to cut on E or pT"}
 use cluster energy or pt? 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

DataObjIDColl m_extendedExtraObjects
 
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

Builds a TrackCaloClusterInfo map using PFO as input.

Authors
: P-A Delsart, Jennifer Roloff

Definition at line 75 of file TrackCaloClusterInfoAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TrackCaloClusterInfoUFOAlg()

TrackCaloClusterInfoUFOAlg::TrackCaloClusterInfoUFOAlg ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 131 of file TrackCaloClusterInfoAlg.cxx.

131  :
132  TrackCaloClusterInfoAlg( name, pSvcLocator ) {}

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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 TrackCaloClusterInfoAlg::execute ( )
overridevirtualinherited

Definition at line 30 of file TrackCaloClusterInfoAlg.cxx.

30  {
31  ATH_MSG_DEBUG ("Executing " << name() << "...");
32 
33  // Prepare a TrackCaloClusterInfo map :
35  ATH_CHECK( tccInfo.record( std::make_unique<TrackCaloClusterInfo>() ) );
36 
37  // Retrieve the input containers
41 
42  tccInfo->allClusters = &*clusterContainer;
43  tccInfo->allTracks = &*tracks;
44 
45  // retrieve PV0 if it exists
46  if(!vertices->empty()) {
47  tccInfo->pv0=(*vertices)[0]; // Hard code HS vertex as PV0 : WARNING we expect it is the same as was used for m_inputTrackCaloAssocName !!
48  } else {
49  ATH_MSG_ERROR ("Vertex container " << m_inputVertexHandle << " is empty! Can't perform TVA!");
50  return StatusCode::FAILURE;
51  }
52 
53  // Fill the maps
54  ATH_CHECK( fillInfo(tccInfo) );
55 
56  return StatusCode::SUCCESS;
57 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ fillInfo()

StatusCode TrackCaloClusterInfoUFOAlg::fillInfo ( SG::WriteHandle< TrackCaloClusterInfo > &  tccInfo) const
overrideprotectedvirtual

Reimplemented from TrackCaloClusterInfoAlg.

Definition at line 169 of file TrackCaloClusterInfoAlg.cxx.

169  {
170  ATH_MSG_VERBOSE("TCC_UFO_ALG fillInfo start");
171 
172 
174  if(!pfos.isValid() ){
175  ATH_MSG_ERROR("Can't retrieve FlowElementContainer "<< m_inputPFOHandle.key() ); return StatusCode::FAILURE;
176  }
177 
179 
180  ATH_MSG_VERBOSE("GOT FE");
181  // We use a dedicated helper to collect the weights mapping tracks to FlowElement.
183  wcoll.m_orig_pfoK = m_orig_pfo;
184  ATH_MSG_VERBOSE("GOT ORIG PFO");
185 
187  ATH_MSG_VERBOSE("ReadDecorHandle's default container: "<<clusterLinks.key());
188  ATH_MSG_VERBOSE("is ReadDecorHandle available? " <<clusterLinks.isAvailable());
189  ATH_MSG_VERBOSE("ReadDecorHandleKey: "<<clusterLinks.decorKey());
190 
194  wcoll.m_useEnergy = m_useEnergy;
195  wcoll.tccInfo_nonconst = tccInfo.ptr();
196 
197 
198  // perform the weight collection : this populates tccInfo.trackTotalClusterPt and tccInfo.pfoToTracksMap maps
199  wcoll.combinedUFOLoop(tccInfo.cptr(), pfos.cptr());
200 
201 
202  static const xAOD::IParticle::FourMom_t nullV(0,0,0,0);
203 
204  // Create cluster-to-tracks weight map
205  for (std::pair<const xAOD::IParticle*, const xAOD::TrackParticle*> entry : wcoll.pfoToTracksMap){
206  double cluster_pt = m_useEnergy ? entry.first->e() : entry.first->pt();
207  double totalcluster_pt = m_useEnergy ? tccInfo->trackTotalClusterPt.at(entry.second).E() : tccInfo->trackTotalClusterPt.at(entry.second).Pt();
208 
209  // find FourMom_t for trk or insert (0,0,0,0) if not yet in map :
210  xAOD::IParticle::FourMom_t & totalP4 = ( tccInfo->clusterToTracksWeightMap.insert( {entry.first, nullV} ) ).first->second;
211  totalP4 += entry.second->p4() * (cluster_pt/totalcluster_pt); // add the track p4 into the map.
212  }
213 
214  return StatusCode::SUCCESS;
215 
216 }

◆ initialize()

StatusCode TrackCaloClusterInfoUFOAlg::initialize ( )
overridevirtual

Reimplemented from TrackCaloClusterInfoAlg.

Definition at line 135 of file TrackCaloClusterInfoAlg.cxx.

135  {
136  ATH_CHECK(m_trackVertexAssoTool.retrieve() );
137  ATH_CHECK(m_inputPFOHandle.initialize() );
138  ATH_MSG_DEBUG("TCC_INFO_UFO_ALG_INIT");
139  //ATH_MSG_INFO(m_trackVertexAssoTool.get()->name());
140  ATH_MSG_DEBUG("END INIT BLOCK");
141  ATH_MSG_DEBUG("m_orig_pfo "+m_orig_pfo);
142  ATH_MSG_DEBUG("m_inputPFOHandle"+m_inputPFOHandle.key());
143  ATH_MSG_DEBUG("m_trackVertexAssoTool "+m_trackVertexAssoTool.name());
145  ATH_MSG_DEBUG("DEBUG OF VarHandleInits");
146  ATH_MSG_DEBUG("TCC DIAGNOSTIC");
147 
148  ATH_MSG_DEBUG("inputTracksHandle "+m_inputTracksHandle.key());
149  ATH_MSG_DEBUG("assoClustersKey "+m_assoClustersKey.key());
150  ATH_MSG_DEBUG("inputClustersHandle "+m_inputClustersHandle.key());
151  ATH_MSG_DEBUG("inputVertexHandle "+m_inputVertexHandle.key());
152  ATH_MSG_DEBUG("useEnergy? "+m_useEnergy);
153  ATH_MSG_DEBUG("END TCC READLHANDLE DIAGNOSTIC");
155  ATH_MSG_DEBUG("WRITEHANDLE DIAGNOSTIC");
156 
157  ATH_MSG_DEBUG("TCC INITS FROM PARENT CLASS");
160  ATH_CHECK(m_inputVertexHandle.initialize());
162  ATH_CHECK(m_assoClustersKey.initialize());
163  ATH_MSG_DEBUG("TCC INITS DONE");
164 
165 
166  return StatusCode::SUCCESS;
167 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::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< Algorithm >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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_assoClustersKey

SG::ReadDecorHandleKey<xAOD::TrackParticleContainer> TrackCaloClusterInfoAlg::m_assoClustersKey {this, "AssoClustersDecor", "", "Key to access clusters associated to a track. IMPORTANT must be consistent with TrackParticleContainer "}
protectedinherited

Decoration of tracks expected by this alg (set by TrackParticleClusterAssociationAlg)

Definition at line 52 of file TrackCaloClusterInfoAlg.h.

◆ m_clusterEcut

Gaudi::Property<float> TrackCaloClusterInfoUFOAlg::m_clusterEcut {this , "ClusterECut", 0, " Important !! : must be the same value as in UFOTool"}
protected

cluster with E below this cut won't be considered in the TCC alg. WARNING cut must be configured as in UFOTool

Definition at line 93 of file TrackCaloClusterInfoAlg.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_inputClustersHandle

SG::ReadHandleKey<xAOD::CaloClusterContainer> TrackCaloClusterInfoAlg::m_inputClustersHandle {this, "InputClusters", "CaloCalTopoClusters","input calo clusters"}
protectedinherited

Original clusters from which the m_inputObjectName are build ()

Definition at line 55 of file TrackCaloClusterInfoAlg.h.

◆ m_inputPFOHandle

SG::ReadHandleKey< xAOD::FlowElementContainer > TrackCaloClusterInfoUFOAlg::m_inputPFOHandle {this, "InputPFO", "JetEtMissChargedParticleFlowObjects_DEFAULT", "Key"}
protected

Definition at line 86 of file TrackCaloClusterInfoAlg.h.

◆ m_inputTracksHandle

SG::ReadHandleKey< xAOD::TrackParticleContainer > TrackCaloClusterInfoAlg::m_inputTracksHandle {this, "InputTracks", "InDetTrackParticles", ""}
protectedinherited

Tracks used by this alg.

Definition at line 50 of file TrackCaloClusterInfoAlg.h.

◆ m_inputVertexHandle

SG::ReadHandleKey<xAOD::VertexContainer> TrackCaloClusterInfoAlg::m_inputVertexHandle {this, "VertexContainer", "PrimaryVertices", "IMPORTANT : if blank all tracks will be considered, else only those from the PV[0] of VertexContainer"}
protectedinherited

Definition at line 57 of file TrackCaloClusterInfoAlg.h.

◆ m_orig_pfo

Gaudi::Property<std::string> TrackCaloClusterInfoUFOAlg::m_orig_pfo {this, "OriginPFO", "originalObjectLink", "Key to access original un-modified pfo"}
protected

Definition at line 89 of file TrackCaloClusterInfoAlg.h.

◆ m_tccInfoHandle

SG::WriteHandleKey<TrackCaloClusterInfo> TrackCaloClusterInfoAlg::m_tccInfoHandle {this, "TCCInfoName","TCCInfo","Name of TrackCaloClusterInfo to be created" }
protectedinherited

TrackCaloClusterInfo created by this alg.

Definition at line 45 of file TrackCaloClusterInfoAlg.h.

◆ m_trackVertexAssoTool

ToolHandle<CP::ITrackVertexAssociationTool> TrackCaloClusterInfoUFOAlg::m_trackVertexAssoTool {this, "TrackVertexAssoTool", "" }
protected

Definition at line 95 of file TrackCaloClusterInfoAlg.h.

◆ m_useEnergy

Gaudi::Property<bool> TrackCaloClusterInfoAlg::m_useEnergy {this, "UseEnergy", false,"wether to cut on E or pT"}
protectedinherited

use cluster energy or pt?

Definition at line 60 of file TrackCaloClusterInfoAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
TrackCaloClusterInfoUFOAlg::m_orig_pfo
Gaudi::Property< std::string > m_orig_pfo
Definition: TrackCaloClusterInfoAlg.h:89
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrackCaloClusterInfoAlg::TrackCaloClusterInfoAlg
TrackCaloClusterInfoAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrackCaloClusterInfoAlg.cxx:13
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
SG::decorKeyFromKey
std::string decorKeyFromKey(const std::string &key)
Extract the decoration part of key.
Definition: DecorKeyHelpers.cxx:41
TCCHelpers::CombinedUFOLoop::m_orig_pfoK
std::string m_orig_pfoK
Definition: TCCHelpers.h:40
TrackCaloClusterInfoUFOAlg::m_clusterEcut
Gaudi::Property< float > m_clusterEcut
cluster with E below this cut won't be considered in the TCC alg. WARNING cut must be configured as i...
Definition: TrackCaloClusterInfoAlg.h:93
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
TrackCaloClusterInfo::trackTotalClusterPt
std::map< const xAOD::TrackParticle *, FourMom_t > trackTotalClusterPt
Definition: TrackCaloClusterInfo.h:29
SG::WriteHandle::cptr
const_pointer_type cptr() const
Dereference the pointer.
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
TrackCaloClusterInfoAlg::m_assoClustersKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_assoClustersKey
Decoration of tracks expected by this alg (set by TrackParticleClusterAssociationAlg)
Definition: TrackCaloClusterInfoAlg.h:52
TrackCaloClusterInfoUFOAlg::m_trackVertexAssoTool
ToolHandle< CP::ITrackVertexAssociationTool > m_trackVertexAssoTool
Definition: TrackCaloClusterInfoAlg.h:95
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
TrackCaloClusterInfoAlg::m_inputClustersHandle
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inputClustersHandle
Original clusters from which the m_inputObjectName are build ()
Definition: TrackCaloClusterInfoAlg.h:55
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
TCCHelpers::CombinedUFOLoop::m_trackVertexAssoTool
const CP::ITrackVertexAssociationTool * m_trackVertexAssoTool
Definition: TCCHelpers.h:46
xAOD::IParticle::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:68
TrackCaloClusterInfoAlg::m_tccInfoHandle
SG::WriteHandleKey< TrackCaloClusterInfo > m_tccInfoHandle
TrackCaloClusterInfo created by this alg.
Definition: TrackCaloClusterInfoAlg.h:45
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::ReadDecorHandle
Handle class for reading a decoration on an object.
Definition: StoreGate/StoreGate/ReadDecorHandle.h:94
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
TCCHelpers::WeightsCollector::tccInfo_nonconst
TrackCaloClusterInfo * tccInfo_nonconst
Definition: TrackCaloClusterInfoAlg.cxx:112
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TCCHelpers::WeightsCollector::pfoToTracksMap
std::multimap< const xAOD::IParticle *, const xAOD::TrackParticle * > pfoToTracksMap
Definition: TrackCaloClusterInfoAlg.cxx:111
TrackCaloClusterInfoUFOAlg::m_inputPFOHandle
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inputPFOHandle
Definition: TrackCaloClusterInfoAlg.h:86
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< Algorithm > >::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
TCCHelpers::CombinedUFOLoop::combinedUFOLoop
virtual void combinedUFOLoop(const TrackCaloClusterInfo *tccInfo, const xAOD::FlowElementContainer *pfos)
Definition: TCCHelpers.h:54
TCCHelpers::CombinedUFOLoop::m_clustersLinkK
std::string m_clustersLinkK
Definition: TCCHelpers.h:42
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
TrackCaloClusterInfoAlg::m_inputTracksHandle
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_inputTracksHandle
Tracks used by this alg.
Definition: TrackCaloClusterInfoAlg.h:50
TrackCaloClusterInfoAlg::m_useEnergy
Gaudi::Property< bool > m_useEnergy
use cluster energy or pt?
Definition: TrackCaloClusterInfoAlg.h:60
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
TCCHelpers::CombinedUFOLoop::m_useEnergy
bool m_useEnergy
Definition: TCCHelpers.h:48
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TrackCaloClusterInfo::clusterToTracksWeightMap
std::map< const xAOD::IParticle *, FourMom_t > clusterToTracksWeightMap
Definition: TrackCaloClusterInfo.h:30
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
TrackCaloClusterInfoAlg::m_inputVertexHandle
SG::ReadHandleKey< xAOD::VertexContainer > m_inputVertexHandle
Definition: TrackCaloClusterInfoAlg.h:57
TCCHelpers::WeightsCollector
Implement a concrete CombinedUFOLoop dedicated to collection of energy sharing weights for UFO see TC...
Definition: TrackCaloClusterInfoAlg.cxx:108
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TCCHelpers::CombinedUFOLoop::m_clusterEcut
float m_clusterEcut
Definition: TCCHelpers.h:47
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
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
TrackCaloClusterInfoAlg::fillInfo
virtual StatusCode fillInfo(SG::WriteHandle< TrackCaloClusterInfo > &tccInfo) const
Definition: TrackCaloClusterInfoAlg.cxx:60
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
TCCHelpers::CombinedUFOLoop::m_linkdecorkey
const SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > * m_linkdecorkey
Definition: TCCHelpers.h:49
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >