ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
RecTPCnv
src
CaloEnergyCnv_p2.cxx
Go to the documentation of this file.
1
2
3
/*
4
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// CaloEnergyCnv_p2.cxx
8
// Implementation file for class CaloEnergyCnv_p2
9
// Author: S.Binet<binet@cern.ch>
11
12
13
// STL includes
14
15
// AthenaPoolCnvSvc includes
16
#include "
AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h
"
17
18
// muonEvent includes
19
#include "
muonEvent/DepositInCalo.h
"
20
#include "
muonEvent/CaloEnergy.h
"
21
22
// RecTPCnv includes
23
#include "
RecTPCnv/DepositInCaloCnv_p2.h
"
24
#include "
RecTPCnv/CaloEnergyCnv_p2.h
"
25
#include "
TrkEventTPCnv/TrkMaterialOnTrack/EnergyLossCnv_p1.h
"
26
27
// For converter.
28
#include "
RecTPCnv/DepositInCalo_p1.h
"
29
#include "
RecTPCnv/DepositInCalo_p2.h
"
30
#include "
RootConversions/VectorConverter.h
"
31
#include "
RootConversions/TConverterRegistry.h
"
32
33
// pre-allocate converters
34
static
const
DepositInCaloCnv_p2
depositCnv
;
35
static
const
EnergyLossCnv_p1
energyLossCnv
;
36
37
CaloEnergyCnv_p2::CaloEnergyCnv_p2
()
38
{
39
}
40
41
void
CaloEnergyCnv_p2::persToTrans
(
const
CaloEnergy_p2
* pers,
42
CaloEnergy
*
trans
,
43
MsgStream&
msg
)
const
44
{
45
// msg << MSG::DEBUG << "Loading CaloEnergy from persistent state..."
46
// << endmsg;
47
49
energyLossCnv
.persToTrans( &pers->
m_energyLoss
,
50
trans
,
51
msg
);
52
53
trans
->set_energyLossType (
static_cast<
CaloEnergy::EnergyLossType
>
(pers->
m_energyLossType
));
54
trans
->set_caloLRLikelihood (pers->
m_caloLRLikelihood
);
55
trans
->set_caloMuonIdTag (pers->
m_caloMuonIdTag
);
56
trans
->set_fsrCandidateEnergy(pers->
m_fsrCandidateEnergy
);
57
58
// reserve enough space so no re-alloc occurs
59
std::vector<DepositInCalo> deposits (pers->
m_deposits
.size());
60
61
size_t
ideposit = 0;
62
for
(
const
DepositInCalo_p2
& pers_dep : pers->
m_deposits
) {
63
depositCnv
.persToTrans( &pers_dep, &deposits[ideposit++],
msg
);
64
}
65
trans
->set_deposits (std::move (deposits));
66
67
trans
->set_etCore (pers->
m_etCore
);
68
69
// msg << MSG::DEBUG << "Loaded CaloEnergy from persistent state [OK]"
70
// << endmsg;
71
72
return
;
73
}
74
75
void
CaloEnergyCnv_p2::transToPers
(
const
CaloEnergy
*
trans
,
76
CaloEnergy_p2
* pers,
77
MsgStream&
msg
)
const
78
{
79
// msg << MSG::DEBUG << "Creating persistent state of CaloEnergy..."
80
// << endmsg;
81
82
energyLossCnv
.transToPers (
trans
, &pers->
m_energyLoss
,
msg
);
83
84
pers->
m_energyLossType
=
trans
->energyLossType();
85
pers->
m_caloLRLikelihood
=
trans
->caloLRLikelihood();
86
pers->
m_caloMuonIdTag
=
trans
->caloMuonIdTag();
87
pers->
m_fsrCandidateEnergy
=
trans
->fsrCandidateEnergy();
88
89
// reserve enough space so no re-alloc occurs
90
pers->
m_deposits
.resize(
trans
->depositInCalo().size() );
91
92
size_t
ipersistent = 0;
93
for
(
const
DepositInCalo
& trans_dep :
trans
->depositInCalo()) {
94
depositCnv
.transToPers( &trans_dep, &pers->
m_deposits
[ipersistent++],
msg
);
95
}
96
97
pers->
m_etCore
=
trans
->etCore();
98
99
// msg << MSG::DEBUG << "Created persistent state of CaloEnergy [OK]"
100
// << endmsg;
101
return
;
102
}
103
104
110
void
CaloEnergyCnv_p2::registerStreamerConverter
()
111
{
112
// m_deposits was changed from vector<DepositInCalo_p1> to
113
// vector<DepositInCalo_p2>. Install a converter so that we can read
114
// the old data.
115
TConverterRegistry::Instance
()->
AddStreamerConverter
116
(
"vector<DepositInCalo_p1>"
,
"vector<DepositInCalo_p2>"
,
117
new
RootConversions::VectorConverter<DepositInCalo_p1,DepositInCalo_p2>
118
(
"DepositInCalo_p1"
));
119
}
120
121
122
void
CaloEnergyCnv_p2::persToTrans
(
const
CaloEnergy_p2
* persObj,
123
CaloEnergy
* transObj,
124
MsgStream&
msg
)
125
{
126
const
CaloEnergyCnv_p2
* cc =
this
;
127
return
cc->persToTrans (persObj, transObj,
msg
);
128
}
129
130
131
void
CaloEnergyCnv_p2::transToPers
(
const
CaloEnergy
* transObj,
132
CaloEnergy_p2
* persObj,
133
MsgStream&
msg
)
134
{
135
const
CaloEnergyCnv_p2
* cc =
this
;
136
return
cc->transToPers (transObj, persObj,
msg
);
137
}
138
139
146
extern
"C"
{
147
void
caloenergy_cnv_p2_register_streamer
()
148
{
149
CaloEnergyCnv_p2::registerStreamerConverter
();
150
}
151
152
}
depositCnv
static const DepositInCaloCnv_p1 depositCnv
Definition
CaloEnergyCnv_p1.cxx:32
energyLossCnv
static const EnergyLossCnv_p1 energyLossCnv
Definition
CaloEnergyCnv_p1.cxx:29
caloenergy_cnv_p2_register_streamer
void caloenergy_cnv_p2_register_streamer()
register a C function to be executed at library loading time this is b/c there is no more the ability...
Definition
CaloEnergyCnv_p2.cxx:147
CaloEnergyCnv_p2.h
CaloEnergy.h
DepositInCaloCnv_p2.h
DepositInCalo.h
DepositInCalo_p1.h
DepositInCalo_p2.h
EnergyLossCnv_p1.h
TConverterRegistry.h
Registry for Root converters.
T_AthenaPoolTPConverter.h
VectorConverter.h
Template for streamer converter for vector<T> -> vector, assuming T is convertable to U.
CaloEnergyCnv_p2::CaloEnergyCnv_p2
CaloEnergyCnv_p2()
Default constructor:
Definition
CaloEnergyCnv_p2.cxx:37
CaloEnergyCnv_p2::transToPers
void transToPers(const CaloEnergy *transObj, CaloEnergy_p2 *persObj, MsgStream &msg) const
Method creating the persistent representation CaloEnergy_p1 from its transient representation CaloEne...
Definition
CaloEnergyCnv_p2.cxx:75
CaloEnergyCnv_p2::registerStreamerConverter
static void registerStreamerConverter()
Register a streamer converter for backwards compatibility for the vector<DepositInCalo_p1> -> vector<...
Definition
CaloEnergyCnv_p2.cxx:110
CaloEnergyCnv_p2::persToTrans
void persToTrans(const CaloEnergy_p2 *persObj, CaloEnergy *transObj, MsgStream &msg) const
Method creating the transient representation of CaloEnergy from its persistent representation CaloEne...
Definition
CaloEnergyCnv_p2.cxx:41
CaloEnergy_p2
Definition
CaloEnergy_p2.h:26
CaloEnergy_p2::m_caloMuonIdTag
unsigned short m_caloMuonIdTag
Definition
CaloEnergy_p2.h:64
CaloEnergy_p2::m_energyLossType
int m_energyLossType
Definition
CaloEnergy_p2.h:62
CaloEnergy_p2::m_deposits
std::vector< DepositInCalo_p2 > m_deposits
Definition
CaloEnergy_p2.h:66
CaloEnergy_p2::m_etCore
float m_etCore
Definition
CaloEnergy_p2.h:67
CaloEnergy_p2::m_energyLoss
Trk::EnergyLoss_p1 m_energyLoss
Definition
CaloEnergy_p2.h:58
CaloEnergy_p2::m_fsrCandidateEnergy
float m_fsrCandidateEnergy
Definition
CaloEnergy_p2.h:65
CaloEnergy_p2::m_caloLRLikelihood
float m_caloLRLikelihood
Definition
CaloEnergy_p2.h:63
CaloEnergy
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition
CaloEnergy.h:28
CaloEnergy::EnergyLossType
EnergyLossType
Calo Energy Loss Type Parametrized : reconstruction configured to use the parametrization w/o looking...
Definition
CaloEnergy.h:43
DepositInCaloCnv_p2
Definition
DepositInCaloCnv_p2.h:28
DepositInCalo_p2
Definition
DepositInCalo_p2.h:22
DepositInCalo
class describing the measured energy loss associated to muons on the detector level,...
Definition
DepositInCalo.h:23
EnergyLossCnv_p1
T/P converter for class EnergyLoss.
Definition
EnergyLossCnv_p1.h:20
RootConversions::VectorConverter
Converter for vector<T> to vector.
Definition
VectorConverter.h:37
TConverterRegistry::Instance
static TConverterRegistry * Instance()
Return a pointer to the global registry instance.
Definition
TConverterRegistry.cxx:142
TConverterRegistry::AddStreamerConverter
void AddStreamerConverter(const std::string &from_type, const std::string &to_type, TMemberStreamer *streamer)
Definition
TConverterRegistry.cxx:113
trans
TH1F * trans(TH1F *h, bool t=false)
Definition
comparitor.cxx:199
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0