ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
egamma
egammaEventTPCnv
src
egammaCnv_p2.cxx
Go to the documentation of this file.
1
2
3
/*
4
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// egammaCnv_p2.cxx
8
// Implementation file for class egammaCnv_p2
10
11
12
// STL includes
13
14
// egammaEventTPCnv includes
15
#include "
egammaEventTPCnv/egammaCnv_p2.h
"
16
17
// some constants used to keep consistency over business of egPID conversion
18
// --hack-hack-hack-- (ugly-ugly)
19
21
// Public methods:
23
24
// Constructors
26
27
// Destructor
29
31
// Const methods:
33
34
void
egammaCnv_p2::persToTrans
(
const
egamma_p2
* pers,
35
egamma
*
trans
,
36
MsgStream&
msg
)
37
{
38
// msg << MSG::DEBUG << "Loading egamma from persistent state..."
39
// << endmsg;
40
41
// Clear
42
*
trans
=
egamma
(pers->
m_author
);
43
44
m_momCnv
.persToTrans (&pers->
m_momentum
,
45
&
trans
->momentumBase(),
46
msg
);
47
m_partBaseCnv
.persToTrans (&pers->
m_particleBase
,
48
&
trans
->particleBase(),
49
msg
);
50
51
// element links
52
ElementLink<CaloClusterContainer>
cluster;
53
m_clusterCnv
.persToTrans( &pers->
m_cluster
, &cluster,
msg
);
54
trans
->setClusterElementLink (cluster);
55
56
ElementLinkVector<Rec::TrackParticleContainer>
elv;
57
m_trackCnv
.persToTrans( &pers->
m_trackParticle
,
58
&elv,
59
msg
);
60
trans
->setTrackParticleElementLinkVector(elv);
61
62
ElementLinkVector<VxContainer>
vx;
63
m_conversionCnv
.persToTrans( &pers->
m_conversion
,
64
&vx,
65
msg
);
66
trans
->setConversionElementLinkVector(vx);
67
68
ElementLinkVector<egDetailContainer>
egDetails;
69
m_egDetailsCnv
.persToTrans( &pers->
m_egDetails
,
70
&egDetails,
71
msg
);
72
trans
->setDetailElementLinkVector (std::move (egDetails));
73
74
// egPID filling (doubles)
75
{
76
const
std::vector<double>& egID = pers->
m_egammaDblPIDs
;
77
const
std::vector<unsigned int>& egEnum = pers->
m_egammaEnumPIDs
;
78
79
// if you crash here, then there is a data corruption...
80
assert( egEnum.size() == egID.size() );
81
82
for
(
unsigned
int
i=0; i< egID.size(); i++ ) {
83
trans
->set_egammaID( (
egammaPIDObs::PID
) egEnum[i], egID[i] );
84
}
85
}
86
//Clearing Rings ElementLink:
87
trans
->resetRings();
88
}
89
90
void
egammaCnv_p2::transToPers
(
const
egamma
*
trans
,
91
egamma_p2
* pers,
92
MsgStream&
msg
)
93
{
94
// msg << MSG::DEBUG << "Creating persistent state of egamma..."
95
// << endmsg;
96
97
m_momCnv
.transToPers (&
trans
->momentumBase(),
98
&pers->
m_momentum
,
99
msg
);
100
m_partBaseCnv
.transToPers (&
trans
->particleBase(),
101
&pers->
m_particleBase
,
102
msg
);
103
104
// element links
105
m_clusterCnv
.transToPers( &
trans
->clusterElementLink(), &pers->
m_cluster
,
msg
);
106
107
m_trackCnv
.transToPers( &
trans
->trackParticleElementLinkVector(),
108
&pers->
m_trackParticle
,
109
msg
);
110
111
m_conversionCnv
.transToPers( &
trans
->conversionElementLinkVector(),
112
&pers->
m_conversion
,
113
msg
);
114
115
m_egDetailsCnv
.transToPers( &
trans
->detailElementLinkVector(),
116
&pers->
m_egDetails
,
117
msg
);
118
119
// author
120
pers->
m_author
=
trans
->author();
121
122
// egPID (ints)
123
{
124
std::vector<double>& egID = pers->
m_egammaDblPIDs
;
125
std::vector<unsigned int>& egEnum = pers->
m_egammaEnumPIDs
;
126
127
unsigned
int
nbOfEgammaIDs = (int)
egammaPIDObs::LastEgammaPID
;
128
129
double
tmpID;
130
for
(
unsigned
int
i=0; i<nbOfEgammaIDs; i++ ) {
131
tmpID =
trans
->egammaID( (
egammaPIDObs::PID
) i);
132
if
( tmpID !=
egammaPIDObs::EgPidUndefined
) {
133
egEnum.push_back(i);
134
egID.push_back(tmpID);
135
}
136
}
137
}
138
139
// msg << MSG::DEBUG << "Created persistent state of egamma [OK]"
140
// << endmsg;
141
}
ElementLinkVector
ElementLinkVector implementation for standalone ROOT.
Definition
AthLinks/ElementLinkVector.h:65
ElementLink
ElementLink implementation for ROOT usage.
Definition
A/AthLinks/ElementLink.h:40
egammaCnv_p2::m_partBaseCnv
ParticleBaseCnv_p1 m_partBaseCnv
Definition
egammaCnv_p2.h:80
egammaCnv_p2::transToPers
virtual void transToPers(const egamma *transObj, egamma_p2 *persObj, MsgStream &msg) override final
Method creating the persistent representation egamma_p2 from its transient representation egamma.
Definition
egammaCnv_p2.cxx:90
egammaCnv_p2::m_egDetailsCnv
EgDetailsCnv_t m_egDetailsCnv
Definition
egammaCnv_p2.h:84
egammaCnv_p2::m_clusterCnv
ClusterLinkCnv_t m_clusterCnv
Definition
egammaCnv_p2.h:81
egammaCnv_p2::m_trackCnv
TrackLinkCnv_t m_trackCnv
Definition
egammaCnv_p2.h:82
egammaCnv_p2::m_momCnv
P4ImplEEtaPhiMCnv_p2 m_momCnv
Definition
egammaCnv_p2.h:79
egammaCnv_p2::persToTrans
virtual void persToTrans(const egamma_p2 *persObj, egamma *transObj, MsgStream &msg) override final
Method creating the transient representation of egamma from its persistent representation egamma_p2.
Definition
egammaCnv_p2.cxx:34
egammaCnv_p2::m_conversionCnv
ConversionLinkCnv_t m_conversionCnv
Definition
egammaCnv_p2.h:83
egamma_p2
Definition
egamma_p2.h:30
egamma_p2::m_egammaDblPIDs
std::vector< double > m_egammaDblPIDs
Definition
egamma_p2.h:81
egamma_p2::m_momentum
P4EEtaPhiMFloat_p2 m_momentum
the 4-mom part
Definition
egamma_p2.h:57
egamma_p2::m_egammaEnumPIDs
std::vector< unsigned int > m_egammaEnumPIDs
egamma PID
Definition
egamma_p2.h:80
egamma_p2::m_author
unsigned int m_author
Definition
egamma_p2.h:77
egamma_p2::m_cluster
ElementLinkInt_p1 m_cluster
links to clusters
Definition
egamma_p2.h:65
egamma_p2::m_egDetails
ElementLinkIntVector_p1 m_egDetails
links to egDetails
Definition
egamma_p2.h:74
egamma_p2::m_conversion
ElementLinkIntVector_p1 m_conversion
links to tracks
Definition
egamma_p2.h:71
egamma_p2::m_particleBase
ParticleBase_p1 m_particleBase
the ParticleBase part
Definition
egamma_p2.h:60
egamma_p2::m_trackParticle
ElementLinkIntVector_p1 m_trackParticle
links to tracks
Definition
egamma_p2.h:68
egamma
elec/gamma data class.
Definition
egamma.h:59
trans
TH1F * trans(TH1F *h, bool t=false)
Definition
comparitor.cxx:199
egammaCnv_p2.h
egammaPIDObs::EgPidUndefined
const unsigned int EgPidUndefined
Definition
egammaPIDdefsObs.h:127
egammaPIDObs::PID
PID
Definition
egammaPIDdefsObs.h:53
egammaPIDObs::LastEgammaPID
@ LastEgammaPID
Default for the last enum (don't change it !).
Definition
egammaPIDdefsObs.h:92
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0