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-2019 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
25
// #include <stdlib.h> // not needed here?
26
27
// region converter
28
static
const
MissingEtRegionsCnv_p3
regCnv
;
29
30
31
32
void
MissingETCnv_p3::persToTrans
(
const
MissingET_p3
* pers,
MissingET
* trans, MsgStream&
/* msg */
)
const
{
33
std::vector<float>::const_iterator it=pers->
m_AllTheData
.begin();
34
persToTrans
(trans, it);
35
return
;
36
}
37
38
void
MissingETCnv_p3::transToPers
(
const
MissingET
* trans,
MissingET_p3
* pers, MsgStream&
/* msg */
)
const
{
39
transToPers
(trans, pers->
m_AllTheData
);
40
return
;
41
}
42
43
44
void
MissingETCnv_p3::persToTrans
(
MissingET
* trans, std::vector<float>::const_iterator i)
const
{
45
46
//float version;
47
//version = (*i);
48
++i;
// as there is just one it is not used.
49
50
union
conv{
unsigned
int
i;
float
f; } c;
51
c.f=(*i); ++i;
52
MissingET::Source
source =
static_cast<
MissingET::Source
>
(c.i>>1);
53
double
ex = (*i);++i;
54
double
ey = (*i);++i;
55
double
etSum = (*i);++i;
56
std::unique_ptr<MissingEtRegions>
regions
;
57
if
( c.i & 1) {
58
regions
= std::make_unique<MissingEtRegions>();
59
regCnv
.persToTrans(
regions
.get(), i);
60
}
61
*trans =
MissingET
(source,
62
std::move (
regions
),
63
ex, ey, etSum);
64
65
// std::cout<<"IN source: "<<trans->m_source;
66
// std::cout<<"\tex: "<<trans->m_ex;
67
// std::cout<<"\tey: "<<trans->m_ey;
68
// std::cout<<"\tetSum: "<<trans->m_etSum;
69
// if (trans->m_regions != 0) std::cout<<"\thas Regions"<<std::endl; else std::cout<<"\tNO Regions"<<std::endl;
70
71
return
;
72
}
73
74
void
MissingETCnv_p3::transToPers
(
const
MissingET
* trans, std::vector<float> &all )
const
{
75
76
all.push_back(3.0);
// storing version number
77
78
// folding together m_source and if regions are present
79
unsigned
int
tmp=
static_cast<
unsigned
int
>
(trans->
getSource
());
80
tmp <<= 1;
81
if
( trans->
getRegions
() != 0) tmp|=1;
82
83
union
conv{
unsigned
int
i;
float
f; } c;
84
c.i=tmp;
85
all.push_back(c.f);
86
87
// simple types
88
all.push_back(trans->
etx
());
89
all.push_back(trans->
ety
());
90
all.push_back(trans->
sumet
());
91
92
// calling regions tTP
93
if
( trans->
getRegions
() != 0)
regCnv
.transToPers(trans->
getRegions
(), all);
94
95
// std::cout<<"OUT source: "<<trans->m_source;
96
// std::cout<<"\tex: "<<trans->m_ex;
97
// std::cout<<"\tey: "<<trans->m_ey;
98
// std::cout<<"\tetSum: "<<trans->m_etSum;
99
// if (trans->m_regions != 0) std::cout<<"\thas Regions"<<std::endl; else std::cout<<"\tNO Regions"<<std::endl;
100
101
return
;
102
}
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:38
MissingETCnv_p3::persToTrans
virtual void persToTrans(const MissingET_p3 *persObj, MissingET *transObj, MsgStream &msg) const override
Definition
MissingETCnv_p3.cxx:32
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