ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
D3PDMaker
CaloD3PDMaker
src
ClusterPositionInCaloFillerTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// $Id$
12
13
14
#include "
ClusterPositionInCaloFillerTool.h
"
15
#include "CaloEvent/CaloCluster.h"
16
#include "
AthenaKernel/errorcheck.h
"
17
18
19
namespace
D3PD
{
20
21
28
ClusterPositionInCaloFillerTool::ClusterPositionInCaloFillerTool
29
(
const
std::string&
type
,
30
const
std::string& name,
31
const
IInterface* parent)
32
:
Base
(
type
, name, parent)
33
{
34
declareProperty(
"FillSeedCoordinates"
,
m_FillSeedCoordinates
=
false
);
35
36
book
().ignore();
// Avoid coverity warnings.
37
}
38
39
StatusCode
ClusterPositionInCaloFillerTool::initialize
()
40
{
41
ATH_CHECK
(
m_caloDetDescrMgrKey
.initialize());
42
return
StatusCode::SUCCESS;
43
}
44
45
46
50
StatusCode
ClusterPositionInCaloFillerTool::book
()
51
{
52
53
if
(
m_FillSeedCoordinates
){
54
CHECK
(
addVariable
(
"eta0Calo"
,
m_eta0Calo
,
55
"Cluster seed eta position in local calorimeter coordinates"
) );
56
CHECK
(
addVariable
(
"phi0Calo"
,
m_phi0Calo
,
57
"Cluster seed phi position in local calorimeter coordinates"
) );
58
}
59
else
{
60
CHECK
(
addVariable
(
"etaCalo"
,
m_etaCalo
,
61
"Cluster eta position in local calorimeter coordinates"
) );
62
CHECK
(
addVariable
(
"phiCalo"
,
m_phiCalo
,
63
"Cluster phi position in local calorimeter coordinates"
) );
64
}
65
66
return
StatusCode::SUCCESS;
67
}
68
69
78
StatusCode
ClusterPositionInCaloFillerTool::fill
(
const
CaloCluster
& p)
79
{
80
CHECK
(
fillT
(p) );
81
return
StatusCode::SUCCESS;
82
}
83
84
93
StatusCode
ClusterPositionInCaloFillerTool::fill
(
const
xAOD::CaloCluster
& p)
94
{
95
CHECK
(
fillT
(p) );
96
return
StatusCode::SUCCESS;
97
}
98
99
106
template
<
class
T>
107
StatusCode
ClusterPositionInCaloFillerTool::fillT
(
const
T& p)
108
{
109
110
SG::ReadCondHandle<CaloDetDescrManager>
caloDetDescrMgrHandle {
m_caloDetDescrMgrKey
};
111
CaloCell_ID::CaloSample
sam = CaloCell_ID::EMB2;
112
if
(p.inBarrel() && !p.inEndcap())
113
sam = CaloCell_ID::EMB2;
114
else
if
(!p.inBarrel() && p.inEndcap())
115
sam = CaloCell_ID::EME2;
116
else
{
117
if
(p.eSample(CaloSampling::EMB2) > p.eSample(CaloSampling::EME2)) sam=CaloCell_ID::EMB2;
118
else
sam = CaloCell_ID::EME2;
119
}
120
121
if
(
m_FillSeedCoordinates
) {
122
CaloCellDetPos::getDetPosition
(**caloDetDescrMgrHandle,
123
sam,
124
p.eta0(),
125
p.phi0(),
126
*
m_eta0Calo
,
127
*
m_phi0Calo
);
128
}
else
{
129
CaloCellDetPos::getDetPosition
(
130
**caloDetDescrMgrHandle, sam, p.eta(), p.phi(), *
m_etaCalo
, *
m_phiCalo
);
131
}
132
133
return
StatusCode::SUCCESS;
134
}
135
136
137
}
// namespace D3PD
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ClusterPositionInCaloFillerTool.h
Block filler tool for eta/phi positions in calo coordinates from a CaloCluster.
errorcheck.h
Helpers for checking error return status codes and reporting errors.
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition
Control/AthenaKernel/AthenaKernel/errorcheck.h:422
CaloCellDetPos::getDetPosition
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
Definition
CaloCellDetPos.cxx:13
CaloCell_ID::CaloSample
CaloSampling::CaloSample CaloSample
Definition
CaloCell_ID.h:53
CaloCluster
Principal data class for CaloCell clusters.
Definition
Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
D3PD::BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > >::addVariable
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Definition
AddVariable.cxx:85
D3PD::ClusterPositionInCaloFillerTool::ClusterPositionInCaloFillerTool
ClusterPositionInCaloFillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition
ClusterPositionInCaloFillerTool.cxx:29
D3PD::ClusterPositionInCaloFillerTool::m_phi0Calo
double * m_phi0Calo
Variable: seed phi position in calo frame.
Definition
ClusterPositionInCaloFillerTool.h:95
D3PD::ClusterPositionInCaloFillerTool::m_caloDetDescrMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Definition
ClusterPositionInCaloFillerTool.h:100
D3PD::ClusterPositionInCaloFillerTool::book
virtual StatusCode book() final
Book variables for this block.
Definition
ClusterPositionInCaloFillerTool.cxx:50
D3PD::ClusterPositionInCaloFillerTool::fill
virtual StatusCode fill(const CaloCluster &p) override
Fill one block — type-safe version.
Definition
ClusterPositionInCaloFillerTool.cxx:78
D3PD::ClusterPositionInCaloFillerTool::fillT
StatusCode fillT(const T &p)
Fill one block.
Definition
ClusterPositionInCaloFillerTool.cxx:107
D3PD::ClusterPositionInCaloFillerTool::m_eta0Calo
double * m_eta0Calo
Variable: seed eta position in calo frame.
Definition
ClusterPositionInCaloFillerTool.h:92
D3PD::ClusterPositionInCaloFillerTool::initialize
virtual StatusCode initialize() override
Definition
ClusterPositionInCaloFillerTool.cxx:39
D3PD::ClusterPositionInCaloFillerTool::Base
BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > > Base
Definition
ClusterPositionInCaloFillerTool.h:34
D3PD::ClusterPositionInCaloFillerTool::m_etaCalo
double * m_etaCalo
Variable: eta position in calo frame.
Definition
ClusterPositionInCaloFillerTool.h:86
D3PD::ClusterPositionInCaloFillerTool::m_FillSeedCoordinates
bool m_FillSeedCoordinates
Variable: whether to dump the seed coordinates.
Definition
ClusterPositionInCaloFillerTool.h:98
D3PD::ClusterPositionInCaloFillerTool::m_phiCalo
double * m_phiCalo
Variable: phi position in calo frame.
Definition
ClusterPositionInCaloFillerTool.h:89
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
D3PD
Block filler tool for noisy FEB information.
Definition
CaloCellDetailsFillerTool.cxx:29
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition
Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
type
Generated on
for ATLAS Offline Software by
1.17.0