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

Test Algorithm POOL I/O tests, writes AthenaPoolData objects to the transient store. More...

#include <AthenaPoolTestDataWriter.h>

Inheritance diagram for AthenaPoolTestDataWriter:
Collaboration diagram for AthenaPoolTestDataWriter:

Public Member Functions

 AthenaPoolTestDataWriter (const std::string &name, ISvcLocator *pSvcLocator)
 Algorithm constructor. More...
 
 ~AthenaPoolTestDataWriter ()
 Algorithm destructor. 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

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

BooleanProperty m_partialCreate
 Create only part of the collections. More...
 
BooleanProperty m_readOtherHalf
 For partial create read second half of collections. More...
 
BooleanProperty m_readFirstHalf
 For partial create read first half of collections. 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 POOL I/O tests, writes AthenaPoolData objects to the transient store.

Definition at line 34 of file AthenaPoolTestDataWriter.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

◆ AthenaPoolTestDataWriter()

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

Algorithm constructor.

Definition at line 39 of file AthenaPoolTestDataWriter.cxx.

40  :
41  AthAlgorithm(name, pSvcLocator),
42  m_partialCreate(false),
43  m_readOtherHalf(false),
44  m_readFirstHalf(false)
45 {
46  declareProperty("PartialCreate", m_partialCreate);
47  declareProperty("ReadOtherHalf", m_readOtherHalf);
48  declareProperty("ReadFirstHalf", m_readFirstHalf);
49 }

◆ ~AthenaPoolTestDataWriter()

AthenaPoolTestDataWriter::~AthenaPoolTestDataWriter ( )

Algorithm destructor.

Definition at line 51 of file AthenaPoolTestDataWriter.cxx.

52 {}

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode AthenaPoolTestDataWriter::execute ( )
virtual

Algorithm execute once per event.

Definition at line 59 of file AthenaPoolTestDataWriter.cxx.

60 {
61  ATH_MSG_DEBUG("Executing AthenaPoolTestDataWriter" );
62 
63 
64  // Tests:
65  //
66 
67  // collections 1-3: test of storing abstract base collections
68  // and data objects
69  // collections 4,5: test of transient base class attributes
70  // collection 6: test of storing DataVector<const obj>*
71 
75  IAthenaPoolTestCollection* col4 = nullptr;
76  IAthenaPoolTestCollection* col5 = nullptr;
77  if (!m_partialCreate) {
78  col4 = new IAthenaPoolTestCollection();
79  col5 = new IAthenaPoolTestCollection();
80  }
81 
82 
84 
85  // Create AthenaPoolTestA's only
86  for (int i = 0; i < 5; ++i) {
87  data = new AthenaPoolTestA(i+1, i+2);
88  col1->push_back(data);
89  }
90 
91 
92  // Create AthenaPoolTestB's only
93  for (int i = 10; i < 15; ++i) {
94  data = new AthenaPoolTestB(i+1, i+2);
95  col2->push_back(data);
96  }
97 
98  // Create AthenaPoolTestA's and B's
99  for (int i = 20; i < 26; ++i) {
100  if (i < 23) {
101  data = new AthenaPoolTestA(i+1, i+2);
102  }
103  else {
104  data = new AthenaPoolTestB(i+1, i+2);
105  }
106  col3->push_back(data);
107  }
108 
109  ATH_MSG_DEBUG("Collection of A's" );
110 
113  for (; it != last; ++it) {
114  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
115  }
116 
117  ATH_MSG_DEBUG("Collection of B's" );
118  it = col2->begin();
119  last = col2->end();
120  for (; it != last; ++it) {
121  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
122  }
123 
124  ATH_MSG_DEBUG("Collection of A's and B's" );
125  it = col3->begin();
126  last = col3->end();
127  for (; it != last; ++it) {
128  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
129  }
130 
131  if (!m_partialCreate) {
132  // Create AthenaPoolTestC's
133  for (int i = 0; i < 5; ++i) {
134  data = new AthenaPoolTestC(i+1, i+2, i+3, i+4);
135  col4->push_back(data);
136  }
137 
138 
139  // Create AthenaPoolTestD's only
140  for (int i = 10; i < 15; ++i) {
141  data = new AthenaPoolTestD(i+1, i+2, i+3, i+4, i+5, i+6);
142  col5->push_back(data);
143  }
144 
145  ATH_MSG_DEBUG("Collection of C's" );
146  it = col4->begin();
147  last = col4->end();
148  for (; it != last; ++it) {
149  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
150  }
151 
152  ATH_MSG_DEBUG("Collection of D's" );
153  it = col5->begin();
154  last = col5->end();
155  for (; it != last; ++it) {
156  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
157  }
158  }
159 
160 
161 
163  const IAthenaPoolTestCollection* col = nullptr;
164  ATH_CHECK( evtStore()->retrieve(col, "AthenaPoolTestCollection_4") );
165 
166  ATH_MSG_DEBUG("Collection of C's" );
167  it = col->begin();
168  last = col->end();
169  for (; it != last; ++it) {
170  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
171  }
172 
173  ATH_CHECK( evtStore()->retrieve(col, "AthenaPoolTestCollection_5") );
174 
175  ATH_MSG_DEBUG("Collection of D's" );
176  it = col->begin();
177  last = col->end();
178  for (; it != last; ++it) {
179  ATH_MSG_DEBUG((*it)->printWhoYouAre() );
180  }
181  }
182 
184  // Try to first read the collections that we want to write
185  // again => this should give and error!!
186  const IAthenaPoolTestCollection* col = nullptr;
187  ATH_CHECK( evtStore()->retrieve(col, "AthenaPoolTestCollection_1") );
188  ATH_CHECK( evtStore()->retrieve(col, "AthenaPoolTestCollection_2") );
189  ATH_CHECK( evtStore()->retrieve(col, "AthenaPoolTestCollection_3") );
190  }
191 
192 
193  // Register collections in the Gaudi Transient Store:
194 
195  ATH_CHECK( evtStore()->record(col1, "AthenaPoolTestCollection_1") );
196  ATH_CHECK( evtStore()->record(col2, "AthenaPoolTestCollection_2") );
197  ATH_CHECK( evtStore()->record(col3, "AthenaPoolTestCollection_3") );
198  if (!m_partialCreate) {
199  ATH_CHECK( evtStore()->record(col4, "AthenaPoolTestCollection_4") );
200  ATH_CHECK( evtStore()->record(col5, "AthenaPoolTestCollection_5") );
201  }
202 
203 
204  // Test for CLHEP matrix
205 
206  // Now create a write 10 Hit objects
207  int nd = 0;
208  double k = 7.;
209  for ( int i = 0; i < 3; ++i ) {
210 
212  for ( int j = 0; j < 2; ++j ) {
213  CLHEP::HepMatrix* mat = new CLHEP::HepMatrix( 4 + j, 2 + 2*i );
214  CLHEP::HepMatrix& matrx = *mat;
215  for (int i = 0; i < matrx.num_row(); ++i) {
216  for (int j = 0; j < matrx.num_col(); ++j) {
217  matrx[i][j] = k;
218  k *= 5.0;
219  }
220  }
221  matrix->addMatrix( mat );
222  }
223 
224  // set transform
225  HepGeom::Transform3D trans1(HepGeom::Point3D<double>( i, 0, 0),
226  HepGeom::Point3D<double>( 0, 1, 0),
227  HepGeom::Point3D<double>( 0, 0, 1),
228  HepGeom::Point3D<double>(-i, 0, 0),
229  HepGeom::Point3D<double>( 0, 1, 0),
230  HepGeom::Point3D<double>( 0, 0, 1));
231  matrix->setTransform(trans1);
232 
233  std::stringstream stream;
234  stream << "AthenaPoolTestMatrix_" << i;
235  std::string key(stream.str());
236  ATH_CHECK( evtStore()->record(matrix, key) );
237  ATH_MSG_DEBUG("Registering matrix " << i + 1 << " " << key );
238 
239  const HepGeom::Point3D<double>& point = matrix->point();
240  const HepGeom::Point3D<double>& point1 = matrix->point1();
241  ATH_MSG_DEBUG(" Points (by value,by ptr) x,y,z : "
242  << point.x() << " "
243  << point.y() << " "
244  << point.z() << " "
245  << ", x,y,z "
246  << point1.x() << " "
247  << point1.y() << " "
248  << point1.z() << " ");
249  const CLHEP::HepMatrix& smallMatrix = matrix->smallMatrix();
250  ATH_MSG_DEBUG(" Small matrix : ( " << smallMatrix.num_row() << ", " << smallMatrix.num_col() << " ) " );
251 
252  stream.clear();
253  for (int i = 0; i < smallMatrix.num_row(); ++i) {
254  for (int j = 0; j < smallMatrix.num_col(); ++ j) {
255  stream << smallMatrix[i][j] << ", ";
256  }
257  }
258  ATH_MSG_VERBOSE(" values: " << stream.str());
259  nd += smallMatrix.num_row()*smallMatrix.num_col();
260 
261  const CLHEP::HepMatrix& bigMatrix = matrix->bigMatrix();
262  ATH_MSG_DEBUG(" Big matrix : ( " << bigMatrix.num_row() << ", " << bigMatrix.num_col() << " ) " );
263 
264  stream.clear();
265  for (int i = 0; i < bigMatrix.num_row(); ++i) {
266  for (int j = 0; j < bigMatrix.num_col(); ++ j) {
267  stream << bigMatrix[i][j] << ", ";
268  }
269  }
270  ATH_MSG_VERBOSE(" values: " << stream.str());
271  nd += bigMatrix.num_row()*bigMatrix.num_col();
272 
273  ATH_MSG_DEBUG(" Other matrices : " );
274  for ( int i = 0; i < matrix->numberOfMatrices(); ++i ) {
275  const CLHEP::HepMatrix& matrx = matrix->matrix( i );
276  ATH_MSG_DEBUG(" ( " << matrx.num_row() << ", " << matrx.num_col() << " ) " );
277  stream.clear();
278  for (int i = 0; i < matrx.num_row(); ++i) {
279  for (int j = 0; j < matrx.num_col(); ++ j) {
280  stream << matrx[i][j] << ", ";
281  }
282  }
283  ATH_MSG_VERBOSE(" values: " << stream.str());
284 
285  nd += matrx.num_row()*matrx.num_col();
286 
287  }
288 
289  nd += 3;
290 
291  ATH_MSG_DEBUG(" N doubles : " << nd );
292 
293 
294  // print out matrix maps
295  AthenaPoolTestMatrix::matrixMaps_t mats = matrix->matrixMaps();
296 
297  ATH_MSG_DEBUG(" Matrix maps : " << mats.size() );
298  std::map<unsigned int, CLHEP::HepMatrix>& mp0 = mats[0];
299  std::map<unsigned int, CLHEP::HepMatrix>& mp1 = mats[1];
300  std::map<unsigned int, CLHEP::HepMatrix>::const_iterator itmp = mp0.begin();
301  ATH_MSG_DEBUG(" Key, row, column " << (*itmp).first << " "
302  << (*itmp).second.num_row() << ", " << (*itmp).second.num_col() );
303  ++itmp;
304  ATH_MSG_DEBUG(" Key, row, column " << (*itmp).first << " "
305  << (*itmp).second.num_row() << ", " << (*itmp).second.num_col() );
306  itmp = mp1.begin();
307  ATH_MSG_DEBUG(" Key, row, column " << (*itmp).first << " "
308  << (*itmp).second.num_row() << ", " << (*itmp).second.num_col() );
309  ++itmp;
310  ATH_MSG_DEBUG(" Key, row, column " << (*itmp).first << " "
311  << (*itmp).second.num_row() << ", " << (*itmp).second.num_col() );
312 
313  // Print out the transform:
314  ATH_MSG_DEBUG(" Matrix transform: " );
315  const HepGeom::Transform3D& trans = matrix->trans();
316  ATH_MSG_DEBUG(" Matrix transform: " );
317  ATH_MSG_DEBUG(" xx " << trans(0,0) );
318  ATH_MSG_DEBUG(" xy " << trans(0,1) );
319  ATH_MSG_DEBUG(" xz " << trans(0,2) );
320  ATH_MSG_DEBUG(" yx " << trans(1,0) );
321  ATH_MSG_DEBUG(" yy " << trans(1,1) );
322  ATH_MSG_DEBUG(" yz " << trans(1,2) );
323  ATH_MSG_DEBUG(" zx " << trans(2,0) );
324  ATH_MSG_DEBUG(" zy " << trans(2,1) );
325  ATH_MSG_DEBUG(" zz " << trans(2,2) );
326  ATH_MSG_DEBUG(" dx " << trans(3,0) );
327  ATH_MSG_DEBUG(" dy " << trans(3,1) );
328  ATH_MSG_DEBUG(" dz " << trans(3,2) );
329 
330  }
331 
332  // Fill and write out nested collections
333 
334  AthenaPoolTestMap* tmapPtr = new AthenaPoolTestMap();
335  AthenaPoolTestMap& tmap = *tmapPtr;
336 
337  typedef AthenaPoolTestMapData::Deposit deposit_t;
338  typedef std::vector<AthenaPoolTestMapData::Deposit> deposit_vec;
339 
340  deposit_vec deposits;
341 
342  deposit_t deposit;
343 
344  for (unsigned int j = 0; j < 10; ++j) {
345  for (unsigned int i = 0; i < 10; ++i) {
346 
347  deposit.first = AthenaPoolTestMapDataLink(i, i + 10);
348  deposit.second = i + 20;
349  deposits.push_back(deposit);
350  }
351 
352  tmap[j*5] = AthenaPoolTestMapData(deposits, j);
353  deposits.clear();
354  }
355 
356  // Printout data
357  AthenaPoolTestMap::const_iterator itm = tmap.begin();
358  AthenaPoolTestMap::const_iterator endm = tmap.end();
359  for (; itm != endm; ++itm) {
360 
361  deposits.clear();
362  (*itm).second.deposits(deposits);
363  std::stringstream stream;
364  for (unsigned int i = 0; i < deposits.size(); ++i) {
365  AthenaPoolTestMapDataLink& link = deposits[i].first;
366  stream << link.barcode() << " "
367  << link.eventIndex() << " "
368  << deposits[i].second << " ";
369  }
370  ATH_MSG_DEBUG("AthenaPoolTestMap: key " << (*itm).first
371  << " word " << (*itm).second.word()
372  << " Deposits: (barCode, evtIndx, wgt) " << stream.str());
373  }
374 
375  ATH_CHECK( evtStore()->record(tmapPtr, "AthenaPoolMap") );
376 
377 
378  // Fill and write out dummy classes
379  dummy_A* dummyA = new dummy_A();
380  const std::vector<dummy_B>& b = dummyA->dummy();
381  ATH_MSG_DEBUG("Dummy A: size B " << b.size() );
382  for (unsigned int i = 0; i < b.size(); ++i) {
383  const std::vector<dummy_C>& c = b[i].dummy();
384  ATH_MSG_DEBUG("Dummy B: size C " << c.size() );
385  for (unsigned int j = 0; j < c.size(); ++j) {
386  ATH_MSG_DEBUG("i,c: " << j << " " << c[j].value() );
387  }
388  }
389  ATH_CHECK( evtStore()->record(dummyA, "Dummy_A") );
390 
391 
392  // Fill and write out dummy E classes
393  dummy_E* dummyE = new dummy_E();
394  dummyE->setData();
395  const std::vector<const dummy_D*>& d = dummyE->dummy();
396  ATH_MSG_DEBUG("Dummy E: size D " << d.size() );
397  for (unsigned int i = 0; i < d.size(); ++i) {
398  ATH_MSG_DEBUG("Dummy D: value " << d[i]->value() );
399  }
400  ATH_CHECK( evtStore()->record(dummyE, "Dummy_E") );
401 
402 
403  // Write a PileupEventInfo
404 
405  // Old-style code munging EventInfo in place --- not thread-safe.
406  const EventInfo * evt = nullptr;
407  ATH_CHECK( evtStore()->retrieve( evt, "McEventInfo" ) );
408  // Add in weight
409  EventType* eventType = const_cast<EventType*>(evt->event_type());
410  eventType->set_mc_event_weight(0.9876, 0, 3);
411  eventType->set_mc_event_weight(1.9876, 1);
412  eventType->set_mc_event_weight(2.9876, 2);
413  ATH_MSG_DEBUG( "Event ID: ["
414  << evt->event_ID()->run_number() << ","
415  << evt->event_ID()->event_number() << ":"
416  << evt->event_ID()->time_stamp() << "] " );
417  ATH_MSG_DEBUG( "Event type: user type "
418  << evt->event_type()->user_type() << " weight 0: "
419  << eventType->mc_event_weight() << " weight 1: "
420  << eventType->mc_event_weight(1) << " weight 2: "
421  << eventType->mc_event_weight(2) );
422  // Set lumi interactions
423  EventInfo * evt1 = const_cast<EventInfo*>(evt);
424  evt1->setActualInteractionsPerCrossing(35.238);
425  evt1->setAverageInteractionsPerCrossing(169.415);
426  ATH_MSG_DEBUG( "Setting actual interatctions per crossing: "
427  << evt1->actualInteractionsPerCrossing() << " and ave: "
428  << evt1->averageInteractionsPerCrossing() );
429  // Add in subdet flags
430  unsigned int flags = 0;
431  // We only loop up to Lumi and not nDets since Lumi is set separately
432  for (unsigned int i = 0; i < EventInfo::Lumi; ++i) {
433  flags = 3*i + 0xFFFFFF00;
435  ATH_MSG_ERROR( "Error setting flag: i, flags " << i << " " << MSG::hex << flags << MSG::dec );
436  }
437  else {
438  ATH_MSG_DEBUG( "Setting flag: i, flags " << i << " " << MSG::hex << flags << " "
439  << " flags " << evt1->eventFlags(EventInfo::EventFlagSubDet(i))
440  << MSG::dec );
441  }
442  if (!evt1->setEventFlagBit(EventInfo::EventFlagSubDet(i), 6)) {
443  ATH_MSG_ERROR( "Error setting bit 6 for subDet " << i );
444  }
445  else {
446  ATH_MSG_DEBUG( "Setting bit 6: i, isSet " << i << " "
448  << MSG::hex << " flags " << evt1->eventFlags(EventInfo::EventFlagSubDet(i))
449  << MSG::dec );
450  }
451  if (!evt1->setEventFlagBit(EventInfo::EventFlagSubDet(i), 10, false)) {
452  ATH_MSG_ERROR( "Error unsetting bit 10 for subDet " << i );
453  }
454  else {
455  ATH_MSG_DEBUG( "Unsetting bit 10: i, isSet " << i << " "
457  << MSG::hex << " flags " << evt1->eventFlags(EventInfo::EventFlagSubDet(i))
458  << MSG::dec );
459  }
460  if (evt1->setEventFlagBit(EventInfo::EventFlagSubDet(i), 29)) {
461  ATH_MSG_ERROR( "Error trying to set bit 29 for subDet " << i );
462  }
463  else {
464  ATH_MSG_DEBUG( "Returned false for trying to set bit 29 for subDet " << i << " "
465  );
466  }
467 
469  if (i%3 == 1) state = EventInfo::Warning;
470  else if (i%3 == 2) state = EventInfo::Error;
471  if (!evt1->setErrorState(EventInfo::EventFlagSubDet(i), state)) {
472  ATH_MSG_ERROR( "Error setting error state: i, state " << i << " " << state );
473  }
474  else {
475  ATH_MSG_DEBUG( "Setting error state: i, state " << i << " " << state );
476  }
478  if (error == EventInfo::NotSet)
479  ATH_MSG_DEBUG( "Subdet: " << i << " error state: NotSet " << error );
480  else if (error == EventInfo::Warning)
481  ATH_MSG_DEBUG( "Subdet: " << i << " error state: Warning " << error );
482  else if (error == EventInfo::Error)
483  ATH_MSG_DEBUG( "Subdet: " << i << " error state: Error " << error );
484  }
485 
486 
487  EventID* pOvrID = new EventID(evt->event_ID()->run_number(),
488  evt->event_ID()->event_number(),
489  12, // time_stamp,
490  13, // time_stamp_ns_offset,
491  14, // lumi_block,
492  15, // bunch_crossing_id,
493  16, // detector_mask0
494  17, // detector_mask1
495  18, // detector_mask2
496  19); // detector_mask3
497  EventType* pOvrEt = new EventType(); //FIXME
498  pOvrEt->set_user_type("Overlaid"); //FIXME
499 
500 
501  // Add in trigger info to the existing event info
502  std::vector<unsigned int> level1TriggerInfo;
503  level1TriggerInfo.push_back(14);
504  level1TriggerInfo.push_back(15);
505  std::vector<unsigned int> level2TriggerInfo;
506  level2TriggerInfo.push_back(10);
507  level2TriggerInfo.push_back(11);
508  std::vector<unsigned int> eventFilterInfo;
509  eventFilterInfo.push_back(12);
510  eventFilterInfo.push_back(13);
511  std::vector<TriggerInfo::StreamTag> streamTags;
512  streamTags.push_back(TriggerInfo::StreamTag("StreamA", "TypeA", true));
513  streamTags.push_back(TriggerInfo::StreamTag("StreamB", "TypeB", false));
514 
515  TriggerInfo* triggerInfo = new TriggerInfo(7, 8, 9,
516  level1TriggerInfo,
517  level2TriggerInfo,
518  eventFilterInfo,
519  streamTags);
520 
521  PileUpEventInfo* pOverEvent = new PileUpEventInfo(pOvrID, pOvrEt, triggerInfo);
522  // register as sub event of the overlaid
523  auto newEvt = std::make_unique<EventInfo>(*evt);
524 
525  // pOverEvent->addSubEvt(25, PileUpTimeEventIndex::MinimumBias, newEvt, storeGate);
526  pOverEvent->addSubEvt(25, PileUpTimeEventIndex::MinimumBias, std::move(newEvt), nullptr);
527  ATH_CHECK( evtStore()->record(pOverEvent, "OverlayEvent") );
528 
529  // Printout
530  PileUpEventInfo* pevt = pOverEvent;
531 
532  ATH_MSG_DEBUG("PileUpEventInfo");
533  ATH_MSG_DEBUG("Event ID: ["
534  << pevt->event_ID()->run_number() << ","
535  << pevt->event_ID()->event_number() << ":"
536  << pevt->event_ID()->time_stamp() << "] ");
537  ATH_MSG_DEBUG(*(pevt->event_ID()));
538  ATH_MSG_DEBUG("Event type: user type "
539  << pevt->event_type()->user_type());
540 
541  std::stringstream stream;
542  stream << "Trigger info: status " << pevt->trigger_info()->statusElement()
543  << " extLvl1ID " << pevt->trigger_info()->extendedLevel1ID()
544  << " lvl1Type " << pevt->trigger_info()->level1TriggerType()
545  << " lvl1Info ";
546  for (unsigned int i = 0; i < pevt->trigger_info()->level1TriggerInfo().size(); ++i) {
547  stream << pevt->trigger_info()->level1TriggerInfo()[i] << " ";
548  }
549  stream << "lvl2Info ";
550  for (unsigned int i = 0; i < pevt->trigger_info()->level2TriggerInfo().size(); ++i) {
551  stream << pevt->trigger_info()->level2TriggerInfo()[i] << " ";
552  }
553  stream << "EventFilterInfo ";
554  for (unsigned int i = 0; i < pevt->trigger_info()->eventFilterInfo().size(); ++i) {
555  stream << pevt->trigger_info()->eventFilterInfo()[i] << " ";
556  }
557  stream << "EventFilterInfo ";
558  for (unsigned int i = 0; i < pevt->trigger_info()->streamTags().size(); ++i) {
559  stream << " i " << i << " name " << pevt->trigger_info()->streamTags()[i].name()
560  << " type " << pevt->trigger_info()->streamTags()[i].type()
561  << " ObeyLumi " << pevt->trigger_info()->streamTags()[i].obeysLumiblock();
562  }
563  ATH_MSG_DEBUG(stream.str());
564 
565  // Get normal event info as a sub-event info
566  ATH_MSG_DEBUG("SubEventInfos");
569  if (it1 == end1) {
570  ATH_MSG_DEBUG("None found" );
571  }
572  for (; it1 != end1; ++it1) {
573  const EventInfo* sevt = (*it1).pSubEvt;
574  ATH_MSG_DEBUG("Time, index "
575  << (*it1).time() << " " << (*it1).index()
576  );
577  if (sevt) {
578  ATH_MSG_DEBUG("Event ID: ["
579  << sevt->event_ID()->run_number() << ","
580  << sevt->event_ID()->event_number() << ":"
581  << sevt->event_ID()->time_stamp() << "] ");
582  ATH_MSG_DEBUG("Event type: user type "
583  << sevt->event_type()->user_type());
584  ATH_MSG_DEBUG("Pileup time, index type "
585  << it1->time() << " " << it1->index());
586  }
587  else {
588  ATH_MSG_DEBUG("Subevent is null ptr ");
589  }
590  }
591  return StatusCode::SUCCESS;
592 }

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

Algorithm finalize at end of job.

Definition at line 594 of file AthenaPoolTestDataWriter.cxx.

595 {
596  return StatusCode::SUCCESS;
597 }

◆ initialize()

StatusCode AthenaPoolTestDataWriter::initialize ( )
virtual

Algorithm initialize at begin of job.

Definition at line 54 of file AthenaPoolTestDataWriter.cxx.

55 {
56  return StatusCode::SUCCESS;
57 }

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

BooleanProperty AthenaPoolTestDataWriter::m_partialCreate
private

Create only part of the collections.

Definition at line 57 of file AthenaPoolTestDataWriter.h.

◆ m_readFirstHalf

BooleanProperty AthenaPoolTestDataWriter::m_readFirstHalf
private

For partial create read first half of collections.

Definition at line 63 of file AthenaPoolTestDataWriter.h.

◆ m_readOtherHalf

BooleanProperty AthenaPoolTestDataWriter::m_readOtherHalf
private

For partial create read second half of collections.

Definition at line 60 of file AthenaPoolTestDataWriter.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
dummy_E::setData
void setData()
Definition: dummy_E.h:45
EventInfo::Error
@ Error
Definition: EventInfo/EventInfo/EventInfo.h:60
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
EventInfo::isEventFlagBitSet
bool isEventFlagBitSet(EventFlagSubDet subDet, unsigned char bit) const
check for a event flag bit for a particular sub-detector
Definition: EventInfo/EventInfo/EventInfo.h:247
EventType::user_type
std::string user_type(void) const
Access to user type.
Definition: EventType.cxx:94
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
TriggerInfo::streamTags
const std::vector< StreamTag > & streamTags() const
get stream tags
Definition: TriggerInfo.cxx:158
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
EventInfo::Warning
@ Warning
Definition: EventInfo/EventInfo/EventInfo.h:60
EventInfo::averageInteractionsPerCrossing
float averageInteractionsPerCrossing() const
average interactions per crossing for all BCIDs - for out-of-time pile-up
Definition: EventInfo/EventInfo/EventInfo.h:282
AthenaPoolTestMapData
Definition: AthenaPoolTestMapData.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
AthenaPoolTestRead.flags
flags
Definition: AthenaPoolTestRead.py:8
hist_file_dump.d
d
Definition: hist_file_dump.py:137
AthenaPoolTestMatrix::matrixMaps_t
std::vector< std::map< unsigned int, CLHEP::HepMatrix > > matrixMaps_t
Definition: AthenaPoolTestMatrix.h:42
EventType
This class represents the "type of event" where the type is given by one or more "characteristics".
Definition: EventType.h:92
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
skel.it
it
Definition: skel.GENtoEVGEN.py:423
AthenaPoolTestB
Simple class with int,int,float,double for testing pool i/o from Athena.
Definition: AthenaPoolTestB.h:39
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.value
value
Definition: athena.py:122
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
EventType::mc_event_weight
float mc_event_weight(unsigned int iweight=0) const
Access to MC weight.
Definition: EventType.cxx:175
IAthenaPoolTestCollection
Interface class for AthenaPoolTest i/o tests with DataVector.
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
EventInfo::errorState
EventFlagErrorState errorState(EventFlagSubDet subDet) const
return error state for a particular sub-detector
Definition: EventInfo/EventInfo/EventInfo.h:260
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
EventInfo::setEventFlagBit
bool setEventFlagBit(EventFlagSubDet subDet, unsigned char bit, bool set=true)
Set a bit for an event flag of a particular sub detector.
Definition: EventInfo.cxx:149
TriggerInfo::level1TriggerInfo
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
Definition: TriggerInfo.cxx:143
IAthenaPoolTestCollection
DataVector< IAthenaPoolTestData > IAthenaPoolTestCollection
Definition: IAthenaPoolTestCollection.h:39
PileUpTimeEventIndex::MinimumBias
@ MinimumBias
Definition: PileUpTimeEventIndex.h:17
AthenaPoolTestD
Simple class with HepGeom::Point3D<double> for testing pool i/o from Athena.
Definition: AthenaPoolTestD.h:33
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
EventInfo::EventFlagErrorState
EventFlagErrorState
Definition: EventInfo/EventInfo/EventInfo.h:59
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
EventInfo::setErrorState
bool setErrorState(EventFlagSubDet subDet, EventFlagErrorState errorState)
Set error state flag for a particular sub detector.
Definition: EventInfo.cxx:168
TriggerInfo::StreamTag
Definition: TriggerInfo.h:87
PileUpEventInfo::beginSubEvt
SubEvent::iterator beginSubEvt()
Definition: PileUpEventInfo.h:131
EventInfo::setActualInteractionsPerCrossing
void setActualInteractionsPerCrossing(float interactions)
Setting the number of interactions per crossing:
Definition: EventInfo.cxx:185
AthenaPoolTestA
Simple class with two int's for testing pool i/o from Athena.
Definition: AthenaPoolTestA.h:40
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.
lumiFormat.i
int i
Definition: lumiFormat.py:92
EventInfo::eventFlags
unsigned int eventFlags(EventFlagSubDet subDet) const
event flags for a particular sub-detector
Definition: EventInfo/EventInfo/EventInfo.h:240
EventInfo::NotSet
@ NotSet
Definition: EventInfo/EventInfo/EventInfo.h:60
PileUpEventInfo
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Old PileUpEventInfo
Definition: EventTPCnv.cxx:87
DetDescrDictionaryDict::it1
std::vector< HWIdentifier >::iterator it1
Definition: DetDescrDictionaryDict.h:17
TriggerInfo::level2TriggerInfo
const std::vector< number_type > & level2TriggerInfo() const
get level2 trigger info
Definition: TriggerInfo.cxx:148
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
EventInfo::event_ID
EventID * event_ID()
the unique identification of the event.
Definition: EventInfo/EventInfo/EventInfo.h:210
AthenaPoolTestDataWriter::m_readOtherHalf
BooleanProperty m_readOtherHalf
For partial create read second half of collections.
Definition: AthenaPoolTestDataWriter.h:60
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
PileUpEventInfo::addSubEvt
void addSubEvt(time_type t, PileUpTimeEventIndex::PileUpType puType, const EventInfo *pse, StoreGateSvc *psg)
setter for the subEvt collection t=0(ns) for the original event
Definition: PileUpEventInfo.h:104
AthenaPoolTestMapData::Deposit
std::pair< AthenaPoolTestMapDataLink, float > Deposit
Definition: AthenaPoolTestMapData.h:38
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IAthenaPoolTestData
Interface class for AthenaPoolTest i/o tests.
Definition: IAthenaPoolTestData.h:38
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
AthenaPoolTestDataWriter::m_partialCreate
BooleanProperty m_partialCreate
Create only part of the collections.
Definition: AthenaPoolTestDataWriter.h:57
AthenaPoolTestC
Simple class with four int's divided among protected/private for testing pool i/o from Athena.
Definition: AthenaPoolTestC.h:40
TriggerInfo::level1TriggerType
number_type level1TriggerType() const
get level1 trigger type
Definition: TriggerInfo.cxx:138
EventInfo::setAverageInteractionsPerCrossing
void setAverageInteractionsPerCrossing(float interactions)
average interactions per crossing for all BCIDs - for out-of-time pile-up
Definition: EventInfo.cxx:202
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
AthenaPoolTestDataWriter::m_readFirstHalf
BooleanProperty m_readFirstHalf
For partial create read first half of collections.
Definition: AthenaPoolTestDataWriter.h:63
dummy_A
test nested vectors - problem seen in root3/4 transition
Definition: dummy_A.h:51
TriggerInfo
This class contains trigger related information.
Definition: TriggerInfo.h:77
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
EventInfo
This class provides general information about an event. Event information is provided by the accessor...
Definition: EventInfo/EventInfo/EventInfo.h:42
AthenaPoolTestMap
Definition: AthenaPoolTestMap.h:30
query_example.col
col
Definition: query_example.py:7
dummy_E::dummy
const std::vector< const dummy_D * > & dummy() const
Definition: dummy_E.h:47
EventType::set_mc_event_weight
void set_mc_event_weight(float weight, unsigned int iweight=0, unsigned int nWeightsMax=0)
Add in MC weight. For more than 1 weight, add with iweight > 0.
Definition: EventType.cxx:207
PileUpEventInfo
This class provides information about an overlaid event. It extends EventInfo with a list of sub-evts...
Definition: PileUpEventInfo.h:37
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:66
TriggerInfo::extendedLevel1ID
number_type extendedLevel1ID() const
get extended level1 ID
Definition: TriggerInfo.cxx:133
a
TList * a
Definition: liststreamerinfos.cxx:10
TriggerInfo::eventFilterInfo
const std::vector< number_type > & eventFilterInfo() const
get event filter trigger info
Definition: TriggerInfo.cxx:153
EventType::set_user_type
void set_user_type(const std::string &user_type)
Add user (string) type.
Definition: EventType.cxx:57
h
EventInfo::Lumi
@ Lumi
Definition: EventInfo/EventInfo/EventInfo.h:54
dummy_E
Test derived class that contains a list of parent classes.
Definition: dummy_E.h:42
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
PileUpEventInfo::SubEvent::const_iterator
std::list< SubEvent >::const_iterator const_iterator
Definition: PileUpEventInfo.h:97
EventInfo::trigger_info
TriggerInfo * trigger_info()
trigger information (ptr may be NULL)
Definition: EventInfo/EventInfo/EventInfo.h:230
EventInfo::setEventFlags
bool setEventFlags(EventFlagSubDet subDet, unsigned int flags)
Set event flag for a particular sub detector - maximun size is 28 bits.
Definition: EventInfo.cxx:136
EventID
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
Definition: EventID.h:35
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
EventInfo::EventFlagSubDet
EventFlagSubDet
Definition: EventInfo/EventInfo/EventInfo.h:53
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
dummy_A::dummy
const std::vector< dummy_B > & dummy() const
Definition: dummy_A.h:55
error
Definition: IImpactPoint3dEstimator.h:70
AthenaPoolTestMatrix
Simple class with various CLHEP classes for testing pool i/o from Athena.
Definition: AthenaPoolTestMatrix.h:36
TriggerInfo::statusElement
number_type statusElement() const
get status element
Definition: TriggerInfo.cxx:128
python.compressB64.c
def c
Definition: compressB64.py:93
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
EventInfo::event_type
EventType * event_type()
the type of the event, e.g. simulation, testbeam, etc
Definition: EventInfo/EventInfo/EventInfo.h:220
PileUpEventInfo::endSubEvt
SubEvent::iterator endSubEvt()
Definition: PileUpEventInfo.h:132
fitman.k
k
Definition: fitman.py:528
EventInfo::actualInteractionsPerCrossing
float actualInteractionsPerCrossing() const
Access to number of interactions per crossing:
Definition: EventInfo/EventInfo/EventInfo.h:269
ServiceHandle< ICondSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37