|
ATLAS Offline Software
|
#include <EMShowerBuilder.h>
|
| EMShowerBuilder (const std::string &type, const std::string &name, const IInterface *parent) |
| Default constructor. More...
|
|
| ~EMShowerBuilder ()=default |
| Destructor. More...
|
|
virtual StatusCode | initialize () override final |
| initialize method More...
|
|
virtual StatusCode | execute (const EventContext &ctx, const CaloDetDescrManager &cmgr, xAOD::Egamma *) const override final |
| standard execute method More...
|
|
virtual StatusCode | executeWithCells (const CaloCellContainer *cellcoll, const CaloDetDescrManager &cmgr, xAOD::Egamma *) const override final |
| @Execute passing the cells explicitly More...
|
|
virtual StatusCode | finalize () override |
| finalize method More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
template<typename T > |
StatusCode | RetrieveTool (ToolHandle< T > &tool, bool tool_requested) |
| Wraps tool retrival to ensure it is has a name. More...
|
|
StatusCode | CalcShowerShape (xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const CaloCellContainer *cellcoll) const |
| calculate shower shapes More...
|
|
StatusCode | CalcHadronicLeakage (xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const xAOD::CaloCluster *clus, const CaloCellContainer *cellcoll) const |
| calculate Hadronic leakage More...
|
|
StatusCode | FillEMShowerShape (xAOD::Egamma *eg, const IegammaShowerShape::Info &info) const |
| fill shower detail from shower shape calculation More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
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.
◆ StoreGateSvc_t
◆ EMShowerBuilder()
EMShowerBuilder::EMShowerBuilder |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~EMShowerBuilder()
EMShowerBuilder::~EMShowerBuilder |
( |
| ) |
|
|
default |
◆ CalcHadronicLeakage()
calculate Hadronic leakage
ethad/et
for OQ, augmented after with egammaOQFlagsBuilder
Definition at line 141 of file EMShowerBuilder.cxx.
152 return StatusCode::SUCCESS;
156 return StatusCode::SUCCESS;
161 if (
sc.isFailure()) {
167 const double et =
eg->caloCluster()->et();
170 eg->setShowerShapeValue(
et != 0. ?
value /
et : 0.,
174 eg->setShowerShapeValue(
et != 0. ?
value /
et : 0.,
178 return StatusCode::SUCCESS;
181 unsigned int iflag = 0;
◆ CalcShowerShape()
calculate shower shapes
Definition at line 102 of file EMShowerBuilder.cxx.
112 return StatusCode::SUCCESS;
117 if (clus ==
nullptr) {
119 return StatusCode::SUCCESS;
121 if (cellcoll ==
nullptr) {
123 return StatusCode::SUCCESS;
137 return StatusCode::SUCCESS;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
◆ executeWithCells()
◆ extraDeps_update_handler()
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()
fill shower detail from shower shape calculation
e237/e277
e233/e237
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
Definition at line 190 of file EMShowerBuilder.cxx.
196 return StatusCode::SUCCESS;
233 value =
static_cast<float>(
info.widths5);
239 value =
static_cast<float>(
info.asymmetrys3);
242 value =
static_cast<float>(
info.deltaEtaTrackShower);
245 value =
static_cast<float>(
info.deltaEtaTrackShower7);
311 value =
static_cast<float>(
info.reta3337_allcalo);
319 float valueSecond = 0;
322 valueSecond =
static_cast<float>(
info.e237);
323 eg->setShowerShapeValue(
value != 0 ? valueSecond /
value : 0.,
327 valueSecond =
static_cast<float>(
info.e237);
328 eg->setShowerShapeValue(valueSecond != 0 ?
value / valueSecond : 0.,
332 valueSecond =
static_cast<float>(
info.esec1);
333 eg->setShowerShapeValue(std::abs(
value + valueSecond) > 0.
334 ? (
value - valueSecond) / (
value + valueSecond)
339 eg->setShowerShapeValue((valueSecond -
value),
341 return StatusCode::SUCCESS;
◆ finalize()
StatusCode EMShowerBuilder::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode EMShowerBuilder::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ inputHandles()
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.
57 return IID_IEMShowerBuilder;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ RetrieveTool()
template<typename T >
StatusCode EMShowerBuilder::RetrieveTool |
( |
ToolHandle< T > & |
tool, |
|
|
bool |
tool_requested |
|
) |
| |
|
private |
Wraps tool retrival to ensure it is has a name.
Definition at line 52 of file EMShowerBuilder.cxx.
54 if (!tool_requested) {
56 return StatusCode::SUCCESS;
60 return StatusCode::FAILURE;
63 return StatusCode::SUCCESS;
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ 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.
◆ m_cellsKey
Initial value:{
this,
"CellsName",
"AllCalo",
"Names of containers which contain cells"
}
Cell container.
Definition at line 94 of file EMShowerBuilder.h.
◆ m_detStore
◆ m_evtStore
◆ 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.
◆ 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.
◆ 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.
◆ m_ShowerShapeTool
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.
◆ 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.
◆ 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.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
@ ehad1
E leakage into 1st sampling of had calo (CaloSampling::HEC0 + CaloSampling::TileBar0 + CaloSampling::...
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
Extra patterns decribing particle interation process.
@ e033
uncalibrated energy (sum of cells) in presampler in a 3x3 window in cells in eta X phi
StatusCode CalcShowerShape(xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const CaloCellContainer *cellcoll) const
calculate shower shapes
@ e2ts1
2nd max in strips calc by summing 3 strips
@ asy1
uncorr asymmetry in 3 strips in the 1st sampling
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
@ e235
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x5
@ ecore
core energy in em calo E(core) = E0(3x3) + E1(15x2) + E2(5x5) + E3(3x5)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Gaudi::Property< bool > m_UseShowerShapeTool
Boolean to call shower shape calculation and filling (NB: this could be important when redoing calcul...
std::vector< SG::VarHandleKeyArray * > m_vhka
@ ethad1
transverse energy in the first sampling of the hadronic calorimeters behind the cluster calculated fr...
@ f1core
E1(3x1)/E = fraction of the energy reconstructed in the first longitudinal compartment of the electro...
const std::string & key() const
Return the StoreGate ID for the referenced object.
ToolHandle< IegammaIso > m_HadronicLeakageTool
Tool for hadronic leakage calculation.
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
virtual void setOwner(IDataHandleHolder *o)=0
@ e333
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x3
@ f3
fraction of energy reconstructed in 3rd sampling
@ e1152
uncalibrated energy (sum of cells) in strips in a 15x2 window in cells in eta X phi
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
Description of a calorimeter cluster.
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
@ 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=...
::StatusCode StatusCode
StatusCode definition for legacy code.
@ emins1
energy reconstructed in the strip with the minimal value between the first and second maximum
@ poscs2
relative position in eta within cell in 2nd sampling
@ e011
uncalibrated energy (sum of cells) in presampler in a 1x1 window in cells in eta X phi
@ DeadCellTileS0
Dead cell in the Tile Calorimeter S0 affecting the hadronic leakage calculation.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
@ DeadCellTileS1S2
Dead cell in the Tile Calorimeter S1,2,3 affecting the hadronic leakage calculation.
Gaudi::Property< std::vector< int > > m_caloNums
Obsolete enum on the layers to use for the HadLeakage variables.
virtual void renounce()=0
Gaudi::Property< bool > m_UseCaloIsoTool
Boolean to call calo isolation variables calculation and filling (NB: this could be important when re...
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
@ e377
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
Cell container.
StatusCode FillEMShowerShape(xAOD::Egamma *eg, const IegammaShowerShape::Info &info) const
fill shower detail from shower shape calculation
StatusCode CalcHadronicLeakage(xAOD::Egamma *eg, const CaloDetDescrManager &cmgr, const xAOD::CaloCluster *clus, const CaloCellContainer *cellcoll) const
calculate Hadronic leakage
@ poscs1
relative position in eta within cell in 1st sampling
virtual StatusCode executeWithCells(const CaloCellContainer *cellcoll, const CaloDetDescrManager &cmgr, xAOD::Egamma *) const override final
@Execute passing the cells explicitly
@ barys1
barycentre in sampling 1 calculated in 3 strips
ToolHandle< IegammaShowerShape > m_ShowerShapeTool
Tool for shower shape calculation.
#define ATH_MSG_WARNING(x)
@ e255
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 5x5
@ e337
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x7
@ r33over37allcalo
1-ratio of energy in 3x3 over 3x7 cells; E(3x3) = E0(1x1) + E1(3x1) + E2(3x3) + E3(3x3); E(3x7) = E0(...
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
@ widths1
same as egammaParameters::weta1 but without corrections on particle impact point inside the cell
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
@ e132
uncalibrated energy (sum of cells) in strips in a 3x2 window in cells in eta X phi
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
@ f3core
E3(3x3)/E fraction of the energy reconstructed in the third compartment of the electromagnetic calori...
@ e2tsts1
energy of the cell corresponding to second energy maximum in the first sampling
@ widths2
same as egammaParameters::weta2 but without corrections on particle impact point inside the cell
@ e335
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x5
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ emaxs1
energy of strip with maximal energy deposit
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
@ pos
difference between shower cell and predicted track in +/- 1 cells
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...