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

Test Algorithm for POOL I/O, reads InDetRawData from transient store. More...

#include <InDetRawDataFakeReader.h>

Inheritance diagram for InDetRawDataFakeReader:
Collaboration diagram for InDetRawDataFakeReader:

Public Member Functions

 InDetRawDataFakeReader (const std::string &name, ISvcLocator *pSvcLocator)
 Algorithm constructor. More...
 
virtual StatusCode initialize ()
 Algorithm initialize at begin of job. More...
 
virtual StatusCode execute ()
 Algorithm execute once per event. More...
 
virtual StatusCode finalize ()
 Algorithm finalize at end of job. More...
 
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

 InDetRawDataFakeReader ()
 Avoid use of default constructor. More...
 
 InDetRawDataFakeReader (const InDetRawDataFakeReader &)
 Avoid use of copy constructor. More...
 
InDetRawDataFakeReaderoperator= (const InDetRawDataFakeReader &)
 Avoid use of copy operator. More...
 
StatusCode checkPixel () const
 Compare objects read with newly created ones. More...
 
StatusCode checkSCT () const
 Compare objects read with newly created ones. More...
 
StatusCode checkTRT () const
 Compare objects read with newly created ones. More...
 
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

const PixelIDm_pixelId
 IDhelper for creating objects. More...
 
const SCT_IDm_sctId
 IDhelper for creating objects. More...
 
const TRT_IDm_trtId
 IDhelper for creating objects. More...
 
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

Test Algorithm for POOL I/O, reads InDetRawData from transient store.

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

◆ InDetRawDataFakeReader() [1/3]

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

Algorithm constructor.

Definition at line 49 of file InDetRawDataFakeReader.cxx.

50  :
51  AthAlgorithm(name,pSvcLocator),
52  m_pixelId(nullptr),
53  m_sctId(nullptr),
54  m_trtId(nullptr)
55 
56 {}

◆ InDetRawDataFakeReader() [2/3]

InDetRawDataFakeReader::InDetRawDataFakeReader ( )
private

Avoid use of default constructor.

◆ InDetRawDataFakeReader() [3/3]

InDetRawDataFakeReader::InDetRawDataFakeReader ( const InDetRawDataFakeReader )
private

Avoid use of copy constructor.

Member Function Documentation

◆ checkPixel()

StatusCode InDetRawDataFakeReader::checkPixel ( ) const
private

Compare objects read with newly created ones.

Definition at line 81 of file InDetRawDataFakeReader.cxx.

82 {
83  ATH_MSG_DEBUG("InDetRawDataFakeReader::checkPixel()" );
84 
85  const PixelRDO_Container* pixCont = nullptr;
86  ATH_CHECK( evtStore()->retrieve(pixCont,"PixelRDOs") );
87 
88  // loop on all RDO collections read in and check them
89  int nmatch = 0;
90  bool error = false;
93 
94  ATH_MSG_DEBUG("PixelRDO_Container size "
95  << pixCont->size() << " " );
96 
97  // Check for non-zero length of container
98  if (pixCont->begin() == pixCont->end()) {
99  ATH_MSG_ERROR("Container '" << "PixelRDOs" << "' is EMPTY !" );
100  return StatusCode::FAILURE;
101  }
102 
103 
104 
105  // loop on all rdo collections.
106 // for(; rdoCollectionsBegin!=rdoCollectionsEnd; ++rdoCollectionsBegin) {
107 
109  it!=pixCont->end() ; ++it) {
110 
111  const InDetRawDataCollection<PixelRDORawData>* RDO_Collection(&(**it));
112 // const InDetRawDataCollection<Pixel1RawData>* RDO_Collection(&(*rdoCollectionsBegin.cptr()));
113 
114  ATH_MSG_DEBUG("Read RDO collection: size, ids "
115  << RDO_Collection->size() << " "
116  << m_pixelId->show_to_string(RDO_Collection->identify(), &cntx) << " "
117  << MSG::hex << (unsigned int)RDO_Collection->identifyHash() << MSG::dec );
118 
119  // create a new pixel RDO collection
120  MsgStream log(msgSvc(), name());
122  creator.createPixelRawDataColl(RDO_Collection->identifyHash(), m_pixelId, msg());
123 
124  ATH_MSG_DEBUG("Test RDO collection: size, ids "
125  << rdocoll->size() << " "
126  << m_pixelId->show_to_string(rdocoll->identify(), &cntx) << " "
127  << MSG::hex << (unsigned int)rdocoll->identifyHash() << MSG::dec );
128 
129 
130  // Use one of the specific clustering AlgTools to make clusters
131  //typedef InDetRawDataCollection<Pixel1RawData> RDO1_Collection_type;
132  typedef InDetRawDataCollection<PixelRDORawData> RDO_Collection_type;
133 
134  // loop on all RDOs
135 // RDO1_Collection_type::const_iterator nextRDO = RDO_Collection->begin();
136 // RDO1_Collection_type::const_iterator lastRDO = RDO_Collection->end();
137  RDO_Collection_type::const_iterator nextRDO = RDO_Collection->begin();
138  RDO_Collection_type::const_iterator lastRDO = RDO_Collection->end();
139  RDO_Collection_type::const_iterator nextRDO1 = rdocoll->begin();
140  RDO_Collection_type::const_iterator lastRDO1 = rdocoll->end();
141  for(; nextRDO!=lastRDO && nextRDO1!=lastRDO1 ; ++nextRDO, ++nextRDO1) {
142  // Look for match
143  if (((*nextRDO)->identify() != (*nextRDO1)->identify()) ||
144  ((*nextRDO)->getWord() != (*nextRDO1)->getWord())) {
145 
146  ATH_MSG_ERROR("RDO's do NOT match: ids, word "
147  << m_pixelId->show_to_string((*nextRDO)->identify()) << " "
148  << m_pixelId->show_to_string((*nextRDO1)->identify()) << " "
149  << MSG::hex << (*nextRDO)->getWord() << " "
150  << MSG::hex << (*nextRDO1)->getWord() << " "
151  );
152  error = true;
153  }
154  else {
155  nmatch++;
156  }
157  }
158  ATH_MSG_DEBUG("Matching RDOs " << nmatch );
159 
160  delete rdocoll;
161  }
162 
163  // print out pixel element links
164 
165  // Retrive the element link vector
166  const PixelRDOElemLinkVec* linkVec = nullptr;
167  ATH_CHECK( evtStore()->retrieve(linkVec, "PixelRDOELs") );
168 
169  ATH_MSG_DEBUG("PixelRDOElemLinkVec found with "
170  << linkVec->pixelRDOs().size()
171  << " RDOs " );
172  for(unsigned int i = 0; i < linkVec->pixelRDOs().size(); ++i) {
173  // Print out rdos from element link
174  PixelRDOElemLinkVec::elem_type rdo = linkVec->pixelRDOs()[i];
175  const PixelRDORawData* ncrdo = *rdo;
176  ATH_MSG_DEBUG("RDO ID=" << m_pixelId->show_to_string((*rdo)->identify())
177  << "RDO ToT=" << ncrdo->getToT() );
178  }
179 
180 
181  if (error) {
182  ATH_MSG_INFO("ERROR reading and checking Pixel RDO collections " );
183  }
184  else {
185  ATH_MSG_INFO("Successfully read and checked Pixel RDO collections " );
186  }
187 
188  return StatusCode::SUCCESS;
189 }

◆ checkSCT()

StatusCode InDetRawDataFakeReader::checkSCT ( ) const
private

Compare objects read with newly created ones.

Definition at line 191 of file InDetRawDataFakeReader.cxx.

192 {
193  ATH_MSG_DEBUG("InDetRawDataFakeReader::execute()" );
194 
195  const SCT_RDO_Container* sctCont = nullptr;
196  ATH_CHECK( evtStore()->retrieve(sctCont,"SCT_RDOs") );
197 
198  // loop on all RDO collections read in and check them
199  int nmatch = 0;
200  bool error = false;
201  InDetRawDataFakeCreator creator;
202  IdContext cntx = m_sctId->wafer_context();
203 
204  ATH_MSG_DEBUG("SCT_RDO_Container size "
205  << sctCont->size() << " " );
206 
207  // Check for non-zero length of container
208  if (sctCont->begin() == sctCont->end()) {
209  ATH_MSG_ERROR("Container '" << "SCT_RDOs" << "' is EMPTY !" );
210  return StatusCode::FAILURE;
211  }
212 
213  for(SCT_RDO_Container::const_iterator it=sctCont->begin() ;
214  it!=sctCont->end() ; ++it) {
215 
216  const InDetRawDataCollection<SCT_RDORawData>* RDO_Collection(&(**it));
217 
218  ATH_MSG_DEBUG("Read RDO collection: size, ids "
219  << RDO_Collection->size() << " "
220  << m_sctId->show_to_string(RDO_Collection->identify(), &cntx) << " "
221  << MSG::hex << (unsigned int)RDO_Collection->identifyHash() << MSG::dec );
222 
223  // create a new sct RDO collection
224  MsgStream log(msgSvc(), name());
226  creator.createSCT_RawDataColl(RDO_Collection->identifyHash(), m_sctId, msg());
227 
228  ATH_MSG_DEBUG("Test RDO collection: size, ids "
229  << rdocoll->size() << " "
230  << m_sctId->show_to_string(rdocoll->identify(), &cntx) << " "
231  << MSG::hex << (unsigned int)rdocoll->identifyHash() << MSG::dec );
232 
233 
234  // Use one of the specific clustering AlgTools to make clusters
235  typedef InDetRawDataCollection<SCT_RDORawData> RDO_Collection_type;
236 
237  // loop on all RDOs
238  RDO_Collection_type::const_iterator nextRDO = RDO_Collection->begin();
239  RDO_Collection_type::const_iterator lastRDO = RDO_Collection->end();
240  RDO_Collection_type::const_iterator nextRDO1 = rdocoll->begin();
241  RDO_Collection_type::const_iterator lastRDO1 = rdocoll->end();
242  for(; nextRDO!=lastRDO && nextRDO1!=lastRDO1 ; ++nextRDO, ++nextRDO1) {
243  // Look for match
244  if (((*nextRDO)->identify() != (*nextRDO1)->identify()) ||
245  ((*nextRDO)->getGroupSize() != (*nextRDO1)->getGroupSize())) {
246 
247  ATH_MSG_ERROR("RDO's do NOT match: ids, group, strip "
248  << m_sctId->show_to_string((*nextRDO)->identify()) << " "
249  << m_sctId->show_to_string((*nextRDO1)->identify()) << " "
250  << MSG::hex
251  << (*nextRDO)->getGroupSize() << " "
252  << (*nextRDO1)->getGroupSize() << " "
253  << MSG::dec
254  );
255  error = true;
256  }
257  else {
258  nmatch++;
259  }
260  }
261  ATH_MSG_DEBUG("Matching RDOs " << nmatch );
262 
263  delete rdocoll;
264  }
265 
266  if (error) {
267  ATH_MSG_INFO("ERROR reading and checking SCT RDO collections " );
268  }
269  else {
270  ATH_MSG_INFO("Successfully read and checked SCT RDO collections " );
271  }
272 
273  return StatusCode::SUCCESS;
274 }

◆ checkTRT()

StatusCode InDetRawDataFakeReader::checkTRT ( ) const
private

Compare objects read with newly created ones.

Definition at line 276 of file InDetRawDataFakeReader.cxx.

277 {
278  ATH_MSG_DEBUG("InDetRawDataFakeReader::execute()" );
279 
280  const TRT_RDO_Container* trtCont = nullptr;
281  ATH_CHECK( evtStore()->retrieve(trtCont,"TRT_RDOs") );
282 
283  // loop on all RDO collections read in and check them
284  int nmatch = 0;
285  bool error = false;
286  InDetRawDataFakeCreator creator;
288 
289  ATH_MSG_DEBUG("TRT_RDO_Container size "
290  << trtCont->size() << " " );
291 
292  // Check for non-zero length of container
293  if (trtCont->begin() == trtCont->end()) {
294  ATH_MSG_ERROR("Container '" << "TRT_RDOs"
295  << "' is EMPTY !" );
296  return StatusCode::FAILURE;
297  }
298 
299  for(TRT_RDO_Container::const_iterator it=trtCont->begin() ;
300  it!=trtCont->end() ; ++it) {
301 
302  const InDetRawDataCollection<TRT_RDORawData>* RDO_Collection(&(**it));
303 
304  ATH_MSG_DEBUG("Read RDO collection: size, ids "
305  << RDO_Collection->size() << " "
306  << m_trtId->show_to_string(RDO_Collection->identify(), &cntx) << " "
307  << MSG::hex << (unsigned int)RDO_Collection->identifyHash() << MSG::dec );
308 
309  // create a new trt RDO collection
310  MsgStream log(msgSvc(), name());
312  creator.createTRT_RawDataColl(RDO_Collection->identifyHash(), m_trtId, msg());
313 
314  ATH_MSG_DEBUG("Test RDO collection: size, ids "
315  << rdocoll->size() << " "
316  << m_trtId->show_to_string(rdocoll->identify(), &cntx) << " "
317  << MSG::hex << (unsigned int)rdocoll->identifyHash() << MSG::dec );
318 
319 
320  // Use one of the specific clustering AlgTools to make clusters
321  typedef InDetRawDataCollection<TRT_RDORawData> RDO_Collection_type;
322 
323  // loop on all RDOs
324  RDO_Collection_type::const_iterator nextRDO = RDO_Collection->begin();
325  RDO_Collection_type::const_iterator lastRDO = RDO_Collection->end();
326  RDO_Collection_type::const_iterator nextRDO1 = rdocoll->begin();
327  RDO_Collection_type::const_iterator lastRDO1 = rdocoll->end();
328  for(; nextRDO!=lastRDO && nextRDO1!=lastRDO1 ; ++nextRDO, ++nextRDO1) {
329  // Look for match
330  if (((*nextRDO)->identify() != (*nextRDO1)->identify()) ||
331  ((*nextRDO)->highLevel() != (*nextRDO1)->highLevel()) ||
332  ((*nextRDO)->timeOverThreshold() != (*nextRDO1)->timeOverThreshold()) ||
333  ((*nextRDO)->driftTimeBin() != (*nextRDO1)->driftTimeBin())) {
334 
335  ATH_MSG_ERROR("RDO's do NOT match: ids, highlvl, TOT, drift "
336  << m_trtId->show_to_string((*nextRDO)->identify()) << " "
337  << m_trtId->show_to_string((*nextRDO1)->identify()) << " "
338  << MSG::hex
339  << (*nextRDO)->highLevel() << " "
340  << (*nextRDO1)->highLevel() << " "
341  << (*nextRDO)->timeOverThreshold() << " "
342  << (*nextRDO1)->timeOverThreshold() << " "
343  << (*nextRDO)->driftTimeBin() << " "
344  << (*nextRDO1)->driftTimeBin() << " "
345  << MSG::dec
346  );
347  error = true;
348  }
349  else {
350  nmatch++;
351  }
352  }
353  ATH_MSG_DEBUG("Matching RDOs " << nmatch );
354 
355  delete rdocoll;
356  }
357 
358  if (error) {
359  ATH_MSG_INFO("ERROR reading and checking TRT RDO collections " );
360  }
361  else {
362  ATH_MSG_INFO("Successfully read and checked TRT RDO collections " );
363  }
364 
365  return StatusCode::SUCCESS;
366 }

◆ 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 InDetRawDataFakeReader::execute ( )
virtual

Algorithm execute once per event.

Definition at line 71 of file InDetRawDataFakeReader.cxx.

72 {
73  ATH_MSG_DEBUG("InDetRawDataFakeReader::execute()" );
74 
75  ATH_CHECK( checkPixel() );
76  ATH_CHECK( checkSCT() );
77  ATH_CHECK( checkTRT() );
78  return StatusCode::SUCCESS;
79 }

◆ 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 InDetRawDataFakeReader::finalize ( )
virtual

Algorithm finalize at end of job.

Definition at line 372 of file InDetRawDataFakeReader.cxx.

373 {
374  ATH_MSG_INFO("InDetRawDataFakeReader::finalize()" );
375  return StatusCode::SUCCESS;
376 }

◆ initialize()

StatusCode InDetRawDataFakeReader::initialize ( )
virtual

Algorithm initialize at begin of job.

Definition at line 59 of file InDetRawDataFakeReader.cxx.

60 {
61  ATH_MSG_INFO("InDetRawDataFakeReader::initialize()" );
62 
63  ATH_CHECK( detStore()->retrieve(m_pixelId, "PixelID") );
64  ATH_CHECK( detStore()->retrieve(m_sctId, "SCT_ID") );
65  ATH_CHECK( detStore()->retrieve(m_trtId, "TRT_ID") );
66 
67  return StatusCode::SUCCESS;
68 }

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

◆ operator=()

InDetRawDataFakeReader& InDetRawDataFakeReader::operator= ( const InDetRawDataFakeReader )
private

Avoid use of copy operator.

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

const PixelID* InDetRawDataFakeReader::m_pixelId
private

IDhelper for creating objects.

Definition at line 83 of file InDetRawDataFakeReader.h.

◆ m_sctId

const SCT_ID* InDetRawDataFakeReader::m_sctId
private

IDhelper for creating objects.

Definition at line 86 of file InDetRawDataFakeReader.h.

◆ m_trtId

const TRT_ID* InDetRawDataFakeReader::m_trtId
private

IDhelper for creating objects.

Definition at line 89 of file InDetRawDataFakeReader.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:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDetRawDataFakeCreator
Class which encapsulates the creation of an InDetRawDataCollection.
Definition: InDetRawDataFakeCreator.h:41
InDetRawDataFakeReader::m_sctId
const SCT_ID * m_sctId
IDhelper for creating objects.
Definition: InDetRawDataFakeReader.h:86
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDetRawDataFakeReader::checkPixel
StatusCode checkPixel() const
Compare objects read with newly created ones.
Definition: InDetRawDataFakeReader.cxx:81
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
InDetRawDataFakeReader::m_trtId
const TRT_ID * m_trtId
IDhelper for creating objects.
Definition: InDetRawDataFakeReader.h:89
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetRawDataCollection::identify
virtual Identifier identify() const override final
skel.it
it
Definition: skel.GENtoEVGEN.py:423
IdentifiableContainerMT::size
size_t size() const
Duplicate of fullSize for backwards compatability.
Definition: IdentifiableContainerMT.h:209
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
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
InDetRawDataFakeReader::checkTRT
StatusCode checkTRT() const
Compare objects read with newly created ones.
Definition: InDetRawDataFakeReader.cxx:276
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDetRawDataCollection::identifyHash
virtual IdentifierHash identifyHash() const override final
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
PixelRDOElemLinkVec
vector containing element links to pixel RDOs
Definition: PixelRDOElemLinkVec.h:40
InDetRawDataFakeReader::m_pixelId
const PixelID * m_pixelId
IDhelper for creating objects.
Definition: InDetRawDataFakeReader.h:83
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
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.
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDetRawDataFakeReader::checkSCT
StatusCode checkSCT() const
Compare objects read with newly created ones.
Definition: InDetRawDataFakeReader.cxx:191
TRT_ID::straw_layer_context
IdContext straw_layer_context(void) const
straw_layer id
Definition: TRT_ID.h:713
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetRawDataFakeCreator::createSCT_RawDataColl
const InDetRawDataCollection< SCT_RDORawData > * createSCT_RawDataColl(IdentifierHash hashId, const SCT_ID *sctId, MsgStream &log)
Create SCT_RawDataCollection.
Definition: InDetRawDataFakeCreator.h:141
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
InDetRawDataFakeCreator::createTRT_RawDataColl
const InDetRawDataCollection< TRT_RDORawData > * createTRT_RawDataColl(IdentifierHash hashId, const TRT_ID *trtId, MsgStream &log)
Create TRT_RawDataCollection.
Definition: InDetRawDataFakeCreator.h:189
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:242
SCT_ID::wafer_context
IdContext wafer_context(void) const
Definition: SCT_ID.h:705
PixelRDORawData::getToT
virtual int getToT() const =0
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:236
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
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
DataVector< RawDataT >::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
AtlasDetectorID::show_to_string
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:574
PixelID::wafer_context
IdContext wafer_context(void) const
Definition: PixelID.h:590
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
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
PixelRDORawData
Definition: PixelRDORawData.h:23
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
PixelRDOElemLinkVec::pixelRDOs
const std::vector< elem_type > & pixelRDOs() const
Definition: PixelRDOElemLinkVec.h:79
error
Definition: IImpactPoint3dEstimator.h:70
IdContext
class IdContext
Definition: IdContext.h:34
DataVector< RawDataT >::size
size_type size() const noexcept
Returns the number of elements in the collection.
InDetRawDataFakeCreator::createPixelRawDataColl
const InDetRawDataCollection< PixelRDORawData > * createPixelRawDataColl(IdentifierHash hashId, const PixelID *pixelId, MsgStream &log)
Create PixelRawDataCollection.
Definition: InDetRawDataFakeCreator.h:76
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::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >