ATLAS Offline Software
AthenaPoolTestDataWriter.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
17 // INCLUDE HEADER FILES:
18 
20 
30 #include "EventInfo/EventInfo.h"
33 #include "EventInfo/EventID.h"
34 #include "EventInfo/EventType.h"
35 #include "EventInfo/TriggerInfo.h"
36 
37 #include <sstream>
38 
40  ISvcLocator* pSvcLocator):
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 }
50 
52 {}
53 
55 {
56  return StatusCode::SUCCESS;
57 }
58 
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 }
593 
595 {
596  return StatusCode::SUCCESS;
597 }
598 
599 
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
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
PileUpEventInfo.h
This class provides information about an overlaid event. It extends EventInfo with a list of sub-evts...
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
AthenaPoolTestDataWriter::~AthenaPoolTestDataWriter
~AthenaPoolTestDataWriter()
Algorithm destructor.
Definition: AthenaPoolTestDataWriter.cxx:51
IAthenaPoolTestCollection.h
Class definition for IAthenaPoolTestCollection.
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
AthenaPoolTestA.h
Class definition for AthenaPoolTestA.
dummy_E.h
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
athena.value
value
Definition: athena.py:122
TriggerInfo.h
This class contains trigger related information.
EventType.h
This class provides general information about an event. It extends EventInfo with a list of sub-evts ...
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
AthenaPoolTestB.h
Class definition for AthenaPoolTestB.
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.
EventInfo::errorState
EventFlagErrorState errorState(EventFlagSubDet subDet) const
return error state for a particular sub-detector
Definition: EventInfo/EventInfo/EventInfo.h:260
PileUpTimeEventIndex.h
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
EventID.h
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
AthenaPoolTestA
Simple class with two int's for testing pool i/o from Athena.
Definition: AthenaPoolTestA.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthenaPoolTestD.h
Class definition for AthenaPoolTestD.
AthenaPoolTestDataWriter::initialize
virtual StatusCode initialize()
Algorithm initialize at begin of job.
Definition: AthenaPoolTestDataWriter.cxx:54
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
AthenaPoolTestMatrix.h
Class definition for AthenaPoolTestMatrix.
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
AthenaPoolTestC.h
Class definition for AthenaPoolTestC.
AthenaPoolTestMapData::Deposit
std::pair< AthenaPoolTestMapDataLink, float > Deposit
Definition: AthenaPoolTestMapData.h:38
AthenaPoolTestDataWriter::execute
virtual StatusCode execute()
Algorithm execute once per event.
Definition: AthenaPoolTestDataWriter.cxx:59
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IAthenaPoolTestData
Interface class for AthenaPoolTest i/o tests.
Definition: IAthenaPoolTestData.h:38
AthenaPoolTestDataWriter.h
Test Algorithm for POOL I/O tests, writes AthenaPoolData objects to the transient store.
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
AthAlgorithm
Definition: AthAlgorithm.h:47
EventInfo::setAverageInteractionsPerCrossing
void setAverageInteractionsPerCrossing(float interactions)
average interactions per crossing for all BCIDs - for out-of-time pile-up
Definition: EventInfo.cxx:202
AthenaPoolTestDataWriter::AthenaPoolTestDataWriter
AthenaPoolTestDataWriter(const std::string &name, ISvcLocator *pSvcLocator)
Algorithm constructor.
Definition: AthenaPoolTestDataWriter.cxx:39
AthenaPoolTestDataWriter::finalize
virtual StatusCode finalize()
Algorithm finalize at end of job.
Definition: AthenaPoolTestDataWriter.cxx:594
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
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
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:66
TriggerInfo::extendedLevel1ID
number_type extendedLevel1ID() const
get extended level1 ID
Definition: TriggerInfo.cxx:133
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
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
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
AthenaPoolTestMap.h
EventInfo::EventFlagSubDet
EventFlagSubDet
Definition: EventInfo/EventInfo/EventInfo.h:53
dummy_A.h
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
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
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37