ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
Jet
JetEventTPCnv
src
JetSamplingCnv_p1.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
// JetSamplingCnv_p1.cxx
8
// Implementation file for class JetSamplingCnv_p1
9
// Author: S.Binet<binet@cern.ch>
10
// Modified: Belen.Salvachua@cern.ch Dec 2008
11
// Updated to latest transient JetSampling
13
14
15
// STL includes
16
17
// JetEvent includes
18
#include "
JetEvent/JetSampling.h
"
19
20
// definition of INT_MAX
21
#include <limits.h>
22
23
// JetEventTPCnv includes
24
#include "
JetEventTPCnv/JetSamplingCnv_p1.h
"
25
26
// little MACRO helpers
27
#define TPCNV_PERSTOTRANS(p,t,x) t->x = p->x
28
#define TPCNV_TRANSTOPERS(t,p,x) p->x = t->x
29
30
// statics
31
const
HepLorentzVectorCnv_p1
JetSamplingCnv_p1::m_hlvCnv
;
32
33
34
void
JetSamplingCnv_p1::persToTrans
(
const
JetSampling_p1
* pers,
35
JetSampling
*
trans
,
36
MsgStream&
msg
)
const
37
{
38
// msg << MSG::DEBUG << "Loading JetSampling from persistent state..."
39
// << endmsg;
40
41
CLHEP::HepLorentzVector tmp;
42
m_hlvCnv
.persToTrans( &pers->
m_pr
, &tmp,
msg
);
43
trans
->set_hlv_rec (tmp);
44
m_hlvCnv
.persToTrans( &pers->
m_pt
, &tmp,
msg
);
45
trans
->set_hlv_pic (tmp);
46
m_hlvCnv
.persToTrans( &pers->
m_pn
, &tmp,
msg
);
47
trans
->set_hlv_ntj (tmp);
48
49
// Persistent does not have the data driven jet kinematics m_pd,
50
// so we do not set it in transient, it will be initialize to zero in the constructor
51
52
m_hlvCnv
.persToTrans( &pers->
m_h1
, &tmp,
msg
);
53
trans
->set_hlv_h1 (tmp);
54
m_hlvCnv
.persToTrans( &pers->
m_pisa
, &tmp,
msg
);
55
trans
->set_hlv_pisa (tmp);
56
m_hlvCnv
.persToTrans( &pers->
m_samp
, &tmp,
msg
);
57
trans
->set_hlv_samp (tmp);
58
59
// Jet sampling layer info
60
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsPreSamplerB );
61
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsPreSamplerE );
62
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsEMB1 );
63
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsEME1 );
64
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsEMB2 );
65
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsEME2 );
66
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsEMB3 );
67
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsEME3 );
68
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileBar0 );
69
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileExt0 );
70
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileBar1 );
71
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileExt1 );
72
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileBar2 );
73
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileExt2 );
74
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsHEC0 );
75
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsHEC1 );
76
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsHEC2 );
77
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsHEC3 );
78
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileGap1 );
79
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileGap2 );
80
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsTileGap3 );
81
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsFCAL0 );
82
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsFCAL1 );
83
TPCNV_PERSTOTRANS
( pers,
trans
, m_ejsFCAL2 );
84
85
// Distance to 1st and 2nd NTJ is not present in persistent
86
// representation JetSampling_p1, but it is present in current
87
// transient representation JetSampling.
88
// We fill them to the biggest integer negative number
89
trans
->m_dr1 = -1.*INT_MAX;
90
trans
->m_dr2 = -1.*INT_MAX;
91
92
TPCNV_PERSTOTRANS
( pers,
trans
, m_tot );
93
TPCNV_PERSTOTRANS
( pers,
trans
, m_ctot );
94
TPCNV_PERSTOTRANS
( pers,
trans
, m_ehad );
95
TPCNV_PERSTOTRANS
( pers,
trans
, m_eem );
96
97
// JetSums does not exist in transient, removed from here
98
99
TPCNV_PERSTOTRANS
( pers,
trans
, m_eCryo );
100
TPCNV_PERSTOTRANS
( pers,
trans
, m_eGap );
101
TPCNV_PERSTOTRANS
( pers,
trans
, m_eScint );
102
TPCNV_PERSTOTRANS
( pers,
trans
, m_eNull );
103
104
// JetECS: Transient has more/finer granularity that can not be rebuilt from old variables
105
// in persistent JetSampling_p1
106
// Those variables will be set to -1.*INT_MAX, largest negative integer value
107
for
( std::size_t i = 0; i != std::tuple_size_v<JetSampling_p1::ECS_t>; ++i ) {
108
TPCNV_PERSTOTRANS
( pers,
trans
, m_ePreSamBCell[i] );
109
TPCNV_PERSTOTRANS
( pers,
trans
, m_ePreSamECell[i] );
110
TPCNV_PERSTOTRANS
( pers,
trans
, m_eEMB1Cell[i] );
111
TPCNV_PERSTOTRANS
( pers,
trans
, m_eEME1Cell[i] );
112
113
// In Transient XXXCell1 is for eta < 0.8
114
// and XXXCell2 is for eta >= 0.8 but in persistent we only have
115
// the sum of both. The converter will store this sum into XXXCell1 and
116
// will set XXXCell2 to the largest negative integer number.
117
trans
->m_eEMB2Cell1[i] = pers->
m_eEMB2Cell
[i];
118
trans
->m_eEMB2Cell2[i] = -1.*INT_MAX;
119
trans
->m_eEMB3Cell1[i] = pers->
m_eEMB3Cell
[i];
120
trans
->m_eEMB3Cell2[i] = -1.*INT_MAX;
121
122
// In Transient XXXCell1 is for eta < 2.5
123
// and XXXCell2 is for eta >= 2.5 but in persistent we only have
124
// the sum of both. The converter will store this sum into XXXCell1 and
125
// will set XXXCell2 to the largest negative integer number.
126
trans
->m_eEME2Cell1[i] = pers->
m_eEME2Cell
[i];
127
trans
->m_eEME2Cell2[i] = -1.*INT_MAX;
128
trans
->m_eEME3Cell1[i] = pers->
m_eEME3Cell
[i];
129
trans
->m_eEME3Cell2[i] = -1.*INT_MAX;
130
131
TPCNV_PERSTOTRANS
( pers,
trans
, m_eTileBar0Cell[i] );
132
TPCNV_PERSTOTRANS
( pers,
trans
, m_eTileBar1Cell[i] );
133
TPCNV_PERSTOTRANS
( pers,
trans
, m_eTileBar2Cell[i] );
134
TPCNV_PERSTOTRANS
( pers,
trans
, m_eTileExt0Cell[i] );
135
TPCNV_PERSTOTRANS
( pers,
trans
, m_eTileExt1Cell[i] );
136
TPCNV_PERSTOTRANS
( pers,
trans
, m_eTileExt2Cell[i] );
137
138
// In Transient XXXCell1 is for eta < 2.5
139
// and XXXCell2 is for eta >= 2.5 but in persistent we only have
140
// the sum of both. The converter will store this sum into XXXCell1 and
141
// will set XXXCell2 to the largest negative integer number.
142
trans
->m_eHec0Cell1[i] = pers->
m_eHec0Cell
[i];
143
trans
->m_eHec1Cell1[i] = pers->
m_eHec1Cell
[i];
144
trans
->m_eHec2Cell1[i] = pers->
m_eHec2Cell
[i];
145
trans
->m_eHec3Cell1[i] = pers->
m_eHec3Cell
[i];
146
trans
->m_eHec0Cell2[i] = -1.*INT_MAX;
147
trans
->m_eHec1Cell2[i] = -1.*INT_MAX;
148
trans
->m_eHec2Cell2[i] = -1.*INT_MAX;
149
trans
->m_eHec3Cell2[i] = -1.*INT_MAX;
150
151
TPCNV_PERSTOTRANS
( pers,
trans
, m_eFCal0Cell[i] );
152
TPCNV_PERSTOTRANS
( pers,
trans
, m_eFCal1Cell[i] );
153
TPCNV_PERSTOTRANS
( pers,
trans
, m_eFCal2Cell[i] );
154
}
155
156
157
// Energy in cone radii
158
for
( std::size_t i = 0; i != std::tuple_size_v<JetSampling_p1::ERad_t>; ++i ) {
159
160
// Name of energy in cone radii in transient is different from persistent
161
trans
->m_erad_cells[i] = pers->
m_erad
[i];
162
163
// Persistent does not have m_erad_track, set transient value to -INT_MAX
164
trans
->m_erad_tracks[i] = -1.*INT_MAX;
165
}
166
167
// msg << MSG::DEBUG << "Loaded JetSampling from persistent state [OK]"
168
// << endmsg;
169
}
170
171
void
JetSamplingCnv_p1::transToPers
(
const
JetSampling
*
trans
,
172
JetSampling_p1
* pers,
173
MsgStream&
msg
)
const
174
{
175
// msg << MSG::DEBUG << "Creating persistent state of JetSampling..."
176
// << endmsg;
177
178
m_hlvCnv
.transToPers( &
trans
->m_pr, &pers->
m_pr
,
msg
);
179
m_hlvCnv
.transToPers( &
trans
->m_pt, &pers->
m_pt
,
msg
);
180
m_hlvCnv
.transToPers( &
trans
->m_pn, &pers->
m_pn
,
msg
);
181
m_hlvCnv
.transToPers( &
trans
->m_h1, &pers->
m_h1
,
msg
);
182
m_hlvCnv
.transToPers( &
trans
->m_pisa, &pers->
m_pisa
,
msg
);
183
m_hlvCnv
.transToPers( &
trans
->m_samp, &pers->
m_samp
,
msg
);
184
185
// Jet sampling layer info
186
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsPreSamplerB );
187
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsPreSamplerE );
188
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsEMB1 );
189
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsEME1 );
190
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsEMB2 );
191
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsEME2 );
192
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsEMB3 );
193
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsEME3 );
194
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileBar0 );
195
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileExt0 );
196
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileBar1 );
197
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileExt1 );
198
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileBar2 );
199
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileExt2 );
200
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsHEC0 );
201
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsHEC1 );
202
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsHEC2 );
203
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsHEC3 );
204
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileGap1 );
205
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileGap2 );
206
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsTileGap3 );
207
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsFCAL0 );
208
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsFCAL1 );
209
TPCNV_TRANSTOPERS
(
trans
, pers, m_ejsFCAL2 );
210
211
TPCNV_TRANSTOPERS
(
trans
, pers, m_tot );
212
TPCNV_TRANSTOPERS
(
trans
, pers, m_ctot );
213
TPCNV_TRANSTOPERS
(
trans
, pers, m_ehad );
214
TPCNV_TRANSTOPERS
(
trans
, pers, m_eem );
215
216
// JetSums does not exist in transient represtation
217
// however they are still accessible using some functions
218
// that calculate them throught JetECS
219
pers->
m_edEMB0Cell
[0] =
trans
->eEMBCell(0);
//EMB
220
pers->
m_edEMB0Cell
[1] =
trans
->eEMBCell(1);
221
pers->
m_edEME0Cell
[0] =
trans
->eEMECell(0);
//EME
222
pers->
m_edEME0Cell
[1] =
trans
->eEMECell(1);
223
for
( std::size_t i = 0; i != std::tuple_size_v<JetSampling_p1::ECS_t>; ++i ) {
224
pers->
m_edEMB1Cell
[i] =
trans
->eEMBCell(0, i);
// EMB
225
pers->
m_edEMB2Cell
[i] =
trans
->eEMBCell(1, i);
226
pers->
m_edEME1Cell
[i] =
trans
->eEMECell(0, i);
// EME
227
pers->
m_edEME2Cell
[i] =
trans
->eEMECell(1, i);
228
pers->
m_edTile1Cell
[i] =
trans
->eTileCell(0, i);
// TILE
229
pers->
m_edTile2Cell
[i] =
trans
->eTileCell(1, i);
230
pers->
m_edHec1Cell
[i] =
trans
->eHecCell(0, i);
// HEC
231
pers->
m_edHec2Cell
[i] =
trans
->eHecCell(1, i);
232
pers->
m_edFCal1Cell
[i] =
trans
->eFCalCell(0, i);
// FCAL
233
pers->
m_edFCal2Cell
[i] =
trans
->eFCalCell(1, i);
234
}
235
236
TPCNV_TRANSTOPERS
(
trans
, pers, m_eCryo );
237
TPCNV_TRANSTOPERS
(
trans
, pers, m_eGap );
238
TPCNV_TRANSTOPERS
(
trans
, pers, m_eScint );
239
TPCNV_TRANSTOPERS
(
trans
, pers, m_eNull );
240
241
// JetECS: some in persistent are different than in transient
242
for
( std::size_t i = 0; i != std::tuple_size_v<JetSampling_p1::ECS_t>; ++i ) {
243
TPCNV_TRANSTOPERS
(
trans
, pers, m_ePreSamBCell[i] );
244
TPCNV_TRANSTOPERS
(
trans
, pers, m_ePreSamECell[i] );
245
TPCNV_TRANSTOPERS
(
trans
, pers, m_eEMB1Cell[i] );
246
TPCNV_TRANSTOPERS
(
trans
, pers, m_eEME1Cell[i] );
247
248
// Transient has the energy separated in 2 eta bins, for eta < 0.8 and eta >=0.8
249
// the persistent variables is the sum of both
250
pers->
m_eEMB2Cell
[i] =
trans
->m_eEMB2Cell1[i] +
trans
->m_eEMB2Cell2[i];
251
pers->
m_eEMB3Cell
[i] =
trans
->m_eEMB3Cell1[i] +
trans
->m_eEMB3Cell2[i];
252
253
// Transient has the energy separated in 2 eta bins, for eta < 2.5 and eta >=2.5
254
// the persistent variables is the sum of both
255
pers->
m_eEME2Cell
[i] =
trans
->m_eEME2Cell1[i] +
trans
->m_eEME2Cell2[i];
256
pers->
m_eEME3Cell
[i] =
trans
->m_eEME3Cell1[i] +
trans
->m_eEME3Cell2[i];
257
258
TPCNV_TRANSTOPERS
(
trans
, pers, m_eTileBar0Cell[i] );
259
TPCNV_TRANSTOPERS
(
trans
, pers, m_eTileBar1Cell[i] );
260
TPCNV_TRANSTOPERS
(
trans
, pers, m_eTileBar2Cell[i] );
261
TPCNV_TRANSTOPERS
(
trans
, pers, m_eTileExt0Cell[i] );
262
TPCNV_TRANSTOPERS
(
trans
, pers, m_eTileExt1Cell[i] );
263
TPCNV_TRANSTOPERS
(
trans
, pers, m_eTileExt2Cell[i] );
264
265
// Transient has the energy separated in 2 eta bins, for eta < 2.5 and eta >=2.5
266
// the persistent variables is the sum of both
267
pers->
m_eHec0Cell
[i] =
trans
->m_eHec0Cell1[i] +
trans
->m_eHec0Cell2[i];
268
pers->
m_eHec1Cell
[i] =
trans
->m_eHec1Cell1[i] +
trans
->m_eHec1Cell2[i];
269
pers->
m_eHec2Cell
[i] =
trans
->m_eHec2Cell1[i] +
trans
->m_eHec2Cell2[i];
270
pers->
m_eHec3Cell
[i] =
trans
->m_eHec3Cell1[i] +
trans
->m_eHec3Cell2[i];
271
272
TPCNV_TRANSTOPERS
(
trans
, pers, m_eFCal0Cell[i] );
273
TPCNV_TRANSTOPERS
(
trans
, pers, m_eFCal1Cell[i] );
274
TPCNV_TRANSTOPERS
(
trans
, pers, m_eFCal2Cell[i] );
275
}
276
277
// Energy in cone radii
278
for
( std::size_t i = 0; i != std::tuple_size_v<JetSampling_p1::ERad_t>; ++i ) {
279
// Name of energy in cone radii in transient is different from persistent
280
pers->
m_erad
[i] =
trans
->m_erad_cells[i];
281
282
// Persistent does not contain m_erad_tracks
283
}
284
285
// msg << MSG::DEBUG << "Created persistent state of JetSampling [OK]"
286
// << endmsg;
287
}
TPCNV_TRANSTOPERS
#define TPCNV_TRANSTOPERS(t, p, x)
Definition
JetSamplingCnv_p1.cxx:28
TPCNV_PERSTOTRANS
#define TPCNV_PERSTOTRANS(p, t, x)
Definition
JetSamplingCnv_p1.cxx:27
JetSamplingCnv_p1.h
JetSampling.h
HepLorentzVectorCnv_p1
Definition
HepLorentzVectorCnv_p1.h:34
JetSamplingCnv_p1::persToTrans
virtual void persToTrans(const JetSampling_p1 *pers, JetSampling *trans, MsgStream &msg) const override
Method creating the transient representation of JetSampling from its persistent representation JetSam...
Definition
JetSamplingCnv_p1.cxx:34
JetSamplingCnv_p1::m_hlvCnv
static const HepLorentzVectorCnv_p1 m_hlvCnv
Definition
JetSamplingCnv_p1.h:58
JetSamplingCnv_p1::transToPers
virtual void transToPers(const JetSampling *trans, JetSampling_p1 *pers, MsgStream &msg) const override
Method creating the persistent representation JetSampling_p1 from its transient representation JetSam...
Definition
JetSamplingCnv_p1.cxx:171
JetSampling_p1
Definition
JetSampling_p1.h:24
JetSampling_p1::m_edFCal1Cell
ECS_t m_edFCal1Cell
Definition
JetSampling_p1.h:116
JetSampling_p1::m_edHec2Cell
ECS_t m_edHec2Cell
Definition
JetSampling_p1.h:115
JetSampling_p1::m_eEMB3Cell
ECS_t m_eEMB3Cell
Definition
JetSampling_p1.h:128
JetSampling_p1::m_edEME1Cell
ECS_t m_edEME1Cell
Definition
JetSampling_p1.h:110
JetSampling_p1::m_edEMB0Cell
JS_t m_edEMB0Cell
Definition
JetSampling_p1.h:106
JetSampling_p1::m_edEMB1Cell
ECS_t m_edEMB1Cell
Definition
JetSampling_p1.h:107
JetSampling_p1::m_eEME3Cell
ECS_t m_eEME3Cell
Definition
JetSampling_p1.h:131
JetSampling_p1::m_eHec0Cell
ECS_t m_eHec0Cell
Definition
JetSampling_p1.h:138
JetSampling_p1::m_erad
ERad_t m_erad
Definition
JetSampling_p1.h:148
JetSampling_p1::m_eEME2Cell
ECS_t m_eEME2Cell
Definition
JetSampling_p1.h:130
JetSampling_p1::m_eHec1Cell
ECS_t m_eHec1Cell
Definition
JetSampling_p1.h:139
JetSampling_p1::m_pt
HepLorentzVector_p1 m_pt
Truth jet kinematics.
Definition
JetSampling_p1.h:60
JetSampling_p1::m_edFCal2Cell
ECS_t m_edFCal2Cell
Definition
JetSampling_p1.h:117
JetSampling_p1::m_eHec2Cell
ECS_t m_eHec2Cell
Definition
JetSampling_p1.h:140
JetSampling_p1::m_edTile1Cell
ECS_t m_edTile1Cell
Definition
JetSampling_p1.h:112
JetSampling_p1::m_eHec3Cell
ECS_t m_eHec3Cell
Definition
JetSampling_p1.h:141
JetSampling_p1::m_edEME2Cell
ECS_t m_edEME2Cell
Definition
JetSampling_p1.h:111
JetSampling_p1::m_edHec1Cell
ECS_t m_edHec1Cell
Definition
JetSampling_p1.h:114
JetSampling_p1::m_edEMB2Cell
ECS_t m_edEMB2Cell
Definition
JetSampling_p1.h:108
JetSampling_p1::m_edTile2Cell
ECS_t m_edTile2Cell
Definition
JetSampling_p1.h:113
JetSampling_p1::m_eEMB2Cell
ECS_t m_eEMB2Cell
Definition
JetSampling_p1.h:127
JetSampling_p1::m_pisa
HepLorentzVector_p1 m_pisa
Calib jet kinematics (PISA).
Definition
JetSampling_p1.h:69
JetSampling_p1::m_edEME0Cell
JS_t m_edEME0Cell
Definition
JetSampling_p1.h:109
JetSampling_p1::m_pr
HepLorentzVector_p1 m_pr
Reco jet kinematics.
Definition
JetSampling_p1.h:57
JetSampling_p1::m_h1
HepLorentzVector_p1 m_h1
Calib jet kinematics (H1).
Definition
JetSampling_p1.h:66
JetSampling_p1::m_samp
HepLorentzVector_p1 m_samp
Calib jet kinematics (samplings).
Definition
JetSampling_p1.h:72
JetSampling_p1::m_pn
HepLorentzVector_p1 m_pn
Nearest truth jet kinematics.
Definition
JetSampling_p1.h:63
JetSampling
Definition
JetSampling.h:44
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