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

#include <METAssocTestAlg.h>

Inheritance diagram for met::METAssocTestAlg:
Collaboration diagram for met::METAssocTestAlg:

Public Member Functions

 METAssocTestAlg (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~METAssocTestAlg ()
 
StatusCode initialize ()
 
StatusCode finalize ()
 
StatusCode execute ()
 
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

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

StatusCode checkJet (const xAOD::MissingETAssociation &)
 
StatusCode checkObjects (const xAOD::MissingETAssociation &)
 
StatusCode checkAssoc (const xAOD::MissingETAssociation &)
 
StatusCode checkMiscAssoc (const xAOD::MissingETAssociation &)
 
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

std::string m_mapname = ""
 
std::string m_jetname = ""
 
std::string m_mapsuffix = ""
 
bool m_failOnInconsistency = false
 
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

Definition at line 13 of file METAssocTestAlg.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

◆ METAssocTestAlg()

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

Definition at line 16 of file METAssocTestAlg.cxx.

16  :
17  ::AthAlgorithm( name, pSvcLocator ) {
18  declareProperty( "METMapSuffix", m_mapsuffix="AntiKt4EMTopo" );
19  declareProperty( "JetCollection", m_jetname="" );
20 
21  declareProperty( "FailOnInconsistency", m_failOnInconsistency=false );
22  }

◆ ~METAssocTestAlg()

met::METAssocTestAlg::~METAssocTestAlg ( )
inline

Definition at line 18 of file METAssocTestAlg.h.

18 {}

Member Function Documentation

◆ checkAssoc()

StatusCode met::METAssocTestAlg::checkAssoc ( const xAOD::MissingETAssociation assoc)
private

Definition at line 143 of file METAssocTestAlg.cxx.

144  {
145  const auto& jet = *assoc.refJet();
146  JetFourMom_t jetconstp4 = jet.jetP4(JetConstitScaleMomentum);
147  MissingETBase::Types::constvec_t jettrkvec = assoc.jetTrkVec();
148 
149  // loop over the encoded cluster/inclusive pflow constituent sums and check that these are
150  // all smaller than the jet constituent-scale pt
151  for(size_t ikey=0; ikey<assoc.calkey().size(); ++ikey) {
152  ATH_MSG_VERBOSE(" Now on calkey " << ikey << ": " << assoc.calkey()[ikey] );
153  MissingETBase::Types::constvec_t calvec = assoc.calVec(ikey);
154  ATH_MSG_VERBOSE(" Constituent pt: " << calvec.cpt() << ", E: " << calvec.ce() );
155 
156  if(calvec.ce()-jetconstp4.e()>f_tolerance) {
157  ATH_MSG_ERROR("Too-large calvec!");
158  for(size_t iobj=0; iobj<assoc.objects().size(); ++iobj) {
159  if( ((1<<iobj)&assoc.calkey()[ikey]) == 0 ) {
160  const IParticle* obj = assoc.objects()[iobj];
161  if(!obj) continue; // invalid ElementLink -- thinned?
162  ATH_MSG_ERROR(" Object pt: " << obj->pt() << ", E: " << obj->e() << ", type: " << obj->type());
163  }
164  }
165  if(m_failOnInconsistency) return StatusCode::FAILURE;
166  }
167  }
168 
169  // loop over the encoded track/charged pflow constituent sums and check that these are
170  // all smaller than the jet track sum
171  for(size_t ikey=0; ikey<assoc.trkkey().size(); ++ikey) {
172  ATH_MSG_VERBOSE(" Now on trkkey " << ikey << ": " << assoc.trkkey()[ikey] );
173  MissingETBase::Types::constvec_t trkvec = assoc.trkVec(ikey);
174  ATH_MSG_VERBOSE(" Track pt: " << trkvec.cpt() << ", E: " << trkvec.ce() );
175 
176  if(trkvec.ce()-jettrkvec.ce()>f_tolerance) {
177  ATH_MSG_ERROR("Too-large trkvec!");
178  for(size_t iobj=0; iobj<assoc.objects().size(); ++iobj) {
179  if( ((1<<iobj)&assoc.trkkey()[ikey]) == 0 ) {
180  const IParticle* obj = assoc.objects()[iobj];
181  if(!obj) continue; // invalid ElementLink -- thinned?
182  ATH_MSG_ERROR(" Object pt: " << obj->pt() << ", E: " << obj->e() << ", type: " << obj->type());
183  }
184  }
185  if(m_failOnInconsistency) return StatusCode::FAILURE;
186  }
187  }
188 
189  return StatusCode::SUCCESS;
190  }

◆ checkJet()

StatusCode met::METAssocTestAlg::checkJet ( const xAOD::MissingETAssociation assoc)
private

Definition at line 69 of file METAssocTestAlg.cxx.

70  {
71  const auto& jet = *assoc.refJet();
72  JetFourMom_t jetconstp4 = jet.jetP4(JetConstitScaleMomentum);
73  MissingETBase::Types::constvec_t jettrkvec = assoc.jetTrkVec();
74 
76 
77  // switch on all overlapping objects
78  for(size_t iobj=0; iobj<assoc.objects().size(); ++iobj) {
79  helper.setObjSelectionFlag(&assoc,iobj,true);
80  }
81  // get cluster/inclusive pflow and track/charged pflow constituent sums
84 
85  ATH_MSG_VERBOSE(" Jet constituent-scale pt: " << jetconstp4.pt() << ", E: " << jetconstp4.e() );
86  ATH_MSG_VERBOSE(" Max constituent overlap pt: " << overlapcalvec.cpt() << ", E: " << overlapcalvec.ce() );
87 
88  ATH_MSG_VERBOSE(" Jet track pt: " << jettrkvec.cpt() << ", E: " << jettrkvec.ce() );
89  ATH_MSG_VERBOSE(" Max track overlap pt: " << overlaptrkvec.cpt() << ", E: " << overlaptrkvec.ce() );
90 
91  // optionally quit and fail if overlap-removal exceeds original jet constituent-scale energy
92  if(overlapcalvec.ce()-jetconstp4.e()>f_tolerance) {
93  ATH_MSG_ERROR("Too-large overlapcalvec!");
94  if(m_failOnInconsistency) return StatusCode::FAILURE;
95  }
96  if(overlaptrkvec.ce()-jettrkvec.ce()>f_tolerance) {
97  ATH_MSG_ERROR("Too-large overlaptrkvec!");
98  if(m_failOnInconsistency) return StatusCode::FAILURE;
99  }
100 
101  return StatusCode::SUCCESS;
102  }

◆ checkMiscAssoc()

StatusCode met::METAssocTestAlg::checkMiscAssoc ( const xAOD::MissingETAssociation assoc)
private

Definition at line 192 of file METAssocTestAlg.cxx.

193  {
194  // loop over the encoded cluster/inclusive pflow constituent sums
195  for(size_t ikey=0; ikey<assoc.calkey().size(); ++ikey) {
196  ATH_MSG_VERBOSE(" Now on calkey " << ikey << ": " << assoc.calkey()[ikey] );
197  MissingETBase::Types::constvec_t calvec = assoc.calVec(ikey);
198  ATH_MSG_VERBOSE(" Constituent pt: " << calvec.cpt() << ", E: " << calvec.ce() );
199  }
200 
201  // loop over the encoded track/charged pflow constituent sums
202  for(size_t ikey=0; ikey<assoc.trkkey().size(); ++ikey) {
203  ATH_MSG_VERBOSE(" Now on trkkey " << ikey << ": " << assoc.trkkey()[ikey] );
204  MissingETBase::Types::constvec_t trkvec = assoc.trkVec(ikey);
205  ATH_MSG_VERBOSE(" Track pt: " << trkvec.cpt() << ", E: " << trkvec.ce() );
206  }
207 
208  return StatusCode::SUCCESS;
209  }

◆ checkObjects()

StatusCode met::METAssocTestAlg::checkObjects ( const xAOD::MissingETAssociation assoc)
private

Definition at line 104 of file METAssocTestAlg.cxx.

105  {
106  const auto& jet = *assoc.refJet();
107  JetFourMom_t jetconstp4 = jet.jetP4(JetConstitScaleMomentum);
108  MissingETBase::Types::constvec_t jettrkvec = assoc.jetTrkVec();
109 
111 
112  // loop over individual objects and check that none of them has a larger
113  // associated constituent sum than the jet
114  for(size_t iobj=0; iobj<assoc.objects().size(); ++iobj) {
115  ATH_MSG_VERBOSE(" Now on constituent " << iobj );
116  const IParticle* obj = assoc.objects()[iobj];
117  if(!obj) continue; // invalid ElementLink -- thinned?
118  helper.resetObjSelectionFlags();
119  helper.setObjSelectionFlag(&assoc,iobj,true);
122 
123  ATH_MSG_VERBOSE(" Object pt: " << obj->pt() << ", E: " << obj->e() << ", type: " << obj->type());
124  ATH_MSG_VERBOSE(" Constituent pt: " << overlapcalvec.cpt() << ", E: " << overlapcalvec.ce() );
125  ATH_MSG_VERBOSE(" Track pt: " << overlaptrkvec.cpt() << ", E: " << overlaptrkvec.ce() );
126 
127  // optionally quit and fail if overlap-removal exceeds original jet constituent-scale energy
128  if(overlapcalvec.ce()-jetconstp4.e()>f_tolerance) {
129  ATH_MSG_ERROR("Too-large overlapcalvec!");
130  ATH_MSG_ERROR(" Object pt: " << obj->pt() << ", E: " << obj->e() << ", type: " << obj->type());
131  if(m_failOnInconsistency) return StatusCode::FAILURE;
132  }
133  if(overlaptrkvec.ce()-jettrkvec.ce()>f_tolerance) {
134  ATH_MSG_ERROR("Too-large overlaptrkvec!");
135  ATH_MSG_ERROR(" Object pt: " << obj->pt() << ", E: " << obj->e() << ", type: " << obj->type());
136  if(m_failOnInconsistency) return StatusCode::FAILURE;
137  }
138  }
139 
140  return StatusCode::SUCCESS;
141  }

◆ 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 met::METAssocTestAlg::execute ( )

Definition at line 41 of file METAssocTestAlg.cxx.

42  {
43 
44 
46  if (!map.isValid()) {
47  ATH_MSG_WARNING("Unable to retrieve met association map");
48  return StatusCode::FAILURE;
49  }
50 
51  for(const auto *const assoc : *map) {
52  if(assoc->isMisc()) { // misc association gets special treatment
53  ATH_MSG_VERBOSE( " Now on MET misc association" );
54  ATH_CHECK( checkMiscAssoc(*assoc) );
55  } else {
56  ATH_MSG_VERBOSE( " Now on MET association for jet " << assoc->refJet()->index() );
57  // Test jets for consistency with the map
58  ATH_CHECK( checkJet(*assoc) );
59  // Test associated objects for consistency with the map
60  ATH_CHECK( checkObjects(*assoc) );
61  // Test association for self-consistency based on stored keys
62  ATH_CHECK( checkAssoc(*assoc) );
63  }
64  }
65 
66  return StatusCode::SUCCESS;
67  }

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

◆ finalize()

StatusCode met::METAssocTestAlg::finalize ( )

Definition at line 39 of file METAssocTestAlg.cxx.

39 { return StatusCode::SUCCESS; }

◆ initialize()

StatusCode met::METAssocTestAlg::initialize ( )

Definition at line 24 of file METAssocTestAlg.cxx.

25  {
26  if(m_mapsuffix.empty()) {
27  ATH_MSG_FATAL( "METMapSuffix (e.g. AntiKt4EMTopo) must be set!" );
28  return StatusCode::FAILURE;
29  }
30  m_mapname = "METAssoc_"+m_mapsuffix;
31  if(m_jetname.empty()) { m_jetname = m_mapsuffix+"Jets"; }
32 
33  ATH_MSG_INFO( "Initialising " << name() );
34  ATH_MSG_INFO( "MET map name: " << m_mapname );
35 
36  return StatusCode::SUCCESS;
37  }

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

bool met::METAssocTestAlg::m_failOnInconsistency = false
private

Definition at line 36 of file METAssocTestAlg.h.

◆ m_jetname

std::string met::METAssocTestAlg::m_jetname = ""
private

Definition at line 32 of file METAssocTestAlg.h.

◆ m_mapname

std::string met::METAssocTestAlg::m_mapname = ""
private

Definition at line 31 of file METAssocTestAlg.h.

◆ m_mapsuffix

std::string met::METAssocTestAlg::m_mapsuffix = ""
private

Definition at line 35 of file METAssocTestAlg.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:
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAOD::MissingETAssociation_v1::overlapCalVec
ConstVec overlapCalVec(const MissingETAssociationHelper &helper) const
Retrieve total cluster-based vector to be subtracted from the jet.
Definition: MissingETAssociation_v1.cxx:772
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
met::METAssocTestAlg::m_jetname
std::string m_jetname
Definition: METAssocTestAlg.h:32
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
met::METAssocTestAlg::checkAssoc
StatusCode checkAssoc(const xAOD::MissingETAssociation &)
Definition: METAssocTestAlg.cxx:143
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
met::METAssocTestAlg::m_mapname
std::string m_mapname
Definition: METAssocTestAlg.h:31
xAOD::MissingETAssociation_v1::ConstVec
Vector sum of constituents for subtractive overlap removal.
Definition: MissingETAssociation_v1.h:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
met::METAssocTestAlg::checkMiscAssoc
StatusCode checkMiscAssoc(const xAOD::MissingETAssociation &)
Definition: METAssocTestAlg.cxx:192
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
xAOD::JetConstitScaleMomentum
@ JetConstitScaleMomentum
Definition: JetTypes.h:29
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
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
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::MissingETAssociation_v1::trkkey
const std::vector< MissingETBase::Types::bitmask_t > & trkkey() const
Get the vector of trk keys.
met::METAssocTestAlg::m_mapsuffix
std::string m_mapsuffix
Definition: METAssocTestAlg.h:35
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
met::METAssocTestAlg::checkObjects
StatusCode checkObjects(const xAOD::MissingETAssociation &)
Definition: METAssocTestAlg.cxx:104
xAOD::MissingETAssociation_v1::calVec
ConstVec calVec(const IParticle *pPart) const
Get calo constituent vector for a given object.
Definition: MissingETAssociation_v1.cxx:540
xAOD::MissingETAssociation_v1::jetTrkVec
ConstVec jetTrkVec() const
Get track constituent vector for the reference jet.
Definition: MissingETAssociation_v1.cxx:570
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
xAOD::JetFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
Definition: JetTypes.h:17
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
xAOD::MissingETAssociationHelper
Definition: MissingETAssociationHelper.h:26
xAOD::MissingETAssociation_v1::overlapTrkVec
ConstVec overlapTrkVec(const MissingETAssociationHelper &helper) const
Retrieve total track-based vector to be subtracted from the jet.
Definition: MissingETAssociation_v1.cxx:782
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
xAOD::MissingETAssociation_v1::calkey
const std::vector< MissingETBase::Types::bitmask_t > & calkey() const
Get the vector of cal keys.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::MissingETAssociation_v1::ConstVec::cpt
float cpt() const
Returns .
Definition: MissingETAssociation_v1.cxx:87
met::METAssocTestAlg::checkJet
StatusCode checkJet(const xAOD::MissingETAssociation &)
Definition: METAssocTestAlg.cxx:69
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
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
met::METAssocTestAlg::m_failOnInconsistency
bool m_failOnInconsistency
Definition: METAssocTestAlg.h:36
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::MissingETAssociation_v1::trkVec
ConstVec trkVec(const IParticle *pPart) const
Get track constituent vector for a given object.
Definition: MissingETAssociation_v1.cxx:550
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
python.PyAthena.obj
obj
Definition: PyAthena.py:135
xAOD::MissingETAssociation_v1::refJet
const Jet * refJet() const
Access reference jet.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::MissingETAssociation_v1::ConstVec::ce
float ce() const
Returns .
xAOD::MissingETAssociation_v1::objects
std::vector< const IParticle * > objects() const
Access contributing objects.
Definition: MissingETAssociation_v1.cxx:505
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >