ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TestBeam
TBRec
src
CBNT_CaloH6.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//#####################################################
6
//# #
7
//# File : CBNT_Calo_H6.cxx #
8
//# Package: TBRec #
9
//# #
10
//# Author : Marco Bieri <mbieri@sfu.ca> #
11
//# Adopted for CBNTAA Pavol Strizenec #
12
//# #
13
//#####################################################
14
15
#include "
CBNT_CaloH6.h
"
16
17
#include "
CaloIdentifier/CaloCell_ID.h
"
18
#include "
CaloEvent/CaloCellContainer.h
"
19
#include "
StoreGate/ReadCondHandle.h
"
20
21
#include "Identifier/Identifier.h"
22
23
24
CBNT_CaloH6::CBNT_CaloH6
(
const
std::string & name, ISvcLocator * pSvcLocator) :
25
CBNT_TBRecBase
(name, pSvcLocator),
26
m_emecID_help
(0),
27
m_hecID_help
(0),
28
m_fcalID_help
(0)
29
{
30
declareProperty
(
"Det_Type"
,
m_det_type
);
31
declareProperty
(
"Max_Chan"
,
m_numchan
);
32
m_noiseSigma
= 0;
33
34
m_NoiseRMS
= 0;
35
m_energy
= 0;
36
m_eta
= 0;
37
m_ieta
= 0;
38
m_iphi
= 0;
39
m_phi
= 0;
40
m_region
= 0;
41
m_sampling
= 0;
42
}
43
44
CBNT_CaloH6::~CBNT_CaloH6
(){}
45
46
StatusCode
CBNT_CaloH6::CBNT_initialize
()
47
{
//initialize
48
ATH_MSG_DEBUG
(
"initialize()"
);
49
50
m_hecID_help
= NULL;
51
m_emecID_help
= NULL;
52
m_fcalID_help
= NULL;
53
54
// Identifier helpers
55
const
CaloCell_ID
* idHelper =
nullptr
;
56
ATH_CHECK
(
detStore
()->retrieve (idHelper,
"CaloCell_ID"
) );
57
m_hecID_help
= idHelper->
hec_idHelper
();
58
if
(!
m_hecID_help
) {
59
ATH_MSG_ERROR
(
"unable to obtain hec id "
);
60
return
StatusCode::FAILURE;
61
}
62
63
m_emecID_help
= idHelper->
em_idHelper
();
64
if
(!
m_emecID_help
) {
65
ATH_MSG_ERROR
(
"unable to obtain emec id "
);
66
return
StatusCode::FAILURE;
67
}
68
69
m_fcalID_help
= idHelper->
fcal_idHelper
();
70
if
(!
m_fcalID_help
) {
71
ATH_MSG_ERROR
(
"unable to obtain fcal id "
);
72
return
StatusCode::FAILURE;
73
}
74
75
ATH_MSG_DEBUG
(
"Got to before p_toolSvc"
);
76
77
ATH_CHECK
(
m_elecNoiseKey
.initialize() );
78
79
ATH_MSG_DEBUG
(
"Before Booking Ntuple"
);
80
81
//hec, 241 channels
82
//emec, 113 channels
83
//fcal, 347 channels
84
85
addBranch
(
m_det_type
+
"_energy"
,
m_energy
);
86
addBranch
(
m_det_type
+
"_noiseRMS"
,
m_NoiseRMS
);
87
addBranch
(
m_det_type
+
"_ieta"
,
m_ieta
);
88
addBranch
(
m_det_type
+
"_iphi"
,
m_iphi
);
89
addBranch
(
m_det_type
+
"_eta"
,
m_eta
);
90
addBranch
(
m_det_type
+
"_phi"
,
m_phi
);
91
addBranch
(
m_det_type
+
"_sampling"
,
m_sampling
);
92
93
if
(
m_det_type
==
"HEC"
) {
94
addBranch
(
m_det_type
+
"_region"
,
m_region
);
95
}
else
m_region
= 0;
96
97
return
StatusCode::SUCCESS;
98
99
}
//initialize
100
101
/*-----------------------------------Execute-----------------------------*/
102
103
StatusCode
CBNT_CaloH6::CBNT_execute
()
104
{
//execute
105
ATH_MSG_DEBUG
(
"execute()"
);
106
107
//Accesing the CaloCellContainer
108
const
CaloCellContainer
* cellContainer;
109
110
ATH_CHECK
(
evtStore
()->retrieve(cellContainer) );
111
112
SG::ReadCondHandle<CaloNoise>
elecNoise (
m_elecNoiseKey
);
113
114
for
(
const
CaloCell
* cell_ptr : *cellContainer) {
115
116
//obtaining dde pointer
117
const
CaloDetDescrElement
* caloDDE_ptr = cell_ptr->caloDDE();
118
119
//obtaining SubCalo
120
const
CaloCell_ID::SUBCALO
subcalo = caloDDE_ptr->
getSubCalo
();
121
122
//obtaining sampling (layer)
123
const
CaloCell_ID::CaloSample
sampling = caloDDE_ptr->
getSampling
();
124
if
(
m_det_type
==
"HEC"
&& subcalo==
CaloCell_ID::LARHEC
) {
125
126
const
Identifier
hecid=cell_ptr->ID();
127
128
float
noise = elecNoise->getNoise(hecid, cell_ptr->gain());
129
ATH_MSG_DEBUG
(
"noiseRMS HEC"
<<noise);
130
131
m_energy
->push_back(cell_ptr->energy());
132
m_NoiseRMS
->push_back(noise);
133
m_eta
->push_back(caloDDE_ptr->
eta
());
134
m_phi
->push_back(caloDDE_ptr->
phi
());
135
m_ieta
->push_back(
m_hecID_help
->eta(hecid));
136
m_iphi
->push_back(
m_hecID_help
->phi(hecid));
137
m_sampling
->push_back(sampling);
138
m_region
->push_back(
m_hecID_help
->region(hecid));
139
}
140
141
if
(
m_det_type
==
"EMEC"
&& subcalo==
CaloCell_ID::LAREM
) {
142
143
const
Identifier
emecid=cell_ptr->ID();
144
145
float
noise = elecNoise->getNoise(emecid, cell_ptr->gain());
146
ATH_MSG_DEBUG
(
"noiseRMS EMEC"
<<noise);
147
148
m_energy
->push_back(cell_ptr->energy());
149
m_NoiseRMS
->push_back(noise);
150
m_eta
->push_back(caloDDE_ptr->
eta
());
151
m_phi
->push_back(caloDDE_ptr->
phi
());
152
m_ieta
->push_back(
m_emecID_help
->eta(emecid));
153
m_iphi
->push_back(
m_emecID_help
->phi(emecid));
154
m_sampling
->push_back(sampling);
155
}
156
if
(
m_det_type
==
"FCAL"
&& subcalo==
CaloCell_ID::LARFCAL
) {
157
158
const
Identifier
fcalid=cell_ptr->ID();
159
160
float
noise = elecNoise->getNoise(fcalid, cell_ptr->gain());
161
ATH_MSG_DEBUG
(
"noiseRMS FCAL"
<<noise);
162
163
m_energy
->push_back(cell_ptr->energy());
164
m_NoiseRMS
->push_back(noise);
165
m_eta
->push_back(caloDDE_ptr->
eta
());
166
m_phi
->push_back(caloDDE_ptr->
phi
());
167
m_ieta
->push_back(
m_fcalID_help
->eta(fcalid));
168
m_iphi
->push_back(
m_fcalID_help
->phi(fcalid));
169
m_sampling
->push_back(sampling);
170
}
171
}
172
173
return
StatusCode::SUCCESS;
174
175
}
//execute
176
177
/*-----------------------------------Finalize-----------------------------*/
178
179
StatusCode
CBNT_CaloH6::CBNT_finalize
()
180
{
//finalize
181
ATH_MSG_INFO
(
"finalize()"
);
182
return
StatusCode::SUCCESS;
183
184
}
//finalize
185
186
StatusCode
CBNT_CaloH6::CBNT_clear
()
187
{
188
if
(
m_energy
)
m_energy
->clear();
189
if
(
m_NoiseRMS
)
m_NoiseRMS
->clear();
190
if
(
m_eta
)
m_eta
->clear();
191
if
(
m_phi
)
m_phi
->clear();
192
if
(
m_ieta
)
m_ieta
->clear();
193
if
(
m_iphi
)
m_iphi
->clear();
194
if
(
m_sampling
)
m_sampling
->clear();
195
if
(
m_region
)
m_region
->clear();
196
197
return
StatusCode::SUCCESS;
198
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CBNT_CaloH6.h
CaloCellContainer.h
CaloCell_ID.h
ReadCondHandle.h
AthCommonAlgorithm< Gaudi::Algorithm >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition
AthCommonDataStore.h:145
AthCommonAlgorithm< Gaudi::Algorithm >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
Definition
AthCommonDataStore.h:85
AthCommonAlgorithm< Gaudi::Algorithm >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
Definition
AthCommonDataStore.h:95
CBNT_CaloH6::m_energy
std::vector< float > * m_energy
Definition
CBNT_CaloH6.h:65
CBNT_CaloH6::m_ieta
std::vector< float > * m_ieta
Definition
CBNT_CaloH6.h:67
CBNT_CaloH6::~CBNT_CaloH6
virtual ~CBNT_CaloH6()
Definition
CBNT_CaloH6.cxx:44
CBNT_CaloH6::m_fcalID_help
const LArFCAL_ID * m_fcalID_help
Definition
CBNT_CaloH6.h:52
CBNT_CaloH6::CBNT_CaloH6
CBNT_CaloH6(const std::string &name, ISvcLocator *pSvcLocator)
Definition
CBNT_CaloH6.cxx:24
CBNT_CaloH6::m_hecID_help
const LArHEC_ID * m_hecID_help
Definition
CBNT_CaloH6.h:51
CBNT_CaloH6::m_noiseSigma
float m_noiseSigma
Definition
CBNT_CaloH6.h:57
CBNT_CaloH6::m_iphi
std::vector< float > * m_iphi
Definition
CBNT_CaloH6.h:68
CBNT_CaloH6::m_emecID_help
const LArEM_ID * m_emecID_help
Definition
CBNT_CaloH6.h:50
CBNT_CaloH6::m_region
std::vector< float > * m_region
Definition
CBNT_CaloH6.h:72
CBNT_CaloH6::CBNT_finalize
virtual StatusCode CBNT_finalize() override
Definition
CBNT_CaloH6.cxx:179
CBNT_CaloH6::m_eta
std::vector< float > * m_eta
Definition
CBNT_CaloH6.h:69
CBNT_CaloH6::m_elecNoiseKey
SG::ReadCondHandleKey< CaloNoise > m_elecNoiseKey
Definition
CBNT_CaloH6.h:55
CBNT_CaloH6::m_phi
std::vector< float > * m_phi
Definition
CBNT_CaloH6.h:70
CBNT_CaloH6::CBNT_execute
virtual StatusCode CBNT_execute() override
Definition
CBNT_CaloH6.cxx:103
CBNT_CaloH6::m_numchan
int m_numchan
Definition
CBNT_CaloH6.h:61
CBNT_CaloH6::m_NoiseRMS
std::vector< float > * m_NoiseRMS
Definition
CBNT_CaloH6.h:66
CBNT_CaloH6::CBNT_clear
virtual StatusCode CBNT_clear() override
Definition
CBNT_CaloH6.cxx:186
CBNT_CaloH6::CBNT_initialize
virtual StatusCode CBNT_initialize() override
Definition
CBNT_CaloH6.cxx:46
CBNT_CaloH6::m_sampling
std::vector< float > * m_sampling
Definition
CBNT_CaloH6.h:71
CBNT_CaloH6::m_det_type
std::string m_det_type
Definition
CBNT_CaloH6.h:60
CBNT_TBRecBase::addBranch
void addBranch(const std::string &branchname, T &obj, const std::string &leaflist)
Definition
CBNT_TBRecBase.h:44
CBNT_TBRecBase::CBNT_TBRecBase
CBNT_TBRecBase(const std::string &name, ISvcLocator *pSvcLocator)
Definition
CBNT_TBRecBase.cxx:12
CaloCellContainer
Container class for CaloCell.
Definition
CaloCellContainer.h:55
CaloCell_Base_ID::LAREM
@ LAREM
Definition
CaloCell_Base_ID.h:45
CaloCell_Base_ID::LARFCAL
@ LARFCAL
Definition
CaloCell_Base_ID.h:45
CaloCell_Base_ID::LARHEC
@ LARHEC
Definition
CaloCell_Base_ID.h:45
CaloCell_ID
Helper class for offline cell identifiers.
Definition
CaloCell_ID.h:34
CaloCell_ID::fcal_idHelper
const LArFCAL_ID * fcal_idHelper() const
access to FCAL idHelper
Definition
CaloCell_ID.h:75
CaloCell_ID::SUBCALO
CaloCell_Base_ID::SUBCALO SUBCALO
Definition
CaloCell_ID.h:50
CaloCell_ID::CaloSample
CaloSampling::CaloSample CaloSample
Definition
CaloCell_ID.h:53
CaloCell_ID::em_idHelper
const LArEM_ID * em_idHelper() const
access to EM idHelper
Definition
CaloCell_ID.h:63
CaloCell_ID::hec_idHelper
const LArHEC_ID * hec_idHelper() const
access to HEC idHelper
Definition
CaloCell_ID.h:69
CaloCell
Data object for each calorimeter readout cell.
Definition
CaloCell.h:57
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell.
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
CaloDetDescrElement::getSubCalo
CaloCell_ID::SUBCALO getSubCalo() const
cell subcalo
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:433
CaloDetDescrElement::getSampling
CaloCell_ID::CaloSample getSampling() const
cell sampling
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:395
CaloDetDescrElement::eta
float eta() const
cell eta
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:344
CaloDetDescrElement::phi
float phi() const
cell phi
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:346
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
Identifier
Definition
IdentifierFieldParser.cxx:14
Generated on
for ATLAS Offline Software by
1.17.0