ATLAS Offline Software
Loading...
Searching...
No Matches
TBBPCContCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include "TBEvent/TBBPCCont.h"
7#include "Identifier/Identifier.h"
9
10
11
12void
14 TBBPCCont* trans, MsgStream &/*log*/) const
15{
16 const unsigned nTBBPCs = pers->m_xPos.size();
17
18 // clear the trans contained and reserve space for the new BPCs
19 trans->clear();
20 trans->reserve(nTBBPCs);
21
22 // copy all the BPCs from the pers to the trans
23 for (unsigned nTBBPCNow=0; nTBBPCNow<nTBBPCs; nTBBPCNow++) {
24 TBBPC * BPC = new TBBPC();
25
26 BPC -> setXPos( pers->m_xPos[nTBBPCNow] );
27 BPC -> setYPos( pers->m_yPos[nTBBPCNow] );
28 BPC -> setXErr( pers->m_xErr[nTBBPCNow] );
29 BPC -> setYErr( pers->m_yErr[nTBBPCNow] );
30 BPC -> setXPulse( pers->m_xPulse[nTBBPCNow] );
31 BPC -> setYPulse( pers->m_yPulse[nTBBPCNow] );
32 BPC -> setHitNbr( pers->m_hitnumber[nTBBPCNow] );
33 BPC -> setXPosOverflow( pers->m_xPosOverflow[nTBBPCNow] );
34 BPC -> setYPosOverflow( pers->m_yPosOverflow[nTBBPCNow] );
35 BPC -> setXPulseOverflow( pers->m_xPulseOverflow[nTBBPCNow] );
36 BPC -> setYPulseOverflow( pers->m_yPulseOverflow[nTBBPCNow] );
37
38 BPC -> setDetectorName( pers->m_tbDetectorName[nTBBPCNow] );
39 BPC -> setOverflow( pers->m_overflow[nTBBPCNow] );
40
41 // fill the container with the scint object
42 trans->push_back(BPC);
43// log << MSG::DEBUG << "\033[34m" << "\t- pers->trans: BPC->getYPulse() " << BPC->getYPulse() << "\033[0m" <<endmsg;
44 }
45
46}
47
48
49void
51 TBBPCCont_p1* pers, MsgStream &/*log*/) const
52{
53
54 const unsigned nTBBPCs = trans->size();
55
56 pers -> m_xPos.reserve(nTBBPCs);
57 pers -> m_yPos.reserve(nTBBPCs);
58 pers -> m_xErr.reserve(nTBBPCs);
59 pers -> m_yErr.reserve(nTBBPCs);
60 pers -> m_xPulse.reserve(nTBBPCs);
61 pers -> m_yPulse.reserve(nTBBPCs);
62 pers -> m_hitnumber.reserve(nTBBPCs);
63 pers -> m_xPosOverflow.reserve(nTBBPCs);
64 pers -> m_yPosOverflow.reserve(nTBBPCs);
65 pers -> m_xPulseOverflow.reserve(nTBBPCs);
66 pers -> m_yPulseOverflow.reserve(nTBBPCs);
67 pers -> m_overflowSetFlag.reserve(nTBBPCs);
68 pers -> m_tbDetectorName.reserve(nTBBPCs);
69 pers -> m_overflow.reserve(nTBBPCs);
70
71
72 // iterators for the container
73 TBBPCCont::const_iterator BPCIt = trans->begin();
74 TBBPCCont::const_iterator BPCIt_e = trans->end();
75
76 // copy all the scints from the trans to the pers
77 for (; BPCIt!=BPCIt_e; ++BPCIt) {
78 const TBBPC * BPC = * BPCIt;
79
80 // fill in the scint properties
81 pers -> m_xPos.push_back( BPC->getXPos() );
82 pers -> m_yPos.push_back( BPC->getYPos() );
83 pers -> m_xErr.push_back( BPC->getXErr() );
84 pers -> m_yErr.push_back( BPC->getYErr() );
85 pers -> m_xPulse.push_back( BPC->getXPulse() );
86 pers -> m_yPulse.push_back( BPC->getYPulse() );
87 pers -> m_hitnumber.push_back( BPC->getHitNbr() );
88 pers -> m_xPosOverflow.push_back( BPC->isXPosOverflow() );
89 pers -> m_yPosOverflow.push_back( BPC->isYPosOverflow() );
90 pers -> m_xPulseOverflow.push_back( BPC->isXPulseOverflow() );
91 pers -> m_yPulseOverflow.push_back( BPC->isYPulseOverflow() );
92
93 pers -> m_overflowSetFlag.push_back( false );
94
95 pers -> m_tbDetectorName.push_back( BPC->getDetectorName() );
96 pers -> m_overflow.push_back( BPC->isOverflow() );
97 }
98
99
100}
101
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
void clear()
Erase all the elements in the collection.
virtual void persToTrans(const TBBPCCont_p1 *pers, TBBPCCont *trans, MsgStream &log) const override
virtual void transToPers(const TBBPCCont *trans, TBBPCCont_p1 *pers, MsgStream &log) const override
std::vector< signal_type > m_xPos
std::vector< signal_type > m_yErr
std::vector< bool > m_overflow
std::vector< signal_type > m_yPos
std::vector< signal_type > m_yPulse
std::vector< bool > m_xPulseOverflow
std::vector< std::string > m_tbDetectorName
std::vector< bool > m_xPosOverflow
std::vector< signal_type > m_xErr
std::vector< bool > m_yPosOverflow
std::vector< bool > m_yPulseOverflow
std::vector< signal_type > m_xPulse
std::vector< short > m_hitnumber
"TBEvent/TBBPCCont.h"
Definition TBBPCCont.h:17
Definition TBBPC.h:23
bool isXPosOverflow() const
Definition TBBPC.h:93
signal_type getYErr() const
Definition TBBPC.h:82
bool isXPulseOverflow() const
Definition TBBPC.h:97
signal_type getYPulse() const
Definition TBBPC.h:87
int getHitNbr() const
Definition TBBPC.h:89
signal_type getXPos() const
Definition TBBPC.h:75
bool isYPulseOverflow() const
Definition TBBPC.h:99
signal_type getXPulse() const
Definition TBBPC.h:85
bool isYPosOverflow() const
Definition TBBPC.h:95
signal_type getYPos() const
Definition TBBPC.h:77
signal_type getXErr() const
Definition TBBPC.h:80
bool isOverflow() const
const std::string & getDetectorName() const