ATLAS Offline Software
Loading...
Searching...
No Matches
eflowObjectCnv_p5.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
9void eflowObjectCnv_p5::persToTrans( const eflowObject_p5 *persObj, eflowObject *transObj, MsgStream &eflowStream ){
10
11
12 //data
13
14 transObj->set_type (persObj->m_eflowType);
15 transObj->set_charge (persObj->m_charge);
16 transObj->setCaloRecoStatus (CaloRecoStatus(persObj->m_recoStatus));
17 transObj->setPi0MVA (persObj->m_pi0MVA);
18 transObj->setCenterMag (persObj->m_centerMag);
19
20 transObj->set_eta(persObj->m_eta);
21 transObj->set_phi(persObj->m_phi);
22 transObj->set_energy(persObj->m_e);
23 transObj->set_m(persObj->m_m);
24
25 //navigable vectors data
26 //convert persistent elementlinkvector to transient first and then copy links to navigable vectors
27
29 m_navTrackCnv.persToTrans(&persObj->m_eflowTrack,&dummyTrackVector,eflowStream);
30 for (const ElementLink<Rec::TrackParticleContainer> track : dummyTrackVector)
31 transObj->addTrack(track);
32
34 m_navClusCnv.persToTrans(&persObj->m_eflowClus,&dummyClusterVector,eflowStream);
35 for (const ElementLink<CaloClusterContainer> clus : dummyClusterVector)
36 transObj->addClus (clus);
37}
38
39
40void eflowObjectCnv_p5::transToPers( const eflowObject *transObj,eflowObject_p5 *persObj, MsgStream &eflowStream ){
41
42 //data
43
44 persObj->m_eflowType = transObj->eflowType();
45 persObj->m_charge = transObj->charge();
46 persObj->m_recoStatus = transObj->getCaloRecoStatus().getStatusWord();
47 persObj->m_pi0MVA = transObj->getPi0MVA();
48 persObj->m_centerMag = transObj->getCenterMag();
49
50 persObj->m_eta = transObj->eta();
51 persObj->m_phi = transObj->phi();
52 persObj->m_e = transObj->energy();
53 persObj->m_m = transObj->m();
54
55 //element links data
56
57
58 //if (transObj->m_muonElementLink.isValid()) m_elMuCnv.transToPers(&transObj->m_muonElementLink, &persObj->m_muonElementLink, eflowStream);
59 //if (transObj->m_convElementLink.isValid()) m_elVxCnv.transToPers(&transObj->m_convElementLink, &persObj->m_convElementLink, eflowStream);
60
61 //navigable vectors
62 //there are no converters so we have to make an ElementLinkVector first for which converters exist
63
65 for (int i = 0; i < transObj->numTrack();i++)
66 dummyTrackVector.push_back(transObj->trackLink(i));
67 m_navTrackCnv.transToPers(&dummyTrackVector, &persObj->m_eflowTrack, eflowStream);
68
70 for (int i = 0; i < transObj->numClus(); i++)
71 dummyClusterVector.push_back(transObj->clusLink(i));
72 m_navClusCnv.transToPers(&dummyClusterVector, &persObj->m_eflowClus, eflowStream);
73}
reconstruction status indicator
virtual const store_type & getStatusWord() const
retrieve the entire status word
ElementLinkVector implementation for standalone ROOT.
void push_back(const ElemLink &link)
virtual double phi() const
get phi data member
Definition P4EEtaPhiM.h:108
virtual double eta() const
get eta data member
Definition P4EEtaPhiM.h:105
virtual double m() const
get mass data member
Definition P4EEtaPhiM.h:111
virtual void persToTrans(const eflowObject_p5 *persObj, eflowObject *transObj, MsgStream &eflowStream)
ElementLinkVectorCnv_p1< ElementLinkVector< Rec::TrackParticleContainer > > m_navTrackCnv
friend class eflowObject
friend class eflowObject_p5
virtual void transToPers(const eflowObject *transObj, eflowObject_p5 *persObj, MsgStream &eflowStream)
ElementLinkVectorCnv_p1< ElementLinkVector< CaloClusterContainer > > m_navClusCnv
ElementLinkIntVector_p1 m_eflowTrack
unsigned int m_recoStatus
ElementLinkIntVector_p1 m_eflowClus
void set_eta(double ceta)
void setCaloRecoStatus(CaloRecoStatus status)
const ElementLink< Rec::TrackParticleContainer > trackLink(size_t i) const
int numClus() const
int numTrack() const
const ElementLink< CaloClusterContainer > clusLink(size_t i) const
void set_phi(double cphi)
void set_charge(int ccharge)
CaloRecoStatus getCaloRecoStatus() const
int eflowType() const
void setCenterMag(double centerMag)
void setPi0MVA(double Pi0MVA)
void addTrack(const ElementLink< Rec::TrackParticleContainer > &trackElementLink)
double energy() const
void set_type(int ctype)
void addClus(const ElementLink< CaloClusterContainer > &clusElementLink)
void set_m(double cm)
double getPi0MVA() const
double getCenterMag() const
int charge() const
void set_energy(double cenergy)