ATLAS Offline Software
Loading...
Searching...
No Matches
eflowObjectCnv_p2.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_p2::persToTrans( const eflowObject_p2 *persObj, eflowObject *transObj, MsgStream &eflowStream ){
10
11
12 //data
13
14 transObj->set_d0 (persObj->m_d0);
15 transObj->set_z0 (persObj->m_z0);
16 transObj->set_type (persObj->m_eflowType);
17 transObj->set_charge (persObj->m_charge);
18 transObj->set_valid (persObj->m_valid);
19 //transObj->m_nTrack = persObj->m_nTrack;
20 //transObj->m_nClus = persObj->m_nClus;
21
22 transObj->set_eta(persObj->m_eta);
23 transObj->set_phi(persObj->m_phi);
24 transObj->set_energy(persObj->m_e);
25 transObj->set_m(persObj->m_m);
26
27 //element links data
28
30 m_elMuCnv.persToTrans(&persObj->m_muonElementLink, &muonElementLink, eflowStream);
31 transObj->addMuon (muonElementLink);
32
33 ElementLink<VxContainer> convElementLink;
34 m_elVxCnv.persToTrans(&persObj->m_convElementLink, &convElementLink, eflowStream);
35 transObj->addConversion (convElementLink);
36
37 //navigable vectors data
38 //convert persistent elementlinkvector to transient first and then copy links to navigable vectors
39
41 m_navTrackCnv.persToTrans(&persObj->m_eflowTrack,&dummyTrackVector,eflowStream);
42 for (const ElementLink<Rec::TrackParticleContainer> track : dummyTrackVector)
43 transObj->addTrack(track);
44
46 m_navClusCnv.persToTrans(&persObj->m_eflowClus,&dummyClusterVector,eflowStream);
47 for (const ElementLink<CaloClusterContainer> clus : dummyClusterVector)
48 transObj->addClus (clus);
49}
50
51
52void eflowObjectCnv_p2::transToPers( const eflowObject *transObj,eflowObject_p2 *persObj, MsgStream &eflowStream ){
53
54 //data
55
56 persObj->m_d0 = transObj->d0();
57 persObj->m_z0 = transObj->z0();
58 persObj->m_eflowType = transObj->eflowType();
59 persObj->m_charge = transObj->charge();
60 persObj->m_valid = transObj->isValid();
61 //persObj->m_nTrack = transObj->m_nTrack;
62 //persObj->m_nClus = transObj->m_nClus;
63
64 persObj->m_eta = transObj->eta();
65 persObj->m_phi = transObj->phi();
66 persObj->m_e = transObj->energy();
67 persObj->m_m = transObj->m();
68
69 //element links data
70
71
72 m_elMuCnv.transToPers(&transObj->muonLink(), &persObj->m_muonElementLink, eflowStream);
73 m_elVxCnv.transToPers(&transObj->conversionLink(), &persObj->m_convElementLink, eflowStream);
74
75 //navigable vectors
76 //there are no converters so we have to make an ElementLinkVector first for which converters exist
77
79 for (int i = 0; i < transObj->numTrack();i++)
80 dummyTrackVector.push_back(transObj->trackLink(i));
81 m_navTrackCnv.transToPers(&dummyTrackVector, &persObj->m_eflowTrack, eflowStream);
82
84 for (int i = 0; i < transObj->numClus(); i++)
85 dummyClusterVector.push_back(transObj->clusLink(i));
86 m_navClusCnv.transToPers(&dummyClusterVector, &persObj->m_eflowClus, eflowStream);
87}
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
ElementLinkCnv_p1< ElementLink< Analysis::MuonContainer > > m_elMuCnv
virtual void persToTrans(const eflowObject_p2 *persObj, eflowObject *transObj, MsgStream &eflowStream)
ElementLinkCnv_p1< ElementLink< VxContainer > > m_elVxCnv
ElementLinkVectorCnv_p1< ElementLinkVector< CaloClusterContainer > > m_navClusCnv
friend class eflowObject
ElementLinkVectorCnv_p1< ElementLinkVector< Rec::TrackParticleContainer > > m_navTrackCnv
virtual void transToPers(const eflowObject *transObj, eflowObject_p2 *persObj, MsgStream &eflowStream)
friend class eflowObject_p2
ElementLinkInt_p1 m_convElementLink
ElementLinkInt_p1 m_muonElementLink
ElementLinkIntVector_p1 m_eflowClus
ElementLinkIntVector_p1 m_eflowTrack
void set_eta(double ceta)
const ElementLink< Rec::TrackParticleContainer > trackLink(size_t i) const
void addMuon(const ElementLink< Analysis::MuonContainer > &muonElementLink)
int numClus() const
int numTrack() const
const ElementLink< CaloClusterContainer > clusLink(size_t i) const
double d0() const
void set_phi(double cphi)
void set_charge(int ccharge)
int eflowType() const
void addTrack(const ElementLink< Rec::TrackParticleContainer > &trackElementLink)
double energy() const
void addConversion(const ElementLink< VxContainer > &convElementLink)
void set_type(int ctype)
const ElementLink< Analysis::MuonContainer > & muonLink() const
const ElementLink< VxContainer > & conversionLink() const
void set_z0(double cz0)
void set_d0(double cd0)
void addClus(const ElementLink< CaloClusterContainer > &clusElementLink)
double z0() const
void set_m(double cm)
int charge() const
void set_energy(double cenergy)
bool isValid() const
void set_valid(bool flag=true)