29#include "EventInfo/EventInfo.h"
39 ISvcLocator* pSvcLocator):
74 for (
int i = 0; i < 5; ++i) {
76 col1->push_back(data);
81 for (
int i = 10; i < 15; ++i) {
83 col2->push_back(data);
87 for (
int i = 20; i < 26; ++i) {
94 col3->push_back(data);
101 for (; it != last; ++it) {
108 for (; it != last; ++it) {
115 for (; it != last; ++it) {
121 for (
int i = 0; i < 5; ++i) {
123 col4->push_back(data);
128 for (
int i = 10; i < 15; ++i) {
130 col5->push_back(data);
136 for (; it != last; ++it) {
143 for (; it != last; ++it) {
157 for (; it != last; ++it) {
166 for (; it != last; ++it) {
197 for (
int i = 0; i < 3; ++i ) {
200 for (
int j = 0; j < 2; ++j ) {
201 CLHEP::HepMatrix* mat =
new CLHEP::HepMatrix( 4 + j, 2 + 2*i );
202 CLHEP::HepMatrix& matrx = *mat;
203 for (
int i = 0; i < matrx.num_row(); ++i) {
204 for (
int j = 0; j < matrx.num_col(); ++j) {
213 HepGeom::Transform3D trans1(HepGeom::Point3D<double>( i, 0, 0),
214 HepGeom::Point3D<double>( 0, 1, 0),
215 HepGeom::Point3D<double>( 0, 0, 1),
216 HepGeom::Point3D<double>(-i, 0, 0),
217 HepGeom::Point3D<double>( 0, 1, 0),
218 HepGeom::Point3D<double>( 0, 0, 1));
221 std::stringstream stream;
222 stream <<
"AthenaPoolTestMatrix_" << i;
223 std::string key(stream.str());
225 ATH_MSG_DEBUG(
"Registering matrix " << i + 1 <<
" " << key );
227 const HepGeom::Point3D<double>& point = matrix->
point();
228 const HepGeom::Point3D<double>& point1 = matrix->
point1();
236 << point1.z() <<
" ");
237 const CLHEP::HepMatrix& smallMatrix = matrix->
smallMatrix();
238 ATH_MSG_DEBUG(
" Small matrix : ( " << smallMatrix.num_row() <<
", " << smallMatrix.num_col() <<
" ) " );
241 for (
int i = 0; i < smallMatrix.num_row(); ++i) {
242 for (
int j = 0; j < smallMatrix.num_col(); ++ j) {
243 stream << smallMatrix[i][j] <<
", ";
247 nd += smallMatrix.num_row()*smallMatrix.num_col();
249 const CLHEP::HepMatrix& bigMatrix = matrix->
bigMatrix();
250 ATH_MSG_DEBUG(
" Big matrix : ( " << bigMatrix.num_row() <<
", " << bigMatrix.num_col() <<
" ) " );
253 for (
int i = 0; i < bigMatrix.num_row(); ++i) {
254 for (
int j = 0; j < bigMatrix.num_col(); ++ j) {
255 stream << bigMatrix[i][j] <<
", ";
259 nd += bigMatrix.num_row()*bigMatrix.num_col();
263 const CLHEP::HepMatrix& matrx = matrix->
matrix( i );
264 ATH_MSG_DEBUG(
" ( " << matrx.num_row() <<
", " << matrx.num_col() <<
" ) " );
266 for (
int i = 0; i < matrx.num_row(); ++i) {
267 for (
int j = 0; j < matrx.num_col(); ++ j) {
268 stream << matrx[i][j] <<
", ";
273 nd += matrx.num_row()*matrx.num_col();
286 std::map<unsigned int, CLHEP::HepMatrix>& mp0 = mats[0];
287 std::map<unsigned int, CLHEP::HepMatrix>& mp1 = mats[1];
288 std::map<unsigned int, CLHEP::HepMatrix>::const_iterator itmp = mp0.begin();
290 << (*itmp).second.num_row() <<
", " << (*itmp).second.num_col() );
293 << (*itmp).second.num_row() <<
", " << (*itmp).second.num_col() );
296 << (*itmp).second.num_row() <<
", " << (*itmp).second.num_col() );
299 << (*itmp).second.num_row() <<
", " << (*itmp).second.num_col() );
303 const HepGeom::Transform3D&
trans = matrix->
trans();
326 typedef std::vector<AthenaPoolTestMapData::Deposit> deposit_vec;
328 deposit_vec deposits;
332 for (
unsigned int j = 0; j < 10; ++j) {
333 for (
unsigned int i = 0; i < 10; ++i) {
336 deposit.second = i + 20;
337 deposits.push_back(deposit);
345 AthenaPoolTestMap::const_iterator itm = tmap.begin();
346 AthenaPoolTestMap::const_iterator endm = tmap.end();
347 for (; itm != endm; ++itm) {
350 (*itm).second.deposits(deposits);
351 std::stringstream stream;
352 for (
unsigned int i = 0; i < deposits.size(); ++i) {
354 stream << link.barcode() <<
" "
355 << link.eventIndex() <<
" "
356 << deposits[i].second <<
" ";
359 <<
" word " << (*itm).second.word()
360 <<
" Deposits: (barCode, evtIndx, wgt) " << stream.str());
368 const std::vector<dummy_B>& b = dummyA->
dummy();
370 for (
unsigned int i = 0; i < b.size(); ++i) {
371 const std::vector<dummy_C>& c = b[i].dummy();
373 for (
unsigned int j = 0; j < c.size(); ++j) {
383 const std::vector<const dummy_D*>& d = dummyE->
dummy();
385 for (
unsigned int i = 0; i < d.size(); ++i) {
402 << evt->event_ID()->run_number() <<
","
403 << evt->event_ID()->event_number() <<
":"
404 << evt->event_ID()->time_stamp() <<
"] " );
406 << evt->event_type()->user_type() <<
" weight 0: "
418 unsigned int flags = 0;
421 flags = 3*i + 0xFFFFFF00;
423 ATH_MSG_ERROR(
"Error setting flag: i, flags " << i <<
" " << MSG::hex << flags << MSG::dec );
426 ATH_MSG_DEBUG(
"Setting flag: i, flags " << i <<
" " << MSG::hex << flags <<
" "
449 ATH_MSG_ERROR(
"Error trying to set bit 29 for subDet " << i );
452 ATH_MSG_DEBUG(
"Returned false for trying to set bit 29 for subDet " << i <<
" "
460 ATH_MSG_ERROR(
"Error setting error state: i, state " << i <<
" " << state );
463 ATH_MSG_DEBUG(
"Setting error state: i, state " << i <<
" " << state );
476 evt->event_ID()->event_number(),
490 std::vector<unsigned int> level1TriggerInfo;
491 level1TriggerInfo.push_back(14);
492 level1TriggerInfo.push_back(15);
493 std::vector<unsigned int> level2TriggerInfo;
494 level2TriggerInfo.push_back(10);
495 level2TriggerInfo.push_back(11);
496 std::vector<unsigned int> eventFilterInfo;
497 eventFilterInfo.push_back(12);
498 eventFilterInfo.push_back(13);
499 std::vector<TriggerInfo::StreamTag> streamTags;
511 auto newEvt = std::make_unique<EventInfo>(*evt);
522 << pevt->
event_ID()->run_number() <<
","
523 << pevt->
event_ID()->event_number() <<
":"
524 << pevt->
event_ID()->time_stamp() <<
"] ");
529 std::stringstream stream;
534 for (
unsigned int i = 0; i < pevt->
trigger_info()->level1TriggerInfo().
size(); ++i) {
537 stream <<
"lvl2Info ";
538 for (
unsigned int i = 0; i < pevt->
trigger_info()->level2TriggerInfo().
size(); ++i) {
541 stream <<
"EventFilterInfo ";
542 for (
unsigned int i = 0; i < pevt->
trigger_info()->eventFilterInfo().
size(); ++i) {
545 stream <<
"EventFilterInfo ";
546 for (
unsigned int i = 0; i < pevt->
trigger_info()->streamTags().
size(); ++i) {
555 PileUpEventInfo::SubEvent::const_iterator it1 = pevt->
beginSubEvt();
556 PileUpEventInfo::SubEvent::const_iterator end1 = pevt->
endSubEvt();
560 for (; it1 != end1; ++it1) {
563 << (*it1).time() <<
" " << (*it1).index()
567 << sevt->
event_ID()->run_number() <<
","
568 << sevt->
event_ID()->event_number() <<
":"
569 << sevt->
event_ID()->time_stamp() <<
"] ");
573 << it1->time() <<
" " << it1->index());
579 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_VERBOSE(x,...)
Class definition for AthenaPoolTestA.
Class definition for AthenaPoolTestB.
Class definition for AthenaPoolTestC.
Class definition for AthenaPoolTestD.
Test Algorithm for POOL I/O tests, writes AthenaPoolData objects to the transient store.
Class definition for AthenaPoolTestMatrix.
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Old PileUpEventInfo
This class provides general information about an event.
Class definition for IAthenaPoolTestCollection.
DataVector< IAthenaPoolTestData > IAthenaPoolTestCollection
This class provides information about an overlaid event.
size_t size() const
Number of registered mappings.
This class contains trigger related information.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
ServiceHandle< StoreGateSvc > & evtStore()
Simple class with two int's for testing pool i/o from Athena.
Simple class with int,int,float,double for testing pool i/o from Athena.
Simple class with four int's divided among protected/private for testing pool i/o from Athena.
Simple class with HepGeom::Point3D<double> for testing pool i/o from Athena.
AthenaPoolTestDataWriter(const std::string &name, ISvcLocator *pSvcLocator)
Algorithm constructor.
Gaudi::Property< bool > m_partialCreate
Create only part of the collections.
~AthenaPoolTestDataWriter()
Algorithm destructor.
virtual StatusCode execute(const EventContext &ctx) override
Algorithm execute once per event.
Gaudi::Property< bool > m_readOtherHalf
For partial create read second half of collections.
Gaudi::Property< bool > m_readFirstHalf
For partial create read first half of collections.
std::pair< AthenaPoolTestMapDataLink, float > Deposit
Simple class with various CLHEP classes for testing pool i/o from Athena.
int numberOfMatrices() const
const matrixMaps_t & matrixMaps() const
void setTransform(const HepGeom::Transform3D trans)
const CLHEP::HepMatrix & bigMatrix() const
const HepGeom::Transform3D & trans() const
const CLHEP::HepMatrix & matrix(int i) const
void addMatrix(const CLHEP::HepMatrix *matrixPointer)
const HepGeom::Point3D< double > & point1() const
const HepGeom::Point3D< double > & point() const
std::vector< std::map< unsigned int, CLHEP::HepMatrix > > matrixMaps_t
const CLHEP::HepMatrix & smallMatrix() const
DataModel_detail::const_iterator< DataVector > const_iterator
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
This class provides general information about an event.
bool setEventFlagBit(EventFlagSubDet subDet, unsigned char bit, bool set=true)
Set a bit for an event flag of a particular sub detector.
float actualInteractionsPerCrossing() const
Access to number of interactions per crossing:
EventID * event_ID()
the unique identification of the event.
EventFlagErrorState errorState(EventFlagSubDet subDet) const
return error state for a particular sub-detector
TriggerInfo * trigger_info()
trigger information (ptr may be NULL)
bool isEventFlagBitSet(EventFlagSubDet subDet, unsigned char bit) const
check for a event flag bit for a particular sub-detector
bool setEventFlags(EventFlagSubDet subDet, unsigned int flags)
Set event flag for a particular sub detector - maximun size is 28 bits.
bool setErrorState(EventFlagSubDet subDet, EventFlagErrorState errorState)
Set error state flag for a particular sub detector.
float averageInteractionsPerCrossing() const
average interactions per crossing for all BCIDs - for out-of-time pile-up
void setActualInteractionsPerCrossing(float interactions)
Setting the number of interactions per crossing:
unsigned int eventFlags(EventFlagSubDet subDet) const
event flags for a particular sub-detector
EventType * event_type()
the type of the event, e.g. simulation, testbeam, etc
void setAverageInteractionsPerCrossing(float interactions)
average interactions per crossing for all BCIDs - for out-of-time pile-up
This class represents the "type of event" where the type is given by one or more "characteristics".
float mc_event_weight(unsigned int iweight=0) const
Access to MC 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.
void set_user_type(const std::string &user_type)
Add user (string) type.
std::string user_type(void) const
Access to user type.
Interface class for AthenaPoolTest i/o tests with DataVector.
Interface class for AthenaPoolTest i/o tests.
This class provides information about an overlaid event.
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
SubEvent::iterator endSubEvt()
SubEvent::iterator beginSubEvt()
This class contains trigger related information.
number_type level1TriggerType() const
get level1 trigger type
const std::vector< number_type > & eventFilterInfo() const
get event filter trigger info
number_type extendedLevel1ID() const
get extended level1 ID
number_type statusElement() const
get status element
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
const std::vector< StreamTag > & streamTags() const
get stream tags
const std::vector< number_type > & level2TriggerInfo() const
get level2 trigger info
test nested vectors - problem seen in root3/4 transition
const std::vector< dummy_B > & dummy() const
Test derived class that contains a list of parent classes.
const std::vector< const dummy_D * > & dummy() const
EventFlagSubDet
Sub-detector types for which we store event-level flags.
@ Lumi
The luminosity detectors.
EventFlagErrorState
States that a given sub-detector could be in.
@ Warning
The sub-detector issued a warning.
@ NotSet
The flag was not set to anything.
@ Error
The sub-detector issued an error.
TH1F * trans(TH1F *h, bool t=false)