ATLAS Offline Software
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
Athena::RootNtupleOutputStream Class Reference

algorithm that marks for write data objects in SG More...

#include <RootNtupleOutputStream.h>

Inheritance diagram for Athena::RootNtupleOutputStream:
Collaboration diagram for Athena::RootNtupleOutputStream:

Public Types

typedef std::vector< SG::DataProxy * > Items
 
typedef std::vector< std::pair< std::string, std::string > > TypeKeyPairs
 

Public Member Functions

 RootNtupleOutputStream (const std::string &name, ISvcLocator *pSvcLocator)
 Standard algorithm Constructor. More...
 
virtual ~RootNtupleOutputStream ()
 Standard Destructor. 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
 
implement IAlgorithm
bool isEventAccepted () const
 Test whether this event should be output. More...
 
implement IAlgorithm
bool isEventAccepted () const
 Test whether this event should be output. More...
 

Protected Types

typedef ServiceHandle< IClassIDSvc > IClassIDSvc_t
 

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

Protected Attributes

ServiceHandle< StoreGateSvcm_dataStore
 handle to the StoreGateSvc store where the data we want to write out resides More...
 
std::string m_persName
 Name of the persistency service capable to write data from the store. More...
 
StringProperty m_writingTool
 Name of the OutputStreamTool used for writing. More...
 
std::string m_outputName
 Name of the output file. More...
 
StringProperty m_processTag
 tag of processing stage: More...
 
IClassIDSvc_t m_pCLIDSvc
 
StringArrayProperty m_itemList
 Vector of item names. More...
 
IDataSelector m_objects
 Collection of objects beeing selected. More...
 
int m_events
 Number of events written to this output stream. More...
 
bool m_forceRead
 set to true to force read of data objects in item list More...
 
bool m_persToPers
 set to true to allow data objects being copied persistent to persistent (without SG retrieve). More...
 
std::vector< unsigned int > m_exemptPersToPers
 
bool m_provideDef
 set to true to allow defaults being provided for non-existent data objects. More...
 
bool m_writeOnExecute
 set to true to trigger streaming of data on execute() More...
 
bool m_writeOnFinalize
 set to true to trigger streaming of data on finalize() More...
 
bool m_itemListFromTool
 set to write out everything from input DataHeader More...
 
bool m_dynamicItemList
 dynamic output itemlist: if enabled rediscover object list to be written out at each event otherwise: reuse the one from the first event. More...
 
std::vector< SG::FolderItemm_selection
 list of selected proxies. More...
 
ToolHandle< IAthenaOutputStreamToolm_streamer
 pointer to AthenaOutputStreamTool More...
 
ToolHandleArray< IAthenaOutputToolm_helperTools
 vector of AlgTools that that are executed by this stream More...
 
StringArrayProperty m_acceptNames
 Vector of names of Algorithms that this stream accepts. More...
 
StringArrayProperty m_requireNames
 Vector of names of Algorithms that this stream requires. More...
 
StringArrayProperty m_vetoNames
 Vector of names of Algorithms that this stream is vetoed by. More...
 
ServiceHandle< IDecisionSvcm_decSvc
 

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
 

Friends

class AlgFactory< Athena::RootNtupleOutputStream >
 

implement IAlgorithm

virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual StatusCode execute ()
 
virtual StatusCode write ()
 Stream the data. More...
 
void clearSelection ()
 Clear list of selected objects. More...
 
void collectAllObjects ()
 Collect data objects for output streamer list. More...
 
IDataSelector * selectedObjects ()
 Return the list of selected objects. More...
 
void handle (const Incident &incident)
 Incident service handle listening for MetaDataStop. More...
 

Detailed Description

algorithm that marks for write data objects in SG

Author
binet.nosp@m.@cer.nosp@m.n.ch
Id
RootNtupleOutputStream.h 500674 2012-05-14 21:36:37Z gemmeren

Definition at line 46 of file RootNtupleOutputStream.h.

Member Typedef Documentation

◆ IClassIDSvc_t

Definition at line 69 of file RootNtupleOutputStream.h.

◆ Items

Definition at line 53 of file RootNtupleOutputStream.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ TypeKeyPairs

typedef std::vector<std::pair<std::string, std::string> > Athena::RootNtupleOutputStream::TypeKeyPairs

Definition at line 106 of file RootNtupleOutputStream.h.

Constructor & Destructor Documentation

◆ RootNtupleOutputStream()

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

Standard algorithm Constructor.

Definition at line 32 of file RootNtupleOutputStream.cxx.

33  : FilteredAlgorithm(name, pSvcLocator),
34  m_dataStore("StoreGateSvc", name),
35  m_pCLIDSvc("ClassIDSvc", name),
36  m_events(0),
37  m_streamer(std::string("AthenaOutputStreamTool/") +
38  name + std::string("Tool"), this),
39  m_helperTools(this)
40 {
41  assert(pSvcLocator);
42  declareProperty("ItemList", m_itemList);
43  declareProperty("OutputFile", m_outputName="DidNotNameOutput.root");
44  declareProperty("EvtConversionSvc", m_persName="EventPersistencySvc");
45  declareProperty("WritingTool", m_streamer);
46  declareProperty("Store", m_dataStore);
47  declareProperty("ProcessingTag", m_processTag=name);
48  declareProperty("ForceRead", m_forceRead=false);
49  declareProperty("PersToPers", m_persToPers=false);
50  declareProperty("ExemptPersToPers", m_exemptPersToPers);
51  declareProperty("ProvideDef", m_provideDef=false);
52  declareProperty("WriteOnExecute", m_writeOnExecute=true);
53  declareProperty("WriteOnFinalize", m_writeOnFinalize=false);
54  declareProperty("TakeItemsFromInput", m_itemListFromTool=false);
55  declareProperty("HelperTools", m_helperTools);
56 
57  declareProperty("DynamicItemList",
58  m_dynamicItemList = false,
59  "dynamic output itemlist:\n" \
60  " if enabled rediscover object list to be written out at each event\n" \
61  " otherwise: reuse the one from the first event.");
62 }

◆ ~RootNtupleOutputStream()

Athena::RootNtupleOutputStream::~RootNtupleOutputStream ( )
virtual

Standard Destructor.

Definition at line 65 of file RootNtupleOutputStream.cxx.

66 {}

Member Function Documentation

◆ clearSelection()

void Athena::RootNtupleOutputStream::clearSelection ( )
inlineprivate

Clear list of selected objects.

Definition at line 287 of file RootNtupleOutputStream.cxx.

288 {
289  m_objects.resize(0);
290  if (m_dynamicItemList) {
291  m_selection.resize(0);
292  }
293 }

◆ collectAllObjects()

void Athena::RootNtupleOutputStream::collectAllObjects ( )
private

Collect data objects for output streamer list.

Definition at line 296 of file RootNtupleOutputStream.cxx.

297 {
298  typedef std::vector<SG::FolderItem> Items_t;
299 
300  if (!m_dynamicItemList && !m_selection.empty()) {
301  // reuse object list from previous event.
302  } else {
303 
304  // if (m_itemListFromTool) {
305  // //FIXME:
306  // // if (!m_streamer->getInputItemList(&*m_p2BWritten).isSuccess()) {
307  // // ATH_MSG_WARNING("collectAllObjects() could not get ItemList from Tool.");
308  // // }
309  // }
310 
311  static const std::string s_plus = "+";
312  static const std::string s_dash = "-";
313  typedef std::vector<const SG::DataProxy*> Proxies_t;
314  Proxies_t proxies = m_dataStore->proxies();
315 
316  const std::vector<std::string>& items = m_itemList.value();
317  std::vector<std::string> toremove;
318  toremove.reserve(items.size());
319 
320  Items_t selection;
321  selection.reserve(items.size());
322 
323  for (Proxies_t::const_iterator
324  iproxy = proxies.begin(),
325  iend = proxies.end();
326  iproxy != iend;
327  ++iproxy) {
328  const SG::DataProxy *proxy = *iproxy;
329  if (!proxy) {
330  continue;
331  }
332  for (std::vector<std::string>::const_iterator
333  jkey = items.begin(),
334  jend = items.end();
335  jkey != jend;
336  ++jkey) {
337  if (!jkey->empty()) {
338  if ((*jkey)[0] == s_dash[0]) {
339  toremove.push_back(jkey->substr(1, std::string::npos));
340  continue;
341  }
342  std::string key = *jkey;
343  if ((*jkey)[0] == s_plus[0]) {
344  key = jkey->substr(1, std::string::npos);
345  }
346  int o = fnmatch(key.c_str(),
347  proxy->name().c_str(),
348  FNM_PATHNAME);
349  if (o == 0) {
350  // accept
351  selection.push_back(SG::FolderItem(proxy->clID(), proxy->name()));
352  break;
353  }
354  }
355  }
356  }
357 
358  m_selection.reserve(selection.size());
359  if (toremove.empty()) {
361  } else {
362  for(Items_t::const_iterator
363  isel=selection.begin(),
364  iend=selection.end();
365  isel != iend;
366  ++isel) {
367  const std::string &name = isel->key();
368  bool keep = true;
369  for (std::vector<std::string>::const_iterator
370  jkey = toremove.begin(),
371  jend = toremove.end();
372  jkey != jend;
373  ++jkey) {
374  const std::string& key = *jkey;
375  int o = fnmatch(key.c_str(),
376  name.c_str(),
377  FNM_PATHNAME);
378  if (o == 0) {
379  // reject
380  keep = false;
381  break;
382  }
383  }
384  if (keep) {
385  m_selection.push_back(*isel);
386  }
387  }
388  }
389  }
390 
391  for (Items_t::const_iterator
392  itr = m_selection.begin(),
393  iend = m_selection.end();
394  itr != iend;
395  ++itr) {
396  const std::string &name = itr->key();
397  SG::DataProxy *proxy = m_dataStore->proxy(itr->id(), name);
398  if (NULL == proxy) {
399  continue;
400  }
401  if (m_forceRead && proxy->isValid()) {
402  if (!m_persToPers) {
403  if (NULL == proxy->accessData()) {
404  ATH_MSG_ERROR(" Could not get data object for id "
405  << proxy->clID() << ",\"" << proxy->name());
406  }
407  } else if (true /*m_exemptPersToPers.find(item.id()) != m_exemptPersToPers.end()*/) {
408  if (NULL == proxy->accessData()) {
409  ATH_MSG_ERROR(" Could not get data object for id "
410  << proxy->clID() << ",\"" << proxy->name());
411  }
412  }
413  }
414  DataObject *obj = proxy->object();
415  if (NULL != obj) {
416  m_objects.push_back(obj);
417  ATH_MSG_DEBUG(" Added object " << proxy->clID() << ",\"" << proxy->name() << "\"");
418  // if (m_checkNumberOfWrites && !m_provideDef) {
419  // std::string tn;
420  // if (!m_pCLIDSvc->getTypeNameOfID(item.id(), tn).isSuccess()) {
421  // ATH_MSG_ERROR(" Could not get type name for id "
422  // << item.id() << ",\"" << itemProxy->name());
423  // } else {
424  // tn += '_' + itemProxy->name();
425  // CounterMapType::iterator cit = m_objectWriteCounter.find(tn);
426  // if (cit == m_objectWriteCounter.end()) {
427  // // First time through
428  // //std::pair<CounterMapType::iterator, bool> result =
429  // m_objectWriteCounter.insert(CounterMapType::value_type(tn, 1));
430  // } else {
431  // // set to next iteration (to avoid double counting)
432  // // StreamTools will eliminate duplicates.
433  // (*cit).second = m_events + 1;
434  // }
435  // }
436  // }
437  // } else if (!m_forceRead && m_persToPers && proxy->isValid()) {
438  // tAddr = itemProxy->transientAddress();
439  } //if data object there
440  }
441 
442  return;
443 }

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

Reimplemented from FilteredAlgorithm.

Definition at line 212 of file RootNtupleOutputStream.cxx.

213 {
214  bool failed = false;
215  for (std::vector<ToolHandle<IAthenaOutputTool> >::iterator
216  iter = m_helperTools.begin(),
217  iend = m_helperTools.end();
218  iter != iend;
219  ++iter) {
220  if (!(*iter)->preExecute().isSuccess()) {
221  failed = true;
222  }
223  }
224  if (m_writeOnExecute) {
225  if (!write().isSuccess()) {
226  failed = true;
227  }
228  }
229  for (std::vector<ToolHandle<IAthenaOutputTool> >::iterator
230  iter = m_helperTools.begin(),
231  iend = m_helperTools.end();
232  iter != iend;
233  ++iter) {
234  if(!(*iter)->postExecute().isSuccess()) {
235  failed = true;
236  }
237  }
238 
239  return failed
240  ? StatusCode::FAILURE
241  : StatusCode::SUCCESS;
242 }

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

Reimplemented from FilteredAlgorithm.

Definition at line 187 of file RootNtupleOutputStream.cxx.

188 {
189  bool failed = false;
190  ATH_MSG_DEBUG("finalize: Optimize output");
191  if (m_events == 0) {
192  if (!m_streamer->commitOutput().isSuccess()) {
193  failed = true;
194  }
195  }
196  if (!m_streamer->finalizeOutput().isSuccess()) {
197  failed = true;
198  }
199  ATH_MSG_DEBUG("finalize: end optimize output");
200  if (!m_helperTools.release().isSuccess()) {
201  failed = true;
202  }
203  if (!m_streamer.release().isSuccess()) {
204  failed = true;
205  }
206  return failed
207  ? StatusCode::FAILURE
208  : StatusCode::SUCCESS;
209 }

◆ handle()

void Athena::RootNtupleOutputStream::handle ( const Incident &  incident)
private

Incident service handle listening for MetaDataStop.

Definition at line 152 of file RootNtupleOutputStream.cxx.

153 {
154  ATH_MSG_DEBUG("handle() incident type: " << inc.type());
155  static const std::string s_METADATASTOP = "MetaDataStop";
156  if (inc.type() == s_METADATASTOP) {
157  // Moved preFinalize of helper tools to stop - want to optimize the
158  // output file in finalize RDS 12/2009
159  for (std::vector<ToolHandle<IAthenaOutputTool> >::iterator
160  iter = m_helperTools.begin(),
161  iend = m_helperTools.end();
162  iter != iend;
163  ++iter) {
164  if (!(*iter)->preFinalize().isSuccess()) {
165  ATH_MSG_ERROR("Cannot finalize helper tool");
166  }
167  }
168  // Always force a final commit in stop - mainly applies to AthenaPool
169  if (m_writeOnFinalize) {
170  if (!write().isSuccess()) { // true mean write AND commit
171  ATH_MSG_ERROR("Cannot write on finalize");
172  }
173  }
174  // If there are no events, then connect the output for the metadata
175  if (m_events == 0) {
176  if (m_streamer->connectOutput(m_outputName).isFailure()) {
177  ATH_MSG_ERROR("Unable to connect to file " << m_outputName);
178  }
179  }
180  }
181  ATH_MSG_INFO("Records written: " << m_events);
182  ATH_MSG_DEBUG("Leaving handle");
183 }

◆ initialize()

StatusCode Athena::RootNtupleOutputStream::initialize ( )
virtual

Reimplemented from FilteredAlgorithm.

Definition at line 70 of file RootNtupleOutputStream.cxx.

71 {
72  ATH_MSG_DEBUG("In initialize");
73  if (!this->FilteredAlgorithm::initialize().isSuccess()) {
74  ATH_MSG_ERROR("could not initialize base class");
75  return StatusCode::FAILURE;
76  }
77 
78  // Reset the number of events written
79  m_events = 0;
80 
81  // set up the SG service:
82  if (!m_dataStore.retrieve().isSuccess()) {
83  ATH_MSG_FATAL("Could not locate default store");
84  return StatusCode::FAILURE;
85  } else {
86  ATH_MSG_DEBUG("Found " << m_dataStore.type() << " store.");
87  }
88  assert(static_cast<bool>(m_dataStore));
89 
90  // set up the CLID service:
91  if (!m_pCLIDSvc.retrieve().isSuccess()) {
92  ATH_MSG_FATAL("Could not locate default ClassIDSvc");
93  return StatusCode::FAILURE;
94  }
95  assert(static_cast<bool>(m_pCLIDSvc));
96 
97  // Get Output Stream tool for writing
98  if (!m_streamer.retrieve().isSuccess()) {
99  ATH_MSG_FATAL("Can not find " << m_streamer);
100  return StatusCode::FAILURE;
101  }
102 
103  const bool extendProvenanceRecord = true;
104  if (!m_streamer->connectServices(m_dataStore.type(),
105  m_persName,
106  extendProvenanceRecord).isSuccess()) {
107  ATH_MSG_FATAL("Unable to connect services");
108  return StatusCode::FAILURE;
109  }
110 
111  if (!m_helperTools.retrieve().isSuccess()) {
112  ATH_MSG_FATAL("Can not find " << m_helperTools);
113  return StatusCode::FAILURE;
114  }
115  ATH_MSG_INFO("Found " << m_helperTools << endmsg << "Data output: " << m_outputName);
116 
117  bool allgood = true;
118  for (std::vector<ToolHandle<IAthenaOutputTool> >::iterator
119  iter = m_helperTools.begin(),
120  iend = m_helperTools.end();
121  iter != iend;
122  ++iter) {
123  if (!(*iter)->postInitialize().isSuccess()) {
124  allgood = false;
125  }
126  }
127  if (!allgood) {
128  ATH_MSG_ERROR("problem in postInitialize of a helper tool");
129  return StatusCode::FAILURE;
130  }
131 
132  // For 'write on finalize', we set up listener for 'MetaDataStop'
133  // and perform write at this point. This happens at 'stop' of the
134  // event selector. RDS 04/2010
135  if (m_writeOnFinalize) {
136  // Set to be listener for end of event
137  ServiceHandle<IIncidentSvc> incSvc("IncidentSvc", this->name());
138  if (!incSvc.retrieve().isSuccess()) {
139  ATH_MSG_ERROR("Cannot get the IncidentSvc");
140  return StatusCode::FAILURE;
141  } else {
142  ATH_MSG_DEBUG("Retrieved IncidentSvc");
143  }
144  incSvc->addListener(this, "MetaDataStop", 50);
145  ATH_MSG_DEBUG("Added MetaDataStop listener");
146  }
147  ATH_MSG_DEBUG("End initialize");
148  return StatusCode::SUCCESS;
149 }

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

◆ isEventAccepted()

bool FilteredAlgorithm::isEventAccepted ( ) const
inherited

Test whether this event should be output.

Definition at line 128 of file FilteredAlgorithm.cxx.

129 {
130  bool result = true;
131  const EventContext& ctx = this->getContext();
132  if (ctx.valid()) {
133  result = m_decSvc->isEventAccepted(this->name(),ctx);
134  //ATH_MSG_DEBUG("res=" << result << " n=" << this->name() << " sl=" << ctx.slot() << " evt=" << ctx.eventID().event_number());
135  } else {
136  ATH_MSG_DEBUG("Not a threaded app");
137  result = m_decSvc->isEventAccepted(this->name());
138  }
139 
140  return result;
141 }

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

◆ selectedObjects()

IDataSelector* Athena::RootNtupleOutputStream::selectedObjects ( )
inlineprivate

Return the list of selected objects.

Definition at line 128 of file RootNtupleOutputStream.h.

128  {
129  return &m_objects;
130  }

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

◆ write()

StatusCode Athena::RootNtupleOutputStream::write ( )
virtual

Stream the data.

Definition at line 246 of file RootNtupleOutputStream.cxx.

247 {
248  bool failed = false;
249  // Clear any previously existing item list
250  clearSelection();
251  // Test whether this event should be output
252  if (isEventAccepted()) {
253  // Connect the output file to the service
254  if (m_streamer->connectOutput(m_outputName).isSuccess()) {
255  // First check if there are any new items in the list
257  StatusCode sc = m_streamer->streamObjects(m_objects);
258  // Do final check of streaming
259  if (!sc.isSuccess()) {
260  if (!sc.isRecoverable()) {
261  ATH_MSG_FATAL("streamObjects failed.");
262  failed = true;
263  } else {
264  ATH_MSG_DEBUG("streamObjects failed.");
265  }
266  }
267  sc = m_streamer->commitOutput();
268  if (!sc.isSuccess()) {
269  ATH_MSG_FATAL("commitOutput failed.");
270  failed = true;
271  }
272  clearSelection();
273  if (!failed) {
274  m_events++;
275  }
276  }
277  }
278 
279  return failed
280  ? StatusCode::FAILURE
281  : StatusCode::SUCCESS;
282 }

Friends And Related Function Documentation

◆ AlgFactory< Athena::RootNtupleOutputStream >

Definition at line 1 of file RootNtupleOutputStream.h.

Member Data Documentation

◆ m_acceptNames

StringArrayProperty FilteredAlgorithm::m_acceptNames
protectedinherited

Vector of names of Algorithms that this stream accepts.

Definition at line 38 of file FilteredAlgorithm.h.

◆ m_dataStore

ServiceHandle<StoreGateSvc> Athena::RootNtupleOutputStream::m_dataStore
protected

handle to the StoreGateSvc store where the data we want to write out resides

Definition at line 58 of file RootNtupleOutputStream.h.

◆ m_decSvc

ServiceHandle<IDecisionSvc> FilteredAlgorithm::m_decSvc
protectedinherited

Definition at line 44 of file FilteredAlgorithm.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_dynamicItemList

bool Athena::RootNtupleOutputStream::m_dynamicItemList
protected

dynamic output itemlist: if enabled rediscover object list to be written out at each event otherwise: reuse the one from the first event.

Definition at line 95 of file RootNtupleOutputStream.h.

◆ m_events

int Athena::RootNtupleOutputStream::m_events
protected

Number of events written to this output stream.

Definition at line 77 of file RootNtupleOutputStream.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_exemptPersToPers

std::vector<unsigned int> Athena::RootNtupleOutputStream::m_exemptPersToPers
protected

Definition at line 82 of file RootNtupleOutputStream.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_forceRead

bool Athena::RootNtupleOutputStream::m_forceRead
protected

set to true to force read of data objects in item list

Definition at line 79 of file RootNtupleOutputStream.h.

◆ m_helperTools

ToolHandleArray<IAthenaOutputTool> Athena::RootNtupleOutputStream::m_helperTools
protected

vector of AlgTools that that are executed by this stream

Definition at line 103 of file RootNtupleOutputStream.h.

◆ m_itemList

StringArrayProperty Athena::RootNtupleOutputStream::m_itemList
protected

Vector of item names.

Definition at line 73 of file RootNtupleOutputStream.h.

◆ m_itemListFromTool

bool Athena::RootNtupleOutputStream::m_itemListFromTool
protected

set to write out everything from input DataHeader

Definition at line 90 of file RootNtupleOutputStream.h.

◆ m_objects

IDataSelector Athena::RootNtupleOutputStream::m_objects
protected

Collection of objects beeing selected.

Definition at line 75 of file RootNtupleOutputStream.h.

◆ m_outputName

std::string Athena::RootNtupleOutputStream::m_outputName
protected

Name of the output file.

Definition at line 65 of file RootNtupleOutputStream.h.

◆ m_pCLIDSvc

IClassIDSvc_t Athena::RootNtupleOutputStream::m_pCLIDSvc
protected

Definition at line 70 of file RootNtupleOutputStream.h.

◆ m_persName

std::string Athena::RootNtupleOutputStream::m_persName
protected

Name of the persistency service capable to write data from the store.

Definition at line 61 of file RootNtupleOutputStream.h.

◆ m_persToPers

bool Athena::RootNtupleOutputStream::m_persToPers
protected

set to true to allow data objects being copied persistent to persistent (without SG retrieve).

Definition at line 81 of file RootNtupleOutputStream.h.

◆ m_processTag

StringProperty Athena::RootNtupleOutputStream::m_processTag
protected

tag of processing stage:

Definition at line 67 of file RootNtupleOutputStream.h.

◆ m_provideDef

bool Athena::RootNtupleOutputStream::m_provideDef
protected

set to true to allow defaults being provided for non-existent data objects.

Definition at line 84 of file RootNtupleOutputStream.h.

◆ m_requireNames

StringArrayProperty FilteredAlgorithm::m_requireNames
protectedinherited

Vector of names of Algorithms that this stream requires.

Definition at line 40 of file FilteredAlgorithm.h.

◆ m_selection

std::vector<SG::FolderItem> Athena::RootNtupleOutputStream::m_selection
protected

list of selected proxies.

Definition at line 98 of file RootNtupleOutputStream.h.

◆ m_streamer

ToolHandle<IAthenaOutputStreamTool> Athena::RootNtupleOutputStream::m_streamer
protected

pointer to AthenaOutputStreamTool

Definition at line 101 of file RootNtupleOutputStream.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vetoNames

StringArrayProperty FilteredAlgorithm::m_vetoNames
protectedinherited

Vector of names of Algorithms that this stream is vetoed by.

Definition at line 42 of file FilteredAlgorithm.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeOnExecute

bool Athena::RootNtupleOutputStream::m_writeOnExecute
protected

set to true to trigger streaming of data on execute()

Definition at line 86 of file RootNtupleOutputStream.h.

◆ m_writeOnFinalize

bool Athena::RootNtupleOutputStream::m_writeOnFinalize
protected

set to true to trigger streaming of data on finalize()

Definition at line 88 of file RootNtupleOutputStream.h.

◆ m_writingTool

StringProperty Athena::RootNtupleOutputStream::m_writingTool
protected

Name of the OutputStreamTool used for writing.

Definition at line 63 of file RootNtupleOutputStream.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Athena::RootNtupleOutputStream::m_streamer
ToolHandle< IAthenaOutputStreamTool > m_streamer
pointer to AthenaOutputStreamTool
Definition: RootNtupleOutputStream.h:101
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
get_generator_info.result
result
Definition: get_generator_info.py:21
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Athena::RootNtupleOutputStream::m_writeOnFinalize
bool m_writeOnFinalize
set to true to trigger streaming of data on finalize()
Definition: RootNtupleOutputStream.h:88
Athena::RootNtupleOutputStream::collectAllObjects
void collectAllObjects()
Collect data objects for output streamer list.
Definition: RootNtupleOutputStream.cxx:296
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
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
Athena::RootNtupleOutputStream::m_exemptPersToPers
std::vector< unsigned int > m_exemptPersToPers
Definition: RootNtupleOutputStream.h:82
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
FilteredAlgorithm::initialize
virtual StatusCode initialize()
Definition: FilteredAlgorithm.cxx:46
Athena::RootNtupleOutputStream::m_writeOnExecute
bool m_writeOnExecute
set to true to trigger streaming of data on execute()
Definition: RootNtupleOutputStream.h:86
Athena::RootNtupleOutputStream::m_events
int m_events
Number of events written to this output stream.
Definition: RootNtupleOutputStream.h:77
Athena::RootNtupleOutputStream::m_dynamicItemList
bool m_dynamicItemList
dynamic output itemlist: if enabled rediscover object list to be written out at each event otherwise:...
Definition: RootNtupleOutputStream.h:95
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Athena::RootNtupleOutputStream::clearSelection
void clearSelection()
Clear list of selected objects.
Definition: RootNtupleOutputStream.cxx:287
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
FilteredAlgorithm::isEventAccepted
bool isEventAccepted() const
Test whether this event should be output.
Definition: FilteredAlgorithm.cxx:128
Athena::RootNtupleOutputStream::m_objects
IDataSelector m_objects
Collection of objects beeing selected.
Definition: RootNtupleOutputStream.h:75
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Athena::RootNtupleOutputStream::m_itemList
StringArrayProperty m_itemList
Vector of item names.
Definition: RootNtupleOutputStream.h:73
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.
Athena::RootNtupleOutputStream::m_forceRead
bool m_forceRead
set to true to force read of data objects in item list
Definition: RootNtupleOutputStream.h:79
ReadCalibFromCool.keep
keep
Definition: ReadCalibFromCool.py:85
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
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
Athena::RootNtupleOutputStream::m_persName
std::string m_persName
Name of the persistency service capable to write data from the store.
Definition: RootNtupleOutputStream.h:61
Athena::RootNtupleOutputStream::write
virtual StatusCode write()
Stream the data.
Definition: RootNtupleOutputStream.cxx:246
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Athena::RootNtupleOutputStream::m_itemListFromTool
bool m_itemListFromTool
set to write out everything from input DataHeader
Definition: RootNtupleOutputStream.h:90
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
Athena::RootNtupleOutputStream::m_persToPers
bool m_persToPers
set to true to allow data objects being copied persistent to persistent (without SG retrieve).
Definition: RootNtupleOutputStream.h:81
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
selection
const std::string selection
Definition: fbtTestBasics.cxx:74
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:79
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
Athena::RootNtupleOutputStream::m_dataStore
ServiceHandle< StoreGateSvc > m_dataStore
handle to the StoreGateSvc store where the data we want to write out resides
Definition: RootNtupleOutputStream.h:58
Athena::RootNtupleOutputStream::m_helperTools
ToolHandleArray< IAthenaOutputTool > m_helperTools
vector of AlgTools that that are executed by this stream
Definition: RootNtupleOutputStream.h:103
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
FilteredAlgorithm::FilteredAlgorithm
FilteredAlgorithm()
Athena::RootNtupleOutputStream::m_selection
std::vector< SG::FolderItem > m_selection
list of selected proxies.
Definition: RootNtupleOutputStream.h:98
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
Athena::RootNtupleOutputStream::m_pCLIDSvc
IClassIDSvc_t m_pCLIDSvc
Definition: RootNtupleOutputStream.h:70
Athena::RootNtupleOutputStream::m_processTag
StringProperty m_processTag
tag of processing stage:
Definition: RootNtupleOutputStream.h:67
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
Athena::RootNtupleOutputStream::m_provideDef
bool m_provideDef
set to true to allow defaults being provided for non-existent data objects.
Definition: RootNtupleOutputStream.h:84
Athena::RootNtupleOutputStream::m_outputName
std::string m_outputName
Name of the output file.
Definition: RootNtupleOutputStream.h:65
python.PyAthena.obj
obj
Definition: PyAthena.py:132
FilteredAlgorithm::m_decSvc
ServiceHandle< IDecisionSvc > m_decSvc
Definition: FilteredAlgorithm.h:44
SG::DataProxy
Definition: DataProxy.h:45
SG::FolderItem
a Folder item (data object) is identified by the clid/key pair
Definition: SGFolderItem.h:24
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
ServiceHandle< IIncidentSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37