ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
RecTPCnv
src
MissingETCnv_p3.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/********************************************************************
6
7
NAME: MissingETCnv_p3.cxx
8
PACKAGE: offline/Reconstruction/RecTPCnv
9
10
PURPOSE: Transient/Persisten converter for MissingET class
11
********************************************************************/
12
13
// AthenaPoolCnvSvc includes
14
#include "
AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h
"
15
16
// MissingETEvent includes
17
#include "
MissingETEvent/MissingET.h
"
18
#include "
MissingETEvent/MissingEtRegions.h
"
19
20
// RecTPCnv includes
21
#include "
RecTPCnv/MissingETCnv_p3.h
"
22
#include "
RecTPCnv/MissingEtRegionsCnv_p3.h
"
23
24
#include <bit>
25
#include <utility>
26
#include <memory>
27
#include <vector>
28
29
class
MsgStream;
30
31
// region converter
32
static
const
MissingEtRegionsCnv_p3
regCnv
;
33
34
35
36
void
MissingETCnv_p3::persToTrans
(
const
MissingET_p3
* pers,
MissingET
* trans, MsgStream&
/* msg */
)
const
{
37
std::vector<float>::const_iterator it=pers->
m_AllTheData
.begin();
38
persToTrans
(trans, it);
39
return
;
40
}
41
42
void
MissingETCnv_p3::transToPers
(
const
MissingET
* trans,
MissingET_p3
* pers, MsgStream&
/* msg */
)
const
{
43
transToPers
(trans, pers->
m_AllTheData
);
44
return
;
45
}
46
47
48
void
MissingETCnv_p3::persToTrans
(
MissingET
* trans, std::vector<float>::const_iterator i)
const
{
49
++i;
// as there is just one it is not used.
50
float
fcnv=(*i); ++i;
51
auto
icnv = std::bit_cast<unsigned int>(fcnv);
52
MissingET::Source
source =
static_cast<
MissingET::Source
>
(icnv>>1);
53
double
ex = (*i);++i;
54
double
ey = (*i);++i;
55
double
etSum = (*i);++i;
56
std::unique_ptr<MissingEtRegions>
regions
;
57
if
( icnv & 1) {
58
regions
= std::make_unique<MissingEtRegions>();
59
regCnv
.persToTrans(
regions
.get(), i);
60
}
61
*trans =
MissingET
(source, std::move (
regions
), ex, ey, etSum);
62
return
;
63
}
64
65
void
MissingETCnv_p3::transToPers
(
const
MissingET
* trans, std::vector<float> &all )
const
{
66
67
all.push_back(3.0);
// storing version number
68
69
// folding together m_source and if regions are present
70
unsigned
int
tmp=
static_cast<
unsigned
int
>
(trans->
getSource
());
71
tmp <<= 1;
72
if
( trans->
getRegions
() != 0) tmp|=1;
73
74
union
conv{
unsigned
int
i;
float
f; } c;
75
c.i=tmp;
76
all.push_back(c.f);
77
78
// simple types
79
all.push_back(trans->
etx
());
80
all.push_back(trans->
ety
());
81
all.push_back(trans->
sumet
());
82
83
// calling regions tTP
84
if
( trans->
getRegions
() != 0)
regCnv
.transToPers(trans->
getRegions
(), all);
85
86
return
;
87
}
regCnv
static const MissingEtRegionsCnv_p1 regCnv
Definition
MissingETCnv_p1.cxx:28
MissingETCnv_p3.h
MissingEtRegionsCnv_p3.h
MissingEtRegions.h
regions
static const std::vector< std::string > regions
Definition
MuonTriggerSFFilesTest.cxx:21
MissingET
Athena::TPCnvVers::Old Athena::TPCnvVers::Old MissingET
Definition
RecTPCnv.cxx:64
MissingET.h
T_AthenaPoolTPConverter.h
MissingETCnv_p3::transToPers
virtual void transToPers(const MissingET *transObj, MissingET_p3 *persObj, MsgStream &msg) const override
Definition
MissingETCnv_p3.cxx:42
MissingETCnv_p3::persToTrans
virtual void persToTrans(const MissingET_p3 *persObj, MissingET *transObj, MsgStream &msg) const override
Definition
MissingETCnv_p3.cxx:36
MissingET_p3
Definition
MissingET_p3.h:18
MissingET_p3::m_AllTheData
std::vector< float > m_AllTheData
Definition
MissingET_p3.h:25
MissingET
Definition
Reconstruction/MissingETEvent/MissingETEvent/MissingET.h:23
MissingET::getRegions
virtual const MissingEtRegions * getRegions() const
Definition
MissingET.cxx:164
MissingET::sumet
virtual double sumet() const
Definition
MissingET.cxx:149
MissingET::Source
Source
Definition
Reconstruction/MissingETEvent/MissingETEvent/MissingET.h:29
MissingET::etx
virtual double etx() const
Definition
MissingET.cxx:141
MissingET::ety
virtual double ety() const
Definition
MissingET.cxx:145
MissingET::getSource
virtual Source getSource() const
Definition
MissingET.cxx:171
MissingEtRegionsCnv_p3
Definition
MissingEtRegionsCnv_p3.h:21
Generated on
for ATLAS Offline Software by
1.17.0