ATLAS Offline Software
Loading...
Searching...
No Matches
D3PD::ClusterSamplingFillerTool Class Referenceabstract

Block filler tool for EM samplings from a CaloCluster. More...

#include <ClusterSamplingFillerTool.h>

Inheritance diagram for D3PD::ClusterSamplingFillerTool:
Collaboration diagram for D3PD::ClusterSamplingFillerTool:

Public Types

typedef BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > > Base

Public Member Functions

 ClusterSamplingFillerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Gaudi tool constructor.
virtual StatusCode initialize () override
virtual StatusCode book () override
 Book variables for this block.
virtual StatusCode fill (const CaloCluster &p) override
 Fill one block — type-safe version.
virtual StatusCode fill (const xAOD::CaloCluster &p) override
 Fill one block — type-safe version.
virtual StatusCode configureD3PD (IAddVariable *tree, const std::type_info &ti)
 Configure during initialization: type-check.
StatusCode configureD3PD (IAddVariable *tree)
 Configure the parent tree.
virtual StatusCode fillUntyped (const void *p, bool again=false)
 Fill one block.
virtual StatusCode fill (const Types< CaloCluster, xAOD::CaloCluster > &p)=0
 Fill one block — type-safe version.
virtual StatusCode fillAgain (const Types< CaloCluster, xAOD::CaloCluster > &p)
 Fill one block, after AGAIN has been returned (type-safe).
 BlockFillerToolImpl (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Gaudi tool constructor.
virtual StatusCode addVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
 Add a variable to the tuple.
StatusCode addVariable (const std::string &name, Types< CaloCluster, xAOD::CaloCluster > *&ptr, const std::string &docstring="")
 Make the template implementation from IAddVariable visible.
StatusCode addVariable (const std::string &name, Types< CaloCluster, xAOD::CaloCluster > *&ptr, const std::string &docstring, const U &defval)
 Make the template implementation from IAddVariable visible.
virtual StatusCode addDimensionedVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
 Add a variable to the tuple.
StatusCode addDimensionedVariable (const std::string &name, Types< CaloCluster, xAOD::CaloCluster > *&ptr, const std::string &dim, const std::string &docstring="")
 Add a variable to the tuple.
StatusCode addDimensionedVariable (const std::string &name, Types< CaloCluster, xAOD::CaloCluster > *&ptr, const std::string &dim, const std::string &docstring, const U &defval)
 Add a variable to the tuple.

Protected Member Functions

StatusCode configureImpl (IAddVariable *tree, const std::type_info &ti, const std::type_info &fill_ti)
 Configure during initialization: type-check.
StatusCode configureImpl (IAddVariable *tree, const std::type_info &ti, const std::vector< const std::type_info * > &tis, size_t &which)
 Configure during initialization: type-check.
StatusCode convert (void const *&p) const
 Do type conversion.

Protected Attributes

ObjectMetadata m_metadata
 Metadata about the variables created by this object.

Private Member Functions

template<class T>
StatusCode fillEtamax (const T &p)
 Fill etamax/reco status.
StatusCode fillSamplings (const std::vector< double > &eSamp, const std::vector< double > &etaSamp, const std::vector< double > &phiSamp)
 Fill sampling variables.

Private Attributes

std::vector< unsigned int > m_samplings
 Parameter: Samplings to write. Empty means to write all.
bool m_writeEmHadEnergies
 parameters
bool m_writeSamplingEnergies
bool m_writeSamplingEtaPhi
bool m_writeSamplingEtaPhiRaw
bool m_writeSamplingEtamax
bool m_writeRecoStatus
float * m_Eem
 Variable: total EM and HAD energies.
float * m_Ehad
float * m_Es [NSAMP]
 Variable: Sampling energies.
float * m_etas [NSAMP]
 Variable: Sampling eta centroids.
float * m_phis [NSAMP]
 Variable: Sampling phi centroids.
float * m_raw_etas [NSAMP]
 Variable: Sampling raw eta centroids.
float * m_raw_phis [NSAMP]
 Variable: Sampling raw phi centroids.
float * m_etamax [NSAMP]
 Variable: Eta of maximum energy.
unsigned int * m_RecoStatus
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloDetDescrMgrKey
std::string m_prefix
 Property: the variable prefix for this block.
std::string m_suffix
 Property: the variable prefix for this block.
std::string m_blockName
 Property: the name of this block.
TypeConverter m_converter
 Helper to do type conversions.
IAddVariablem_tree
 Reference to the block name.

Static Private Attributes

static const unsigned int NSAMP = 24
static const std::string s_emptyString
 Used to provide a default value for blockName.

Detailed Description

Block filler tool for EM samplings from a CaloCluster.

Definition at line 31 of file ClusterSamplingFillerTool.h.

Member Typedef Documentation

◆ Base

Constructor & Destructor Documentation

◆ ClusterSamplingFillerTool()

D3PD::ClusterSamplingFillerTool::ClusterSamplingFillerTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 45 of file ClusterSamplingFillerTool.cxx.

49 : Base (type, name, parent)
50{
51 declareProperty ("Samplings", m_samplings,
52 "Samplings to write. Empty means to write all.");
53 declareProperty ("EmHadEnergies", m_writeEmHadEnergies = true,
54 "Should total E/Had energies be written?");
55 declareProperty ("SamplingEnergies", m_writeSamplingEnergies = false,
56 "Should per-sampling energies be written?");
57 declareProperty ("SamplingEtaPhi", m_writeSamplingEtaPhi = false,
58 "Should per-sampling eta/phi be written?");
59 declareProperty ("SamplingEtaPhiRaw", m_writeSamplingEtaPhiRaw = false,
60 "Should per-sampling raw eta/phi be written?");
61 declareProperty ("SamplingEtamax", m_writeSamplingEtamax = false,
62 "Should per-sampling maximum eta be written?");
63 declareProperty ("WriteRecoStatus",m_writeRecoStatus=false,
64 "Should reconstruction status word be written?");
65
66 m_Eem = 0;
67 m_Ehad = 0;
68 m_RecoStatus = 0;
69 std::fill (m_Es, m_Es + NSAMP, (float*)0);
70 std::fill (m_etas, m_etas + NSAMP, (float*)0);
71 std::fill (m_phis, m_phis + NSAMP, (float*)0);
72 std::fill (m_raw_etas, m_raw_etas + NSAMP, (float*)0);
73 std::fill (m_raw_phis, m_raw_phis + NSAMP, (float*)0);
74 std::fill (m_etamax, m_etamax + NSAMP, (float*)0);
75}
float * m_Es[NSAMP]
Variable: Sampling energies.
float * m_Eem
Variable: total EM and HAD energies.
float * m_etamax[NSAMP]
Variable: Eta of maximum energy.
float * m_raw_phis[NSAMP]
Variable: Sampling raw phi centroids.
float * m_raw_etas[NSAMP]
Variable: Sampling raw eta centroids.
float * m_phis[NSAMP]
Variable: Sampling phi centroids.
BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > > Base
std::vector< unsigned int > m_samplings
Parameter: Samplings to write. Empty means to write all.
float * m_etas[NSAMP]
Variable: Sampling eta centroids.

Member Function Documentation

◆ addDimensionedVariable() [1/3]

StatusCode D3PD::AddVariable::addDimensionedVariable ( const std::string & name,
const std::type_info & ti,
void *& ptr,
const std::string & dim,
const std::string & docstring = "",
const void * defval = 0 )
virtualinherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

Definition at line 119 of file AddVariable.cxx.

129{
130 if (!m_tree) {
131 // Called from constructor --- just initialize pointer.
132 ptr = 0;
133 return StatusCode::SUCCESS;
134 }
135
137 ti, ptr, dim,
138 docstring, defval ) );
140 ti, ptr, dim,
142}
#define CHECK(...)
Evaluate an expression and check for errors.
virtual StatusCode addDimensionedVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
Add a variable to the tuple.
Type-safe wrapper for block filler tools.

◆ addDimensionedVariable() [2/3]

StatusCode D3PD::IAddVariable::addDimensionedVariable ( const std::string & name,
Types< CaloCluster, xAOD::CaloCluster > *& ptr,
const std::string & dim,
const std::string & docstring,
const U & defval )
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addDimensionedVariable() [3/3]

StatusCode D3PD::IAddVariable::addDimensionedVariable ( const std::string & name,
Types< CaloCluster, xAOD::CaloCluster > *& ptr,
const std::string & dim,
const std::string & docstring = "" )
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.

If called from the constructor, the only effect is to clear ptr.

◆ addVariable() [1/3]

StatusCode D3PD::AddVariable::addVariable ( const std::string & name,
const std::type_info & ti,
void *& ptr,
const std::string & docstring = "",
const void * defval = 0 )
virtualinherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

Definition at line 93 of file AddVariable.cxx.

90{
91 if (!m_tree) {
92 // Called from constructor --- just initialize pointer.
93 ptr = 0;
95 }
96
98 ti, ptr, docstring, defval ) );
101}
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Add a variable to the tuple.

◆ addVariable() [2/3]

StatusCode D3PD::IAddVariable::addVariable ( const std::string & name,
Types< CaloCluster, xAOD::CaloCluster > *& ptr,
const std::string & docstring,
const U & defval )
inherited

Make the template implementation from IAddVariable visible.

◆ addVariable() [3/3]

StatusCode D3PD::IAddVariable::addVariable ( const std::string & name,
Types< CaloCluster, xAOD::CaloCluster > *& ptr,
const std::string & docstring = "" )
inherited

Make the template implementation from IAddVariable visible.

◆ BlockFillerToolImpl()

( const std::string & type,
const std::string & name,
const IInterface * parent )
inherited

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

◆ book()

StatusCode D3PD::ClusterSamplingFillerTool::book ( )
overridevirtual

Book variables for this block.

Implements D3PD::BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > >.

Definition at line 86 of file ClusterSamplingFillerTool.cxx.

87{
89 CHECK( addVariable ("E_em", m_Eem) );
90 CHECK( addVariable ("E_had", m_Ehad) );
91 }
92
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"};
101
102 if (m_samplings.empty()) {
103 for (unsigned int i = 0; i < NSAMP; i++)
104 m_samplings.push_back (i);
105 }
106
107 if (m_samplings.size() > NSAMP) {
108 REPORT_MESSAGE(MSG::ERROR) << "Too many samplings requested: "
109 << m_samplings.size()
110 << "; max is " << /*NSAMP*/24;
111 return StatusCode::FAILURE;
112 }
113
114 for (unsigned int i = 0; i < m_samplings.size(); i++) {
115 unsigned int s = m_samplings[i];
116 if (s >= NSAMP) {
117 REPORT_MESSAGE(MSG::ERROR) << "Requested sampling index "
118 << s << " which is out of range.";
119 return StatusCode::FAILURE;
120 }
121
122 const std::string& sname = samplingnames[s];
123
125 CHECK( addVariable ("E_" + sname, m_Es[i],
126 "Energy in sampling " + sname) );
127
129 CHECK( addVariable ("eta_" + sname, m_etas[i],
130 "Aligned eta barycenter in sampling " + sname) );
131 CHECK( addVariable ("phi_" + sname, m_phis[i],
132 "Aligned phi barycenter in sampling " + sname) );
133 }
134
136 CHECK( addVariable ("raw_eta_" + sname, m_raw_etas[i],
137 "Raw eta barycenter in sampling " + sname,
138 -999) );
139 CHECK( addVariable ("raw_phi_" + sname, m_raw_phis[i],
140 "Raw phi barycenter in sampling " + sname,
141 -999) );
142 }
143
145 CHECK( addVariable ("etamax_" + sname, m_etamax[i],
146 "Eta of maximum cell in sampling " + sname) );
147 }
148 }
149
151 CHECK(addVariable("RecoStatus",m_RecoStatus));
152
153 return StatusCode::SUCCESS;
154}
#define REPORT_MESSAGE(LVL)
Report a message.
StatusCode addVariable(const std::string &name, T *&ptr, const std::string &docstring="")
Add a variable to the tuple.

◆ configureD3PD() [1/2]

StatusCode D3PD::AddVariable::configureD3PD ( IAddVariable * tree)
inherited

Configure the parent tree.

Parameters
treeThe parent IAddVariable instance.

Definition at line 69 of file AddVariable.cxx.

62{
63 m_tree = tree;
64 m_metadata.clear();
66}

◆ configureD3PD() [2/2]

virtual StatusCode D3PD::BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > >::configureD3PD ( IAddVariable * tree,
const std::type_info & ti )
virtualinherited

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.

configureD3PD should check that the type of the object coming as input is compatible with what it expects, and raise an error otherwise.

◆ configureImpl() [1/2]

StatusCode D3PD::BlockFillerToolImpl::configureImpl ( IAddVariable * tree,
const std::type_info & ti,
const std::type_info & fill_ti )
protectedinherited

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.
fill_tiis the type of object that the user code will expect.

This is the common implementation for the configureD3PD method of IBlockFillerTool. It checks that the type of the object coming as input is compatible with what the user code is expecting, and raises an error otherwise.

Definition at line 70 of file BlockFillerToolImpl.cxx.

58{
60 CHECK( m_converter.init (ti, fill_ti) );
61
63}

◆ configureImpl() [2/2]

StatusCode D3PD::BlockFillerToolImpl::configureImpl ( IAddVariable * tree,
const std::type_info & ti,
const std::vector< const std::type_info * > & tis,
size_t & which )
protectedinherited

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.
tisList of possible input types that we can accept.
[out]whichIndex of the accepted type.

This is the common implementation for the configureD3PD method of IBlockFillerTool. It checks that the type of the object coming as input is compatible with what the user code is expecting, and raises an error otherwise.

This version allows for one of a set of types to match. If successful, WHICH is set to the index (0-based) of the matching type.

Definition at line 91 of file BlockFillerToolImpl.cxx.

87{
89 CHECK( m_converter.init (ti, tis, which) );
91}

◆ convert()

StatusCode D3PD::BlockFillerToolImpl::convert ( void const *& p) const
protectedinherited

Do type conversion.

Parameters
p[in,out]Pointer to convert.

On entry, p is a pointer to an object of the type that was passed into configureImpl as ti. Convert the pointer to point to an object of the type that was given as fill_ti. If the conversion fails, the pointer is set to 0 (and FAILURE is returned).

Definition at line 107 of file BlockFillerToolImpl.cxx.

106{
107 p = m_converter.convertUntyped (p);
108 if (!p) {
110 << "Pointer conversion from " << m_converter.srcName() << " to "
111 << m_converter.dstName() << "failed.";
112 return StatusCode::FAILURE;
113 }
114 return StatusCode::SUCCESS;
115}

◆ fill() [1/3]

virtual StatusCode D3PD::BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > >::fill ( const Types< CaloCluster, xAOD::CaloCluster > & p)
pure virtualinherited

Fill one block — type-safe version.

Parameters
pThe input object.

This is called once per object. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

◆ fill() [2/3]

StatusCode D3PD::ClusterSamplingFillerTool::fill ( const CaloCluster & p)
overridevirtual

Fill one block — type-safe version.

Parameters
pThe input object.

This is called once per object. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

Definition at line 165 of file ClusterSamplingFillerTool.cxx.

166{
167 std::vector<double> eSamp;
168 p.getEInSamples(eSamp);
169
170 std::vector<double> etaSamp;
171 p.getEtaInSamples(etaSamp);
172
173 std::vector<double> phiSamp;
174 p.getPhiInSamples(phiSamp);
175
176 CHECK( fillEtamax(p) );
177 CHECK( fillSamplings (eSamp, etaSamp, phiSamp) );
178
180 *m_RecoStatus= p.getRecoStatus().getStatusWord();
181
182 return StatusCode::SUCCESS;
183}
StatusCode fillSamplings(const std::vector< double > &eSamp, const std::vector< double > &etaSamp, const std::vector< double > &phiSamp)
Fill sampling variables.
StatusCode fillEtamax(const T &p)
Fill etamax/reco status.

◆ fill() [3/3]

StatusCode D3PD::ClusterSamplingFillerTool::fill ( const xAOD::CaloCluster & p)
overridevirtual

Fill one block — type-safe version.

Parameters
pThe input object.

This is called once per object. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

Definition at line 194 of file ClusterSamplingFillerTool.cxx.

195{
196
197 const size_t nsamp=m_samplings.size();
198 std::vector<double> eSamp (nsamp);
199 std::vector<double> etaSamp (nsamp);
200 std::vector<double> phiSamp (nsamp);
201
202 for (unsigned int i=0; i < nsamp; i++) {
203 eSamp[i] = p.eSample (static_cast<CaloCell_ID::CaloSample>(m_samplings[i]));
204 etaSamp[i] = p.etaSample (static_cast<CaloCell_ID::CaloSample>(m_samplings[i]));
205 phiSamp[i] = p.phiSample (static_cast<CaloCell_ID::CaloSample>(m_samplings[i]));
206 }
207
208 CHECK( fillEtamax(p) );
209 CHECK( fillSamplings (eSamp, etaSamp, phiSamp) );
210
211 return StatusCode::SUCCESS;
212}
CaloSampling::CaloSample CaloSample
Definition CaloCell_ID.h:53

◆ fillAgain()

virtual StatusCode D3PD::BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > >::fillAgain ( const Types< CaloCluster, xAOD::CaloCluster > & p)
virtualinherited

Fill one block, after AGAIN has been returned (type-safe).

Parameters
pThe input object.

Once fill returns AGAIN, the parent should call fillAgain with the same arguments. This continues until fillAgain returns something other than AGAIN.

By default, this just calls fill().

◆ fillEtamax()

template<class T>
StatusCode D3PD::ClusterSamplingFillerTool::fillEtamax ( const T & p)
private

Fill etamax/reco status.

Parameters
pThe input object.

Definition at line 220 of file ClusterSamplingFillerTool.cxx.

221{
223 for(unsigned int i=0; i<m_samplings.size(); i++)
224 *m_etamax[i] =
225 p.etamax (static_cast<CaloSampling::CaloSample>(m_samplings[i]));
226 }
227
228 return StatusCode::SUCCESS;
229}

◆ fillSamplings()

StatusCode D3PD::ClusterSamplingFillerTool::fillSamplings ( const std::vector< double > & eSamp,
const std::vector< double > & etaSamp,
const std::vector< double > & phiSamp )
private

Fill sampling variables.

Parameters
eSampEnergy per sample.
etaSampEta per sample.
phiSampPhi per sample.

Definition at line 239 of file ClusterSamplingFillerTool.cxx.

242{
243 SG::ReadCondHandle<CaloDetDescrManager> caloDetDescrMgrHandle { m_caloDetDescrMgrKey };
244 if( m_writeEmHadEnergies && eSamp.size() >= NSAMP) {
245 *m_Eem =
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);
255 *m_Ehad =
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);
271 }
272
274 for(unsigned int i=0; i<m_samplings.size(); i++)
275 *m_Es[i] = vget (eSamp, m_samplings[i]);
276 }
277
278
279 for(unsigned int i=0; i<m_samplings.size(); i++) {
281 *m_etas[i] = vget (etaSamp, m_samplings[i]);
282 *m_phis[i] = vget (phiSamp, m_samplings[i]);
283 }
285 double eta_raw=0, phi_raw=0;
287 **caloDetDescrMgrHandle,
288 static_cast<CaloCell_ID::CaloSample>(m_samplings[i]),
289 vget(etaSamp, m_samplings[i]),
290 vget(phiSamp, m_samplings[i]),
291 eta_raw,
292 phi_raw)) {
293 *m_raw_etas[i] = eta_raw;
294 *m_raw_phis[i] = phi_raw;
295 }
296 }
297 }
298
299 return StatusCode::SUCCESS;
300}
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
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey

◆ fillUntyped()

virtual StatusCode D3PD::BlockFillerTool< Types< CaloCluster, xAOD::CaloCluster > >::fillUntyped ( const void * p,
bool again = false )
virtualinherited

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new ‘row’ and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error.

◆ initialize()

StatusCode D3PD::ClusterSamplingFillerTool::initialize ( )
overridevirtual

Definition at line 77 of file ClusterSamplingFillerTool.cxx.

78{
79 ATH_CHECK(m_caloDetDescrMgrKey.initialize());
80 return StatusCode::SUCCESS;
81}
#define ATH_CHECK
Evaluate an expression and check for errors.

Member Data Documentation

◆ m_blockName

std::string D3PD::BlockFillerToolImpl::m_blockName
privateinherited

Property: the name of this block.

Definition at line 118 of file BlockFillerToolImpl.h.

◆ m_caloDetDescrMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> D3PD::ClusterSamplingFillerTool::m_caloDetDescrMgrKey
private
Initial value:
{
this,
"CaloDetDescrManager",
"CaloDetDescrManager",
"SG Key for CaloDetDescrManager in the Condition Store"
}

Definition at line 133 of file ClusterSamplingFillerTool.h.

133 {
134 this,
135 "CaloDetDescrManager",
136 "CaloDetDescrManager",
137 "SG Key for CaloDetDescrManager in the Condition Store"
138 };

◆ m_converter

TypeConverter D3PD::BlockFillerToolImpl::m_converter
privateinherited

Helper to do type conversions.

Definition at line 121 of file BlockFillerToolImpl.h.

◆ m_Eem

float* D3PD::ClusterSamplingFillerTool::m_Eem
private

Variable: total EM and HAD energies.

Definition at line 111 of file ClusterSamplingFillerTool.h.

◆ m_Ehad

float* D3PD::ClusterSamplingFillerTool::m_Ehad
private

Definition at line 112 of file ClusterSamplingFillerTool.h.

◆ m_Es

float* D3PD::ClusterSamplingFillerTool::m_Es[NSAMP]
private

Variable: Sampling energies.

Definition at line 115 of file ClusterSamplingFillerTool.h.

◆ m_etamax

float* D3PD::ClusterSamplingFillerTool::m_etamax[NSAMP]
private

Variable: Eta of maximum energy.

Definition at line 130 of file ClusterSamplingFillerTool.h.

◆ m_etas

float* D3PD::ClusterSamplingFillerTool::m_etas[NSAMP]
private

Variable: Sampling eta centroids.

Definition at line 118 of file ClusterSamplingFillerTool.h.

◆ m_metadata

ObjectMetadata D3PD::AddVariable::m_metadata
protectedinherited

Metadata about the variables created by this object.

Definition at line 129 of file AddVariable.h.

◆ m_phis

float* D3PD::ClusterSamplingFillerTool::m_phis[NSAMP]
private

Variable: Sampling phi centroids.

Definition at line 121 of file ClusterSamplingFillerTool.h.

◆ m_prefix

std::string D3PD::BlockFillerToolImpl::m_prefix
privateinherited

Property: the variable prefix for this block.

Definition at line 112 of file BlockFillerToolImpl.h.

◆ m_raw_etas

float* D3PD::ClusterSamplingFillerTool::m_raw_etas[NSAMP]
private

Variable: Sampling raw eta centroids.

Definition at line 124 of file ClusterSamplingFillerTool.h.

◆ m_raw_phis

float* D3PD::ClusterSamplingFillerTool::m_raw_phis[NSAMP]
private

Variable: Sampling raw phi centroids.

Definition at line 127 of file ClusterSamplingFillerTool.h.

◆ m_RecoStatus

unsigned int* D3PD::ClusterSamplingFillerTool::m_RecoStatus
private

Definition at line 132 of file ClusterSamplingFillerTool.h.

◆ m_samplings

std::vector<unsigned int> D3PD::ClusterSamplingFillerTool::m_samplings
private

Parameter: Samplings to write. Empty means to write all.

Definition at line 100 of file ClusterSamplingFillerTool.h.

◆ m_suffix

std::string D3PD::BlockFillerToolImpl::m_suffix
privateinherited

Property: the variable prefix for this block.

Definition at line 115 of file BlockFillerToolImpl.h.

◆ m_tree

IAddVariable* D3PD::AddVariable::m_tree
privateinherited

Reference to the block name.

The parent IAddVariable instance.

Definition at line 143 of file AddVariable.h.

◆ m_writeEmHadEnergies

bool D3PD::ClusterSamplingFillerTool::m_writeEmHadEnergies
private

parameters

Definition at line 103 of file ClusterSamplingFillerTool.h.

◆ m_writeRecoStatus

bool D3PD::ClusterSamplingFillerTool::m_writeRecoStatus
private

Definition at line 108 of file ClusterSamplingFillerTool.h.

◆ m_writeSamplingEnergies

bool D3PD::ClusterSamplingFillerTool::m_writeSamplingEnergies
private

Definition at line 104 of file ClusterSamplingFillerTool.h.

◆ m_writeSamplingEtamax

bool D3PD::ClusterSamplingFillerTool::m_writeSamplingEtamax
private

Definition at line 107 of file ClusterSamplingFillerTool.h.

◆ m_writeSamplingEtaPhi

bool D3PD::ClusterSamplingFillerTool::m_writeSamplingEtaPhi
private

Definition at line 105 of file ClusterSamplingFillerTool.h.

◆ m_writeSamplingEtaPhiRaw

bool D3PD::ClusterSamplingFillerTool::m_writeSamplingEtaPhiRaw
private

Definition at line 106 of file ClusterSamplingFillerTool.h.

◆ NSAMP

const unsigned int D3PD::ClusterSamplingFillerTool::NSAMP = 24
staticprivate

Definition at line 97 of file ClusterSamplingFillerTool.h.

◆ s_emptyString

const std::string D3PD::AddVariable::s_emptyString
staticprivateinherited

Used to provide a default value for blockName.

Definition at line 41 of file AddVariable.h.


The documentation for this class was generated from the following files: