ATLAS Offline Software
Loading...
Searching...
No Matches
EMShowerBuilder Class Referencefinal

EMShower data object builder : More...

#include <EMShowerBuilder.h>

Inheritance diagram for EMShowerBuilder:
Collaboration diagram for EMShowerBuilder:

Public Member Functions

 EMShowerBuilder (const std::string &type, const std::string &name, const IInterface *parent)
 Default constructor.
 ~EMShowerBuilder ()=default
 Destructor.
virtual StatusCode initialize () override final
 initialize method
virtual StatusCode execute (const EventContext &ctx, const CaloDetDescrManager &cmgr, xAOD::Egamma *) const override final
 standard execute method
virtual StatusCode executeWithCells (const CaloCellContainer *cellcoll, const CaloDetDescrManager &cmgr, xAOD::Egamma *) const override final
 @Execute passing the cells explicitly
virtual StatusCode finalize () override
 finalize method
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool interface methods.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

template<typename T>
StatusCode RetrieveTool (ToolHandle< T > &tool, bool tool_requested)
 Wraps tool retrieval to ensure it is has a name.
StatusCode CalcShowerShape (xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const CaloCellContainer *cellcoll) const
 calculate shower shapes
StatusCode CalcHadronicLeakage (xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const xAOD::CaloCluster *clus, const CaloCellContainer *cellcoll) const
 calculate Hadronic leakage
StatusCode FillEMShowerShape (xAOD::Egamma *eg, const IegammaShowerShape::Info &info) const
 fill shower detail from shower shape calculation
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

SG::ReadHandleKey< CaloCellContainerm_cellsKey
 Cell container.
Gaudi::Property< std::vector< int > > m_caloNums
 Obsolete enum on the layers to use for the HadLeakage variables.
ToolHandle< IegammaShowerShapem_ShowerShapeTool
 Tool for shower shape calculation.
ToolHandle< IegammaIsom_HadronicLeakageTool
 Tool for hadronic leakage calculation.
Gaudi::Property< bool > m_Print
 boolean to print results
Gaudi::Property< bool > m_UseShowerShapeTool
 Boolean to call shower shape calculation and filling (NB: this could be important when redoing calculation from AODs)
Gaudi::Property< bool > m_UseCaloIsoTool
 Boolean to call calo isolation variables calculation and filling (NB: this could be important when redoing calculation from AODs)
Gaudi::Property< bool > m_isCosmics
 boolean to know if we are looking at cosmic data
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

EMShower data object builder :

  • Get pointing information associated to the cluster from the egammaqpoint tool
  • Get shower depth associated to the cluster from the egammaqgcld tool
  • Define a Calo Cell list corresponding to EM, HAD, FCAL Calo
  • egammaIso calculates information concerning isolation behind em clusters in the hadronic calorimeter and around the em cluster for isolation around em clustr use cone of different sizes
  • Calculate shower shapes in all samplings from egammaShowerShape tool
  • When running on AOD data(defined as samples which do not contain AllCalo CaloCellContainer) as there is not enough cells, the showers are not recalculated. On the other hand we try to find the original electron/photon object which matches the cluster and keep this information in the new EMShower object
Author
H. Ma
F. Derue

Definition at line 51 of file EMShowerBuilder.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ EMShowerBuilder()

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

Default constructor.

Definition at line 25 of file EMShowerBuilder.cxx.

28 : AthAlgTool(type, name, parent)
29{
30 // declare interface
31 declareInterface<IEMShowerBuilder>(this);
32}
AthAlgTool()
Default constructor:

◆ ~EMShowerBuilder()

EMShowerBuilder::~EMShowerBuilder ( )
default

Destructor.

Member Function Documentation

◆ CalcHadronicLeakage()

StatusCode EMShowerBuilder::CalcHadronicLeakage ( xAOD::Egamma * eg,
const CaloDetDescrManager & cmgr,
const xAOD::CaloCluster * clus,
const CaloCellContainer * cellcoll ) const
private

calculate Hadronic leakage

ethad/et

for OQ, augmented after with egammaOQFlagsBuilder

Definition at line 141 of file EMShowerBuilder.cxx.

145{
146 //
147 // Call calorimeter isolation tool
148 //
149 ATH_MSG_DEBUG("Executing CalcHadronicLeakage");
150 if (m_caloNums.size() < 3) {
151 ATH_MSG_DEBUG("Less than 3 subCalos, skipping");
152 return StatusCode::SUCCESS;
153 }
154 // protection in case tool does not exist
155 if (m_HadronicLeakageTool.empty()) {
156 return StatusCode::SUCCESS;
157 }
158 // calculate information concerning just the hadronic leakage
159 IegammaIso::Info info;
160 StatusCode sc = m_HadronicLeakageTool->execute(*clus, cmgr, *cellcoll, info);
161 if (sc.isFailure()) {
162 ATH_MSG_WARNING("call to Iso returns failure for execute");
163 return sc;
164 }
165 float value = 0;
167 const double et = eg->caloCluster()->et();
168 value = static_cast<float>(info.ethad1);
169 eg->setShowerShapeValue(value, xAOD::EgammaParameters::ethad1);
170 eg->setShowerShapeValue(et != 0. ? value / et : 0.,
172 value = static_cast<float>(info.ethad);
173 eg->setShowerShapeValue(value, xAOD::EgammaParameters::ethad);
174 eg->setShowerShapeValue(et != 0. ? value / et : 0.,
176 value = static_cast<float>(info.ehad1);
177 eg->setShowerShapeValue(value, xAOD::EgammaParameters::ehad1);
178 return StatusCode::SUCCESS;
179
181 unsigned int iflag = 0;
182 if (info.nBadT0 > 0)
184 if (info.nBadT0 > 0)
186 eg->setOQ(iflag);
187}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
float et(const xAOD::jFexSRJetRoI *j)
static Double_t sc
Gaudi::Property< std::vector< int > > m_caloNums
Obsolete enum on the layers to use for the HadLeakage variables.
ToolHandle< IegammaIso > m_HadronicLeakageTool
Tool for hadronic leakage calculation.
::StatusCode StatusCode
StatusCode definition for legacy code.
@ DeadCellTileS0
Dead cell in the Tile Calorimeter S0 affecting the hadronic leakage calculation.
Definition EgammaDefs.h:107
@ DeadCellTileS1S2
Dead cell in the Tile Calorimeter S1,2,3 affecting the hadronic leakage calculation.
Definition EgammaDefs.h:109
@ ethad1
transverse energy in the first sampling of the hadronic calorimeters behind the cluster calculated fr...
Definition EgammaEnums.h:43
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
Definition EgammaEnums.h:46
@ ehad1
E leakage into 1st sampling of had calo (CaloSampling::HEC0 + CaloSampling::TileBar0 + CaloSampling::...
Definition EgammaEnums.h:49

◆ CalcShowerShape()

StatusCode EMShowerBuilder::CalcShowerShape ( xAOD::Egamma * eg,
const CaloDetDescrManager & cmgr,
const CaloCellContainer * cellcoll ) const
private

calculate shower shapes

Definition at line 102 of file EMShowerBuilder.cxx.

105{
106 //
107 // Estimate shower shapes and fill the EMShower object associated to eg
108 //
109 ATH_MSG_DEBUG("Executing CalcShowerShape");
110 // protection against bad pointers
111 if (eg == nullptr) {
112 return StatusCode::SUCCESS;
113 }
114 // retrieve the cluster
115 const xAOD::CaloCluster* clus = eg->caloCluster();
116 // Protect against non-existent structures.
117 if (clus == nullptr) {
118 ATH_MSG_WARNING("No Cluster");
119 return StatusCode::SUCCESS;
120 }
121 if (cellcoll == nullptr) {
122 ATH_MSG_WARNING("No cells");
123 return StatusCode::SUCCESS;
124 }
125 // call calorimeter isolation tool only if needed
126 if (m_UseCaloIsoTool) {
127 ATH_CHECK(CalcHadronicLeakage(eg, cmgr, clus, cellcoll));
128 }
129
130 // Calculate shower shapes in all samplings
132 // protection in case tool does not exist
133 IegammaShowerShape::Info info;
134 ATH_CHECK(m_ShowerShapeTool->execute(*clus, cmgr, *cellcoll, info));
135 ATH_CHECK(FillEMShowerShape(eg, info));
136 }
137 return StatusCode::SUCCESS;
138}
#define ATH_CHECK
Evaluate an expression and check for errors.
StatusCode CalcHadronicLeakage(xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const xAOD::CaloCluster *clus, const CaloCellContainer *cellcoll) const
calculate Hadronic leakage
Gaudi::Property< bool > m_UseShowerShapeTool
Boolean to call shower shape calculation and filling (NB: this could be important when redoing calcul...
ToolHandle< IegammaShowerShape > m_ShowerShapeTool
Tool for shower shape calculation.
StatusCode FillEMShowerShape(xAOD::Egamma *eg, const IegammaShowerShape::Info &info) const
fill shower detail from shower shape calculation
Gaudi::Property< bool > m_UseCaloIsoTool
Boolean to call calo isolation variables calculation and filling (NB: this could be important when re...
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode EMShowerBuilder::execute ( const EventContext & ctx,
const CaloDetDescrManager & cmgr,
xAOD::Egamma * eg ) const
finaloverridevirtual

standard execute method

Implements IEMShowerBuilder.

Definition at line 73 of file EMShowerBuilder.cxx.

76{
77
78 ATH_MSG_DEBUG("Executing EMShowerBuilder::execute");
79 // protection against bad pointers
80 if (eg == nullptr)
81 return StatusCode::SUCCESS;
82
83 // retrieve the cell containers
84 SG::ReadHandle<CaloCellContainer> cellcoll(m_cellsKey, ctx);
85 // check is only used for serial running; remove when MT scheduler used
86 ATH_CHECK(cellcoll.isValid());
87
88 ATH_CHECK(executeWithCells(cellcoll.cptr(), cmgr, eg));
89 return StatusCode::SUCCESS;
90}
virtual StatusCode executeWithCells(const CaloCellContainer *cellcoll, const CaloDetDescrManager &cmgr, xAOD::Egamma *) const override final
@Execute passing the cells explicitly
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
Cell container.

◆ executeWithCells()

StatusCode EMShowerBuilder::executeWithCells ( const CaloCellContainer * cellcoll,
const CaloDetDescrManager & cmgr,
xAOD::Egamma *  ) const
finaloverridevirtual

@Execute passing the cells explicitly

Implements IEMShowerBuilder.

Definition at line 93 of file EMShowerBuilder.cxx.

96{
97 ATH_CHECK(CalcShowerShape(eg, cmgr, cellcoll));
98 return StatusCode::SUCCESS;
99}
StatusCode CalcShowerShape(xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const CaloCellContainer *cellcoll) const
calculate shower shapes

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ FillEMShowerShape()

StatusCode EMShowerBuilder::FillEMShowerShape ( xAOD::Egamma * eg,
const IegammaShowerShape::Info & info ) const
private

fill shower detail from shower shape calculation

e237/e277

e233/e237

(emaxs1-e2tsts1)/(emaxs1+e2tsts1)

Definition at line 190 of file EMShowerBuilder.cxx.

192{
193
194 // protection in case Tool does not exist
195 if (m_ShowerShapeTool.empty()) {
196 return StatusCode::SUCCESS;
197 }
198 // information in the presampler
199
200 // E in 1x1 cells in pre sampler
201 float value = 0;
202 // E in 1x1 cells in pre sampler
203 value = static_cast<float>(info.e011);
204 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e011);
205 // E in 3x3 cells in pre sampler
206 value = static_cast<float>(info.e033);
207 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e033);
208 // E in 3x2 cells in S1
209 value = static_cast<float>(info.e132);
210 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e132);
211 // E in 15x2 cells in S1
212 value = static_cast<float>(info.e1152);
213 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e1152);
214 // fraction of E in S1
215 value = static_cast<float>(info.f1);
216 eg->setShowerShapeValue(value, xAOD::EgammaParameters::f1);
217 // fraction of E in the core(e132) in S1
218 value = static_cast<float>(info.f1core);
219 eg->setShowerShapeValue(value, xAOD::EgammaParameters::f1core);
220 // corr width with 3 strips
221 value = static_cast<float>(info.ws3c);
222 eg->setShowerShapeValue(value, xAOD::EgammaParameters::weta1);
223 // energy in second max
224 value = static_cast<float>(info.esec);
225 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e2ts1);
226 // energy strip of second max
227 value = static_cast<float>(info.esec1);
228 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e2tsts1);
229 // fraction of E outside core in S1
230 value = static_cast<float>(info.fside);
231 eg->setShowerShapeValue(value, xAOD::EgammaParameters::fracs1);
232 // width with 5 strips
233 value = static_cast<float>(info.widths5);
234 eg->setShowerShapeValue(value, xAOD::EgammaParameters::widths1);
235 // eta pos within cell in S1
236 value = static_cast<float>(info.poscs1);
237 eg->setShowerShapeValue(value, xAOD::EgammaParameters::poscs1);
238 // asymmetry with 3 strips
239 value = static_cast<float>(info.asymmetrys3);
240 eg->setShowerShapeValue(value, xAOD::EgammaParameters::asy1);
241 // diff position +/- 1 cells
242 value = static_cast<float>(info.deltaEtaTrackShower);
243 eg->setShowerShapeValue(value, xAOD::EgammaParameters::pos);
244 // diff position +/- 7 cells
245 value = static_cast<float>(info.deltaEtaTrackShower7);
246 eg->setShowerShapeValue(value, xAOD::EgammaParameters::pos7);
247 // E of strip with min E
248 value = static_cast<float>(info.emins1);
249 eg->setShowerShapeValue(value, xAOD::EgammaParameters::emins1);
250 // E of strip with max E
251 value = static_cast<float>(info.emaxs1);
252 eg->setShowerShapeValue(value, xAOD::EgammaParameters::emaxs1);
253 // barycentre in eta in S1
254 value = static_cast<float>(info.etas3);
255 eg->setShowerShapeValue(value, xAOD::EgammaParameters::barys1);
256 // total width in strips
257 value = static_cast<float>(info.wstot);
258 eg->setShowerShapeValue(value, xAOD::EgammaParameters::wtots1);
259 //
260 // information in the 2nd sampling
261 //
262 // E in 3x3 cells in S2
263 value = static_cast<float>(info.e233);
264 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e233);
265 // E in 3x5 cells in S2
266 value = static_cast<float>(info.e235);
267 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e235);
268 // E in 3x7 cells in S2
269 value = static_cast<float>(info.e237);
270 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e237);
271 // E in 5x5 cells in S2
272 value = static_cast<float>(info.e255);
273 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e255);
274 // E in 7x7 cells in S2
275 value = static_cast<float>(info.e277);
276 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e277);
277 // corr width in S2
278 value = static_cast<float>(info.etaw);
279 eg->setShowerShapeValue(value, xAOD::EgammaParameters::weta2);
280 // uncorr width in S2
281 value = static_cast<float>(info.width);
282 eg->setShowerShapeValue(value, xAOD::EgammaParameters::widths2);
283 // position in eta within cell in S2
284 value = static_cast<float>(info.poscs2);
285 eg->setShowerShapeValue(value, xAOD::EgammaParameters::poscs2);
286 //
287 // information in the 3rd sampling
288 //
289 // fraction of E in S3
290 value = static_cast<float>(info.f3);
291 eg->setShowerShapeValue(value, xAOD::EgammaParameters::f3);
292 // fraction of E in the core (e333) in S3
293 value = static_cast<float>(info.f3core);
294 eg->setShowerShapeValue(value, xAOD::EgammaParameters::f3core);
295 // E in 3x3 cells in S3
296 value = static_cast<float>(info.e333);
297 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e333);
298 // E in 3x5 cells in S3
299 value = static_cast<float>(info.e335);
300 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e335);
301 // E in 3x7 cells in S3
302 value = static_cast<float>(info.e337);
303 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e337);
304 // E in 7x7 cells in S3
305 value = static_cast<float>(info.e377);
306 eg->setShowerShapeValue(value, xAOD::EgammaParameters::e377);
307 //
308 // information combining all samplings
309 //
310 // ratio of energy in 3x3/3x7 cells
311 value = static_cast<float>(info.reta3337_allcalo);
312 eg->setShowerShapeValue(value, xAOD::EgammaParameters::r33over37allcalo);
313 // core energy
314 value = static_cast<float>(info.ecore);
315 eg->setShowerShapeValue(value, xAOD::EgammaParameters::ecore);
316 //
317 // information combining different shower shape
318 //
319 float valueSecond = 0;
321 value = static_cast<float>(info.e277);
322 valueSecond = static_cast<float>(info.e237);
323 eg->setShowerShapeValue(value != 0 ? valueSecond / value : 0.,
326 value = static_cast<float>(info.e233);
327 valueSecond = static_cast<float>(info.e237);
328 eg->setShowerShapeValue(valueSecond != 0 ? value / valueSecond : 0.,
331 value = static_cast<float>(info.emaxs1);
332 valueSecond = static_cast<float>(info.esec1);
333 eg->setShowerShapeValue(std::abs(value + valueSecond) > 0.
334 ? (value - valueSecond) / (value + valueSecond)
335 : 0.,
337
338 value = static_cast<float>(info.emins1);
339 eg->setShowerShapeValue((valueSecond - value),
341 return StatusCode::SUCCESS;
342}
@ e235
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x5
Definition EgammaEnums.h:72
@ e337
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x7
Definition EgammaEnums.h:90
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
@ pos7
Difference between the track and the shower positions: sum_{i=i_m-7}^{i=i_m+7}E_i x (i-i_m) / sum_{i=...
@ f3core
E3(3x3)/E fraction of the energy reconstructed in the third compartment of the electromagnetic calori...
Definition EgammaEnums.h:66
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
Definition EgammaEnums.h:81
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
Definition EgammaEnums.h:78
@ e1152
uncalibrated energy (sum of cells) in strips in a 15x2 window in cells in eta X phi
Definition EgammaEnums.h:40
@ f3
fraction of energy reconstructed in 3rd sampling
Definition EgammaEnums.h:55
@ poscs2
relative position in eta within cell in 2nd sampling
@ ecore
core energy in em calo E(core) = E0(3x3) + E1(15x2) + E2(5x5) + E3(3x5)
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
Definition EgammaEnums.h:53
@ pos
difference between shower cell and predicted track in +/- 1 cells
@ widths2
same as egammaParameters::weta2 but without corrections on particle impact point inside the cell
@ e2ts1
2nd max in strips calc by summing 3 strips
@ poscs1
relative position in eta within cell in 1st sampling
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
@ e335
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x5
Definition EgammaEnums.h:87
@ e377
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
Definition EgammaEnums.h:93
@ e333
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x3
Definition EgammaEnums.h:84
@ emaxs1
energy of strip with maximal energy deposit
@ e255
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 5x5
Definition EgammaEnums.h:75
@ DeltaE
e2tsts1-emins1
@ barys1
barycentre in sampling 1 calculated in 3 strips
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
Definition EgammaEnums.h:69
@ asy1
uncorr asymmetry in 3 strips in the 1st sampling
@ e033
uncalibrated energy (sum of cells) in presampler in a 3x3 window in cells in eta X phi
Definition EgammaEnums.h:34
@ e132
uncalibrated energy (sum of cells) in strips in a 3x2 window in cells in eta X phi
Definition EgammaEnums.h:37
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
@ r33over37allcalo
1-ratio of energy in 3x3 over 3x7 cells; E(3x3) = E0(1x1) + E1(3x1) + E2(3x3) + E3(3x3); E(3x7) = E0(...
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...
@ e011
uncalibrated energy (sum of cells) in presampler in a 1x1 window in cells in eta X phi
Definition EgammaEnums.h:31
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
Definition EgammaEnums.h:98
@ e2tsts1
energy of the cell corresponding to second energy maximum in the first sampling
@ emins1
energy reconstructed in the strip with the minimal value between the first and second maximum
@ widths1
same as egammaParameters::weta1 but without corrections on particle impact point inside the cell
@ f1core
E1(3x1)/E = fraction of the energy reconstructed in the first longitudinal compartment of the electro...
Definition EgammaEnums.h:61

◆ finalize()

StatusCode EMShowerBuilder::finalize ( )
overridevirtual

finalize method

Implements IEMShowerBuilder.

Definition at line 67 of file EMShowerBuilder.cxx.

68{
69 return StatusCode::SUCCESS;
70}

◆ initialize()

StatusCode EMShowerBuilder::initialize ( )
finaloverridevirtual

initialize method

Implements IEMShowerBuilder.

Definition at line 36 of file EMShowerBuilder.cxx.

37{
39 " Initializing EMShowerBuilder, m_cellKey = " << m_cellsKey.key());
40
42 !m_cellsKey.key().empty()));
43
46
47 return StatusCode::SUCCESS;
48}
StatusCode RetrieveTool(ToolHandle< T > &tool, bool tool_requested)
Wraps tool retrieval to ensure it is has a name.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & IEMShowerBuilder::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 56 of file IEMShowerBuilder.h.

56 {
58}
static const InterfaceID IID_IEMShowerBuilder("IEMShowerBuilder", 1, 0)

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ RetrieveTool()

template<typename T>
StatusCode EMShowerBuilder::RetrieveTool ( ToolHandle< T > & tool,
bool tool_requested )
private

Wraps tool retrieval to ensure it is has a name.

Definition at line 52 of file EMShowerBuilder.cxx.

53{
54 if (!tool_requested) {
55 tool.disable();
56 return StatusCode::SUCCESS;
57 }
58 if (tool.empty()) {
59 ATH_MSG_INFO(tool.type() << " is empty");
60 return StatusCode::FAILURE;
61 }
62 ATH_CHECK(tool.retrieve());
63 return StatusCode::SUCCESS;
64}
#define ATH_MSG_INFO(x)

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_caloNums

Gaudi::Property<std::vector<int> > EMShowerBuilder::m_caloNums
private
Initial value:
{ this,
"CaloNums",
{},
"list of calo to treat" }

Obsolete enum on the layers to use for the HadLeakage variables.

Definition at line 102 of file EMShowerBuilder.h.

102 { this,
103 "CaloNums",
104 {},
105 "list of calo to treat" };

◆ m_cellsKey

SG::ReadHandleKey<CaloCellContainer> EMShowerBuilder::m_cellsKey
private
Initial value:
{
this,
"CellsName",
"AllCalo",
"Names of containers which contain cells"
}

Cell container.

Definition at line 94 of file EMShowerBuilder.h.

94 {
95 this,
96 "CellsName",
97 "AllCalo",
98 "Names of containers which contain cells"
99 };

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_HadronicLeakageTool

ToolHandle<IegammaIso> EMShowerBuilder::m_HadronicLeakageTool
private
Initial value:
{
this,
"HadronicLeakageTool",
"egammaIso",
"Handle of the EMCaloIsolationTool for Hadronic leakage"
}

Tool for hadronic leakage calculation.

Definition at line 116 of file EMShowerBuilder.h.

116 {
117 this,
118 "HadronicLeakageTool",
119 "egammaIso",
120 "Handle of the EMCaloIsolationTool for Hadronic leakage"
121 };

◆ m_isCosmics

Gaudi::Property<bool> EMShowerBuilder::m_isCosmics
private
Initial value:
{ this,
"isCosmics",
false,
"Boolean for use of cosmics" }

boolean to know if we are looking at cosmic data

Definition at line 148 of file EMShowerBuilder.h.

148 { this,
149 "isCosmics",
150 false,
151 "Boolean for use of cosmics" };

◆ m_Print

Gaudi::Property<bool> EMShowerBuilder::m_Print
private
Initial value:
{ this,
"Print",
false,
"in case of extra prints" }

boolean to print results

Definition at line 124 of file EMShowerBuilder.h.

124 { this,
125 "Print",
126 false,
127 "in case of extra prints" };

◆ m_ShowerShapeTool

ToolHandle<IegammaShowerShape> EMShowerBuilder::m_ShowerShapeTool
private
Initial value:
{
this,
"ShowerShapeTool",
"egammaShowerShape/egammashowershape",
"Handle of instance of egammaShowerShape Tool to be run"
}

Tool for shower shape calculation.

Definition at line 108 of file EMShowerBuilder.h.

108 {
109 this,
110 "ShowerShapeTool",
111 "egammaShowerShape/egammashowershape",
112 "Handle of instance of egammaShowerShape Tool to be run"
113 };

◆ m_UseCaloIsoTool

Gaudi::Property<bool> EMShowerBuilder::m_UseCaloIsoTool
private
Initial value:
{
this,
"UseCaloIsoTool",
true,
"Boolean to call hadronic leakage calculation and filling"
}

Boolean to call calo isolation variables calculation and filling (NB: this could be important when redoing calculation from AODs)

Definition at line 140 of file EMShowerBuilder.h.

140 {
141 this,
142 "UseCaloIsoTool",
143 true,
144 "Boolean to call hadronic leakage calculation and filling"
145 };

◆ m_UseShowerShapeTool

Gaudi::Property<bool> EMShowerBuilder::m_UseShowerShapeTool
private
Initial value:
{
this,
"UseShowerShapeTool",
true,
"Boolean to call shower shape calculation and filling"
}

Boolean to call shower shape calculation and filling (NB: this could be important when redoing calculation from AODs)

Definition at line 131 of file EMShowerBuilder.h.

131 {
132 this,
133 "UseShowerShapeTool",
134 true,
135 "Boolean to call shower shape calculation and filling"
136 };

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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