ATLAS Offline Software
Loading...
Searching...
No Matches
PileUpEventInfoCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
8
10
11namespace {
12 const int MODULO(100000);
13 const double MINTIME(-2000.0); //ns
14}
15
16void PileUpEventInfoCnv_p1::transToPers(const PileUpEventInfo* trans, PileUpEventInfo_p1* pers, MsgStream &log) const {
17 evInfoConv.transToPers(trans, pers, log);
18
19 PileUpEventInfo::SubEvent::const_iterator sub_iter = trans->beginSubEvt();
20 size_t sub_ev_n = std::distance (sub_iter, trans->endSubEvt());
21 pers->m_subEvents.resize(sub_ev_n);
22 PileUpEventInfo_p1::SubEvVect_t::iterator p_sub_iter = pers->m_subEvents.begin();
23 while( sub_iter!=trans->endSubEvt() ) {
24 short time = sub_iter->time();
25 short index = sub_iter->index();
26 p_sub_iter->m_timeIndex = (time - MINTIME) + MODULO * index;
27 evInfoConv.transToPers(sub_iter->pSubEvt, &p_sub_iter->m_subEventInfo, log);
28 ++p_sub_iter; ++sub_iter;
29 }
30}
31
32void PileUpEventInfoCnv_p1::persToTrans(const PileUpEventInfo_p1* pers, PileUpEventInfo* trans, MsgStream &log) const
33{
34 *trans = PileUpEventInfo();
35 evInfoConv.persToTrans(pers, trans, log);
36
37 PileUpEventInfo_p1::SubEvVect_t::const_iterator p_sub_iter = pers->m_subEvents.begin();
38 while( p_sub_iter != pers->m_subEvents.end() ) {
39 short index1 = static_cast<short>( (p_sub_iter->m_timeIndex)*(1./MODULO) );
40 unsigned long index = MODULO*index1;
41
42 trans->addSubEvt (static_cast<short>( MINTIME+(p_sub_iter->m_timeIndex-index) ),
43 //index1
45 std::unique_ptr<EventInfo>
46 (evInfoConv.createTransientConst(&p_sub_iter->m_subEventInfo, log)),
47 nullptr);
48 ++p_sub_iter;
49 }
50}
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Old PileUpEventInfo
static const EventInfoCnv_p1 evInfoConv
This class provides information about an overlaid event.
virtual void persToTrans(const PileUpEventInfo_p1 *persObj, PileUpEventInfo *transObj, MsgStream &log) const override
virtual void transToPers(const PileUpEventInfo *transObj, PileUpEventInfo_p1 *persObj, MsgStream &log) const override
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()
Definition index.py:1