ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
RecEventTPCnv
src
RecoTimingObjCnv_p1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
#include "
RecEventTPCnv/RecoTimingObjCnv_p1.h
"
7
#include "
CxxUtils/read_athena_statm.h
"
8
9
#include <malloc.h>
10
11
#include <sys/time.h>
12
#include <sys/resource.h>
13
#include <unistd.h>
14
15
void
RecoTimingObjCnv_p1::persToTrans
(
const
RecoTimingObj_p1
* pers,
16
RecoTimingObj
* trans,
17
MsgStream&
msg
)
18
{
19
if
(
msg
.level() <= MSG::DEBUG)
20
msg
<< MSG::DEBUG <<
"Loading RecoTimingObj from persistent state.[start]"
<<
endmsg
;
21
trans->
m_readFromFile
=
true
;
22
trans->
m_isTimings
=pers->
m_isTimings
;
23
24
trans->clear();
25
trans->reserve(pers->
timings
.size());
26
for
(
unsigned
int
i(0); i<pers->
timings
.size(); ++i )
27
trans->push_back( pers->
timings
[i] );
28
if
(
msg
.level() <= MSG::DEBUG)
29
msg
<< MSG::DEBUG <<
"Loading RecoTimingObj from persistent state.[end]"
<<
endmsg
;
30
return
;
31
}
32
33
void
RecoTimingObjCnv_p1::transToPers
(
const
RecoTimingObj
* trans,
34
RecoTimingObj_p1
* pers,
35
MsgStream&
msg
)
36
{
37
if
(
msg
.level() <= MSG::DEBUG)
38
msg
<< MSG::DEBUG <<
"Creating persistent state of RecoTimingObj.[start]"
<<
endmsg
;
39
if
( trans->
m_readFromFile
)
40
pers->
timings
.reserve(trans->size());
41
else
42
{
43
if
( trans->
m_isTimings
)
44
pers->
timings
.reserve(trans->size()+1);
45
else
46
pers->
timings
.reserve(trans->size()+2);
47
}
48
pers->
m_isTimings
=trans->
m_isTimings
;
49
50
for
(
unsigned
int
i(0); i<trans->size(); ++i )
51
{
52
pers->
timings
.push_back( (*trans)[i] );
53
if
(
msg
.level() <= MSG::DEBUG)
54
msg
<< MSG::DEBUG <<
"Creating persistent state of RecoTimingObj.["
<< i <<
"] : "
<< (*trans)[i] <<
endmsg
;
55
}
56
if
( ! trans->
m_readFromFile
&& trans->size() > 0 )
57
{
58
float
f0(0);
59
float
f1(0);
60
float
f2(0);
61
62
if
( trans->size() > 0 )
63
f0=(*trans)[0];
64
if
( ! trans->
m_isTimings
)
65
{
66
if
( trans->size() > 1 )
67
f1=(*trans)[1];
68
if
( trans->size() > 2 )
69
f2=(*trans)[2];
70
}
71
72
if
( pers->
m_isTimings
)
73
{
74
struct
rusage
r
;
75
getrusage(RUSAGE_SELF, &
r
);
76
f0=float(
r
.ru_utime.tv_sec+
r
.ru_stime.tv_sec) + float(
r
.ru_utime.tv_usec+
r
.ru_stime.tv_usec)/1000000 - f0;
77
}
78
else
79
{
80
if
(
m_pagesize
==0)
81
m_pagesize
=sysconf(_SC_PAGESIZE);
82
athena_statm
statm =
read_athena_statm
();
83
f0=float(statm.
vm_pages
*
m_pagesize
)-f0;
84
f1=float(statm.
rss_pages
*
m_pagesize
)-f1;
85
f2=float(statm.
shr_pages
*
m_pagesize
)-f2;
86
}
87
pers->
timings
.push_back( f0 );
88
if
( ! pers->
m_isTimings
)
89
{
90
pers->
timings
.push_back( f1 );
91
pers->
timings
.push_back( f2 );
92
}
93
if
(
msg
.level() <= MSG::DEBUG)
94
msg
<< MSG::DEBUG <<
"Creating persistent state of RecoTimingObj.[end] : "
<< f0 <<
endmsg
;
95
}
96
if
(
msg
.level() <= MSG::DEBUG)
97
msg
<< MSG::DEBUG <<
"Creating persistent state of RecoTimingObj.[end]"
<<
endmsg
;
98
return
;
99
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
RecoTimingObjCnv_p1.h
RecoTimingObjCnv_p1::m_pagesize
unsigned long m_pagesize
Definition
RecoTimingObjCnv_p1.h:26
RecoTimingObjCnv_p1::persToTrans
virtual void persToTrans(const RecoTimingObj_p1 *persObj, RecoTimingObj *transObj, MsgStream &msg)
Definition
RecoTimingObjCnv_p1.cxx:15
RecoTimingObjCnv_p1::transToPers
virtual void transToPers(const RecoTimingObj *transObj, RecoTimingObj_p1 *persObj, MsgStream &msg)
Definition
RecoTimingObjCnv_p1.cxx:33
RecoTimingObj_p1
Definition
RecoTimingObj_p1.h:14
RecoTimingObj_p1::m_isTimings
bool m_isTimings
Definition
RecoTimingObj_p1.h:29
RecoTimingObj_p1::timings
std::vector< float > timings
Definition
RecoTimingObj_p1.h:27
RecoTimingObj
Definition
RecoTimingObj.h:13
RecoTimingObj::m_isTimings
bool m_isTimings
Definition
RecoTimingObj.h:24
RecoTimingObj::m_readFromFile
bool m_readFromFile
Definition
RecoTimingObj.h:22
r
int r
Definition
globals.cxx:22
read_athena_statm.h
read_athena_statm
struct athena_statm read_athena_statm()
Definition
read_athena_statm.cxx:15
athena_statm
Definition
read_athena_statm.h:13
athena_statm::rss_pages
unsigned int rss_pages
Definition
read_athena_statm.h:15
athena_statm::shr_pages
unsigned int shr_pages
Definition
read_athena_statm.h:16
athena_statm::vm_pages
unsigned int vm_pages
Definition
read_athena_statm.h:14
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0