ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TileID
TileTripReader
src
AthTileTripReader.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/*
6
* File: AthTileTripReader.cxx
7
* Author: Stephen Cole <stephen.cole@cern.ch>
8
*
9
* Created on August 21, 2012, 11:32 AM
10
*/
11
12
#include "
AthenaBaseComps/AthAlgorithm.h
"
13
#include "
xAODEventInfo/EventInfo.h
"
14
#include "
AthenaKernel/errorcheck.h
"
15
#include "
EventKernel/INavigable4Momentum.h
"
16
#include "
PathResolver/PathResolver.h
"
17
#include "GaudiKernel/MsgStream.h"
18
19
#include "TSystem.h"
20
21
#include "
TileTripReader/AthTileTripReader.h
"
22
23
using namespace
std
;
24
using namespace
Root
;
25
using
xAOD::EventInfo
;
26
27
AthTileTripReader::AthTileTripReader
(
const
std::string&
type
,
28
const
std::string& name,
29
const
IInterface* parent):
AthAlgTool
(
type
,name,parent) {
30
31
m_tripReader
=
new
Root::TTileTripReader
;
32
declareInterface<AthTileTripReader>(
this
);
33
34
declareProperty
(
"TileTripFile"
,
35
m_tripFile
=
"/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/TileTripReader/CompleteTripList_2015-2018.root"
,
36
"Path to the trip list file"
);
37
38
declareProperty
(
"dR"
,
m_dR
=0.4);
39
40
}
41
42
43
AthTileTripReader::~AthTileTripReader
() {
44
if
(
m_tripReader
)
delete
m_tripReader
;
45
}
46
47
48
StatusCode
AthTileTripReader::initialize
(){
49
MsgStream mslog( msgSvc(), name() );
50
const
char
* fname;
51
if
(
m_tripFile
[0] ==
'/'
||
m_tripFile
[0] ==
'$'
||
52
m_tripFile
[0] ==
'.'
||
m_tripFile
.find(
":"
)!=string::npos){
53
fname = gSystem->ExpandPathName(
m_tripFile
.c_str() );
54
}
55
else
{
56
m_tripFile
=
PathResolverFindXMLFile
(
m_tripFile
);
57
if
(
m_tripFile
.empty() )
58
ATH_MSG_WARNING
(
"Could NOT resolve file name "
<<
m_tripFile
);
59
fname=
m_tripFile
.data();
60
}
61
62
if
(!
m_tripReader
->setTripFile(fname)){
63
ATH_MSG_ERROR
(
"ERROR! No trip file loaded!"
);
64
return
StatusCode::FAILURE;
65
}
66
MSG::Level cLevel=mslog.currentLevel();
67
if
(cLevel<=MSG::DEBUG)
68
m_tripReader
->setVerbosity(1);
69
else
m_tripReader
->setVerbosity(0);
70
m_tripReader
->initialize();
71
return
StatusCode::SUCCESS;
72
}
73
74
StatusCode
AthTileTripReader::finalize
(){
75
if
(!
m_tripReader
->finalize()){
76
ATH_MSG_ERROR
(
"ERROR! Something went wrong at finalize!"
);
77
return
StatusCode::FAILURE;
78
}
79
return
StatusCode::SUCCESS;
80
}
81
82
asg::AcceptData
AthTileTripReader::accept
(
const
INavigable4Momentum
* part){
83
const
EventInfo
* evt=0;
84
StatusCode
sc
=
evtStore
()->retrieve(evt,
"ByteStreamEventInfo"
);
85
if
(
sc
.isFailure()){
86
ATH_MSG_ERROR
(
"ERROR! Could not retrieve event info from store gate!"
);
87
return
asg::AcceptData
(&
m_tripReader
->getAcceptInfo());
88
}
89
if
(!part)
return
m_tripReader
->accept(evt->runNumber(),
90
evt->lumiBlock(),
91
evt->eventNumber());
92
93
int
tileFlags=evt->eventFlags(
EventInfo::Tile
);
94
int
tileError=evt->errorState(
EventInfo::Tile
);
95
return
m_tripReader
->accept(evt->runNumber(),
96
evt->lumiBlock(),
97
evt->eventNumber(),
98
part->eta(),
99
part->phi(),
100
tileError,
101
tileFlags);
102
}
103
104
float
AthTileTripReader::calculate
(
const
INavigable4Momentum
* part){
105
const
EventInfo
* evt=0;
106
StatusCode
sc
=
evtStore
()->retrieve(evt,
"ByteStreamEventInfo"
);
107
if
(
sc
.isFailure()){
108
ATH_MSG_ERROR
(
"ERROR! Could not retrieve event info from store gate!"
);
109
return
0;
110
}
111
112
int
tileFlags=evt->eventFlags(
EventInfo::Tile
);
113
int
tileError=evt->errorState(
EventInfo::Tile
);
114
return
m_tripReader
->calculate(evt->runNumber(),
115
evt->lumiBlock(),
116
part->eta(),
117
part->phi(),
118
m_dR
,
119
tileError,
120
tileFlags);
121
}
122
123
bool
AthTileTripReader::checkEvent
(){
124
const
EventInfo
* evt=0;
125
StatusCode
sc
=
evtStore
()->retrieve(evt,
"ByteStreamEventInfo"
);
126
if
(
sc
.isFailure()){
127
ATH_MSG_ERROR
(
"ERROR! Could not retrieve event info from store gate!"
);
128
return
false
;
129
}
130
131
return
m_tripReader
->checkEvent(evt->runNumber(),
132
evt->lumiBlock(),
133
evt->eventNumber());
134
135
}
AthAlgorithm.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
AthTileTripReader.h
errorcheck.h
Helpers for checking error return status codes and reporting errors.
INavigable4Momentum.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
PathResolver.h
PathResolverFindXMLFile
std::string PathResolverFindXMLFile(const std::string &logical_file_name)
Definition
PathResolver.cxx:315
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition
AthCommonDataStore.h:145
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
Definition
AthCommonDataStore.h:85
AthTileTripReader::~AthTileTripReader
virtual ~AthTileTripReader()
Definition
AthTileTripReader.cxx:43
AthTileTripReader::calculate
float calculate(const INavigable4Momentum *part)
Definition
AthTileTripReader.cxx:104
AthTileTripReader::AthTileTripReader
AthTileTripReader(const std::string &type, const std::string &name, const IInterface *parent)
Definition
AthTileTripReader.cxx:27
AthTileTripReader::finalize
virtual StatusCode finalize() override
Definition
AthTileTripReader.cxx:74
AthTileTripReader::checkEvent
bool checkEvent()
Definition
AthTileTripReader.cxx:123
AthTileTripReader::m_tripFile
std::string m_tripFile
Definition
AthTileTripReader.h:65
AthTileTripReader::initialize
virtual StatusCode initialize() override
Definition
AthTileTripReader.cxx:48
AthTileTripReader::m_tripReader
Root::TTileTripReader * m_tripReader
Definition
AthTileTripReader.h:66
AthTileTripReader::m_dR
double m_dR
Definition
AthTileTripReader.h:67
AthTileTripReader::accept
asg::AcceptData accept(const INavigable4Momentum *part=0)
Definition
AthTileTripReader.cxx:82
INavigable4Momentum
Definition
INavigable4Momentum.h:21
Root::TTileTripReader
Definition
TTileTripReader.h:41
asg::AcceptData
Definition
AcceptData.h:31
xAOD::EventInfo_v1::Tile
@ Tile
The Tile calorimeter.
Definition
EventInfo_v1.h:336
EventInfo
Definition
EventInfo.py:1
Root
Definition
IGoodRunsListSelectorTool.h:15
std
STL namespace.
xAOD::EventInfo
EventInfo_v1 EventInfo
Definition of the latest event info version.
Definition
IEventInfoCnvTool.h:16
type
EventInfo.h
Generated on
for ATLAS Offline Software by
1.17.0