ATLAS Offline Software
Loading...
Searching...
No Matches
MissingEtCaloCnv_p2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
5/********************************************************************
6NAME: MissingEtCaloCnv_p2.cxx
7PURPOSE: Transient/Persisten converter for MissingEtCalo class
8********************************************************************/
9
10// AthenaPoolCnvSvc includes
12
13// MissingETEvent includes
16
17// RecTPCnv includes
20
21// MissingET converter
23
24
25void MissingEtCaloCnv_p2::persToTrans( const MissingEtCalo_p2* pers, MissingEtCalo* trans, MsgStream& /* msg */ ) const {
26 std::vector<float>::const_iterator i=pers->m_AllTheData.begin();
27 int size=(int)(*i);++i;
28 trans->setExCaloVec (std::vector<double> (i, i+size)); i+= size;
29 trans->setEyCaloVec (std::vector<double> (i, i+size)); i+= size;
30 trans->setEtSumCaloVec (std::vector<double> (i, i+size)); i+= size;
31 union conv{ unsigned int i; float f; } c;
32 for(int w=0;w<size;++w){
33 c.f=(*i);
34 trans->setNCellCalo(static_cast<MissingEtCalo::CaloIndex>(w), c.i);
35 ++i;
36 }
37 metCnv.persToTrans(trans,i);
38
39// std::cout<<"READING MissingEtCalo"<<std::endl;
40// std::cout<<"READING: "<<size<<"\t"<<trans->m_exCalo[0]<<"\t"<<trans->m_eyCalo[6]<<"\t"<<trans->m_etSumCalo[3]<<"\t"<<trans->m_nCellsCalo[6]<<std::endl;
41
42 return;
43}
44
45void MissingEtCaloCnv_p2::transToPers( const MissingEtCalo* trans, MissingEtCalo_p2* pers, MsgStream& /* msg */ ) const {
46 pers->m_AllTheData.push_back((float)trans->exCaloVec().size());
47 std::copy(trans->exCaloVec().begin(), trans->exCaloVec().end(), std::back_inserter(pers->m_AllTheData) );
48 std::copy(trans->eyCaloVec().begin(),trans->eyCaloVec().end(), std::back_inserter(pers->m_AllTheData) );
49 std::copy(trans->etSumCaloVec().begin(),trans->etSumCaloVec().end(), std::back_inserter(pers->m_AllTheData) );
50 union conv{ unsigned int i; float f; } c;
51 for(unsigned int w=0;w<trans->exCaloVec().size();++w){
52 c.i=trans->ncellCalo(static_cast<MissingEtCalo::CaloIndex>(w));
53 pers->m_AllTheData.push_back(c.f);
54 }
55 metCnv.transToPers( trans, pers->m_AllTheData );
56
57// std::cout<<"WRITING MissingEtCalo"<<std::endl;
58// std::cout<<"WRITING: "<<trans->m_exCalo.size()<<"\t"<<trans->m_exCalo[0]<<"\t"<<trans->m_eyCalo[6]<<"\t"<<trans->m_etSumCalo[3]<<"\t"<<trans->m_nCellsCalo[6]<<std::endl;
59 return;
60}
static const MissingETCnv_p1 metCnv
virtual void transToPers(const MissingEtCalo *transObj, MissingEtCalo_p2 *persObj, MsgStream &msg) const override
virtual void persToTrans(const MissingEtCalo_p2 *persObj, MissingEtCalo *transObj, MsgStream &msg) const override
std::vector< float > m_AllTheData
const std::vector< double > & exCaloVec() const
void setEtSumCaloVec(std::vector< double > &&etSumCaloVec)
void setNCellCalo(CaloIndex aCalo, unsigned int theNCell)
void setEyCaloVec(std::vector< double > &&exCaloVec)
unsigned int ncellCalo(CaloIndex aCalo) const
const std::vector< double > & etSumCaloVec() const
const std::vector< double > & eyCaloVec() const
void setExCaloVec(std::vector< double > &&exCaloVec)