 |
ATLAS Offline Software
|
#include <EGammaCookieCutClusterTool.h>
◆ EGammaCookieCutClusterTool()
DerivationFramework::EGammaCookieCutClusterTool::EGammaCookieCutClusterTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ addBranches()
StatusCode DerivationFramework::EGammaCookieCutClusterTool::addBranches |
( |
| ) |
const |
|
finaloverridevirtual |
Definition at line 86 of file EGammaCookieCutClusterTool.cxx.
88 const EventContext& ctx = Gaudi::Hive::currentContext();
91 static const std::vector<CaloSampling::CaloSample> s_sam
114 ATH_CHECK(outClusterContainerCellLink.record(
115 std::make_unique<CaloClusterCellLinkContainer>())
123 return StatusCode::SUCCESS;
126 std::vector<SG::WriteDecorHandle<xAOD::EgammaContainer, float>> decoM;
133 std::call_once(
m_Seen, [
this,&decoM]() {
137 <<
" " << decoM[
i].decorKey());
149 ATH_CHECK(caloDetDescrMgrHandle.isValid());
154 std::vector<bool> success(
nF,
true);
160 <<
" pT = " << cluster->
pt()
161 <<
" eta = " << cluster->
eta());
166 std::unique_ptr<xAOD::CaloCluster> newCluster =
175 <<
" original cluster " << cluster->
index()
176 <<
" pT = " << cluster->
pt()
177 <<
" eta = " << cluster->
eta()
178 <<
" has EME2 or FCAL0"
182 << (newCluster ?
" no cells in cluster" :
" no cluster"));
189 success[iel] =
false;
195 <<
" pT = " << newCluster->
pt()
196 <<
" eta = " << newCluster->
eta());
198 outClusterContainer->push_back(std::move(newCluster));
199 size_t index = outClusterContainer->size() - 1;
201 clusterLink(*outClusterContainer,
index, ctx);
208 for (
size_t i = 0;
i <
m_vecM.size();
i++) {
214 <<
" does not exist for the original cluster");
216 decoM[indexDecor](*electron) =
float(
m);
218 <<
" with original moment "
220 <<
" = " <<
m <<
" (decoration index =" << indexDecor
221 <<
" key = " << decoM[indexDecor].decorKey() <<
")");
228 ToolHandleArray<CaloClusterCollectionProcessor>::const_iterator
231 for (; toolIt != toolIt_e; ++toolIt) {
232 ATH_CHECK((*toolIt)->execute(ctx, outClusterContainer.ptr()));
238 cookClusLinkAcc(
"cookiecutClusterLink" );
242 if (success[iel] && cookClusLinkAcc.isAvailable(*
electron)) {
249 if (success[iel] && cluster ==
nullptr) {
251 "could not be retrieved");
254 for (
size_t i = 0;
i <
m_vecM.size();
i++) {
261 <<
" does not exist for the new cluster");
264 decoM[indexDecor](*electron) =
float(
m);
266 <<
" with new moment "
268 <<
" = " <<
m <<
" (decoration index = " << indexDecor
269 <<
" key = " << decoM[indexDecor].decorKey() <<
")");
278 outClusterContainerCellLink);
281 <<
" cookie cut clusters");
283 return StatusCode::SUCCESS;
◆ initialize()
StatusCode DerivationFramework::EGammaCookieCutClusterTool::initialize |
( |
| ) |
|
|
finaloverride |
Definition at line 32 of file EGammaCookieCutClusterTool.cxx.
38 ATH_MSG_DEBUG(
"Will store cookie cut clusters in this container "
51 key = containerKey +
".cookiecut" +
e;
55 key = containerKey +
".original" +
e;
60 containerKey +
".cookiecutClusterLink");
81 return StatusCode::SUCCESS;
◆ m_caloDetDescrMgrKey
Initial value:{
this,
"CaloDetDescrManager",
"CaloDetDescrManager",
"SG Key for CaloDetDescrManager in the Condition Store"
}
Calorimeter description.
Definition at line 49 of file EGammaCookieCutClusterTool.h.
◆ m_clusterCorrectionTools
◆ m_CookieCutPars
◆ m_maxDelEtaCells
Gaudi::Property<int> DerivationFramework::EGammaCookieCutClusterTool::m_maxDelEtaCells |
|
private |
Initial value:{
this,
"MaxWindowDelEtaCells",
3,
"Size of maximum search window in eta"
}
Size of maximum search window in eta.
Definition at line 72 of file EGammaCookieCutClusterTool.h.
◆ m_maxDelPhiCells
Gaudi::Property<int> DerivationFramework::EGammaCookieCutClusterTool::m_maxDelPhiCells |
|
private |
Initial value:{
this,
"MaxWindowDelPhiCells",
3,
"Size of maximum search window in phi"
}
Size of maximum search window in phi.
Definition at line 80 of file EGammaCookieCutClusterTool.h.
◆ m_maxDelR
Gaudi::Property<float> DerivationFramework::EGammaCookieCutClusterTool::m_maxDelR |
|
private |
Initial value:{
this,
"MaxWindowDelR",
0.3,
"Cone size to collect cells around hottest-cell FCAL"
}
Size of cone to cookie cut on FCal.
Definition at line 88 of file EGammaCookieCutClusterTool.h.
◆ m_nDecor
unsigned short DerivationFramework::EGammaCookieCutClusterTool::m_nDecor = 0 |
|
private |
◆ m_outClusterContainerCellLinkKey
◆ m_outClusterContainerKey
Initial value:{
this,
"ClusterContainerName",
"ForwardElectronCookieCutClusters",
"Name of the output cookie cut cluster container"
}
Output cluster container.
Definition at line 38 of file EGammaCookieCutClusterTool.h.
◆ m_Seen
std::once_flag DerivationFramework::EGammaCookieCutClusterTool::m_Seen |
|
mutableprivate |
◆ m_SGKey_electrons
Initial value:{
this,
"SGKey_electrons",
"ForwardElectrons",
"SG key of electron container"
}
Definition at line 56 of file EGammaCookieCutClusterTool.h.
◆ m_SGKey_electrons_decorations
Initial value:{
this,
"SGKey_electrons_decorations_noConf",
{},
"SG keys for electrons decorations not really configurable"
}
Definition at line 64 of file EGammaCookieCutClusterTool.h.
◆ m_storeCookMom
Gaudi::Property<bool> DerivationFramework::EGammaCookieCutClusterTool::m_storeCookMom |
|
private |
Initial value:{
this,
"StoreCookedMoments",
false,
"Decorate also with the moments from the cookie-cut cluster"
}
Decide whether or not to store cooked cluster moments.
Definition at line 104 of file EGammaCookieCutClusterTool.h.
◆ m_storeOrigMom
Gaudi::Property<bool> DerivationFramework::EGammaCookieCutClusterTool::m_storeOrigMom |
|
private |
Initial value:{
this,
"StoreInputMoments",
false,
"Decorate also with the moments from the original cluster"
}
Decide whether or not to store input cluster moments.
Definition at line 96 of file EGammaCookieCutClusterTool.h.
◆ m_vecM
◆ m_vecMName
const std::vector<std::string> DerivationFramework::EGammaCookieCutClusterTool::m_vecMName |
|
private |
Initial value:{
"SECOND_LAMBDA",
"LATERAL",
"LONGITUDINAL",
"ENG_FRAC_MAX",
"SECOND_R",
"CENTER_LAMBDA",
"SECOND_ENG_DENS",
"SIGNIFICANCE"
}
Definition at line 125 of file EGammaCookieCutClusterTool.h.
The documentation for this class was generated from the following files:
@ SECOND_R
Second Moment in .
xAOD::ElectronContainer * electronContainer
static StatusCode finalizeClusters(SG::WriteHandle< CaloClusterCellLinkContainer > &h, xAOD::CaloClusterContainer *pClusterColl)
Finalize clusters (move CaloClusterCellLink to a separate container).
static StatusCode AddContainerWriteHandle(SG::WriteHandle< xAOD::CaloClusterContainer > &clusColl)
Creates a new xAOD::CaloClusterContainer in the given WriteHandle + CaloClusterAuxContainer and recor...
Helper class to provide type-safe access to aux data.
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
@ ENG_FRAC_MAX
Energy fraction of hottest cell.
bool isValid() const
Test to see if the link can be dereferenced.
const DataLink< CaloCellContainer > & getCellContainerLink() const
@ SECOND_LAMBDA
Second Moment in .
@ SECOND_ENG_DENS
Second Moment in E/V.
Description of a calorimeter cluster.
virtual double eta() const
The pseudorapidity ( ) of the particle.
std::unique_ptr< xAOD::CaloCluster > cookieCut(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &mgr, const DataLink< CaloCellContainer > &cellCont, const egammaClusterCookieCut::CookieCutPars &pars)
Handle class for adding a decoration to an object.
EgammaContainer_v1 EgammaContainer
Definition of the current "egamma container version".
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
size_t index() const
Return the index of this element within its container.
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
ElementLink implementation for ROOT usage.
virtual double pt() const
The transverse momentum ( ) of the particle (negative for negative-energy clusters)
size_t size() const
size method
StatusCode initialize(bool used=true)
float eSample(const CaloSample sampling) const
This class provides the client interface for accessing the detector description information common to...
@ SIGNIFICANCE
Cluster significance.
#define ATH_MSG_WARNING(x)
@ LATERAL
Normalized lateral moment.
bool hasSampling(const CaloSample s) const
Checks if certain smapling contributes to cluster.
@ LONGITUDINAL
Normalized longitudinal moment.
size_type size() const noexcept
Returns the number of elements in the collection.