16#include "CaloEvent/CaloCluster.h"
25double vget (
const std::vector<double>& v,
size_t i)
46 (
const std::string&
type,
47 const std::string& name,
48 const IInterface* parent)
52 "Samplings to write. Empty means to write all.");
54 "Should total E/Had energies be written?");
56 "Should per-sampling energies be written?");
58 "Should per-sampling eta/phi be written?");
60 "Should per-sampling raw eta/phi be written?");
62 "Should per-sampling maximum eta be written?");
64 "Should reconstruction status word be written?");
80 return StatusCode::SUCCESS;
93 std::string samplingnames[
NSAMP] =
94 {
"PreSamplerB",
"EMB1",
"EMB2",
"EMB3",
95 "PreSamplerE",
"EME1",
"EME2",
"EME3",
96 "HEC0",
"HEC1",
"HEC2",
"HEC3",
97 "TileBar0",
"TileBar1",
"TileBar2",
98 "TileGap1",
"TileGap2",
"TileGap3",
99 "TileExt0",
"TileExt1",
"TileExt2",
100 "FCAL0",
"FCAL1",
"FCAL2"};
103 for (
unsigned int i = 0; i <
NSAMP; i++)
110 <<
"; max is " << 24;
111 return StatusCode::FAILURE;
114 for (
unsigned int i = 0; i <
m_samplings.size(); i++) {
118 << s <<
" which is out of range.";
119 return StatusCode::FAILURE;
122 const std::string& sname = samplingnames[s];
126 "Energy in sampling " + sname) );
130 "Aligned eta barycenter in sampling " + sname) );
132 "Aligned phi barycenter in sampling " + sname) );
137 "Raw eta barycenter in sampling " + sname,
140 "Raw phi barycenter in sampling " + sname,
146 "Eta of maximum cell in sampling " + sname) );
153 return StatusCode::SUCCESS;
167 std::vector<double> eSamp;
168 p.getEInSamples(eSamp);
170 std::vector<double> etaSamp;
171 p.getEtaInSamples(etaSamp);
173 std::vector<double> phiSamp;
174 p.getPhiInSamples(phiSamp);
182 return StatusCode::SUCCESS;
198 std::vector<double> eSamp (nsamp);
199 std::vector<double> etaSamp (nsamp);
200 std::vector<double> phiSamp (nsamp);
202 for (
unsigned int i=0; i < nsamp; i++) {
211 return StatusCode::SUCCESS;
228 return StatusCode::SUCCESS;
240 const std::vector<double>& etaSamp,
241 const std::vector<double>& phiSamp)
246 vget (eSamp, CaloSampling::PreSamplerB) +
247 vget (eSamp, CaloSampling::EMB1) +
248 vget (eSamp, CaloSampling::EMB2) +
249 vget (eSamp, CaloSampling::EMB3) +
250 vget (eSamp, CaloSampling::PreSamplerE) +
251 vget (eSamp, CaloSampling::EME1) +
252 vget (eSamp, CaloSampling::EME2) +
253 vget (eSamp, CaloSampling::EME3) +
254 vget (eSamp, CaloSampling::FCAL0);
256 vget (eSamp, CaloSampling::HEC0) +
257 vget (eSamp, CaloSampling::HEC1) +
258 vget (eSamp, CaloSampling::HEC2) +
259 vget (eSamp, CaloSampling::HEC3) +
260 vget (eSamp, CaloSampling::TileBar0) +
261 vget (eSamp, CaloSampling::TileBar1) +
262 vget (eSamp, CaloSampling::TileBar2) +
263 vget (eSamp, CaloSampling::TileGap1) +
264 vget (eSamp, CaloSampling::TileGap2) +
265 vget (eSamp, CaloSampling::TileGap3) +
266 vget (eSamp, CaloSampling::TileExt0) +
267 vget (eSamp, CaloSampling::TileExt1) +
268 vget (eSamp, CaloSampling::TileExt2) +
269 vget (eSamp, CaloSampling::FCAL1) +
270 vget (eSamp, CaloSampling::FCAL2);
285 double eta_raw=0, phi_raw=0;
287 **caloDetDescrMgrHandle,
299 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Helpers for checking error return status codes and reporting errors.
#define REPORT_MESSAGE(LVL)
Report a message.
#define CHECK(...)
Evaluate an expression and check for errors.
static bool getDetPosition(const CaloDetDescrManager &mgr, CaloCell_ID::CaloSample sam, double etaAtlas, double phiAtlas, double &etaDet, double &phiDet)
get Detector level eta-phi position from Atlas level (aligned) position
CaloSampling::CaloSample CaloSample
Principal data class for CaloCell clusters.
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Block filler tool for noisy FEB information.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.