ATLAS Offline Software
CaloTopoClusterMaker.h
Go to the documentation of this file.
1 //Dear emacs, this is -*-c++-*-
2 /*
3  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
4 */
5 
6 #ifndef CALOTOPOCLUSTERMAKER_H
7 #define CALOTOPOCLUSTERMAKER_H
8 
34 
36 #include "Identifier/IdContext.h"
41 #include "StoreGate/ReadHandle.h"
43 
44 class Identifier;
46 
47 
49 public:
50 
51  CaloTopoClusterMaker(const std::string& type, const std::string& name,
52  const IInterface* parent);
53 
55  virtual StatusCode execute(const EventContext& ctx,
56  xAOD::CaloClusterContainer* theClusters) const override;
57  virtual StatusCode initialize() override;
58 
59  void getClusterSize();
60 
61 private:
62 
63  inline bool passCellTimeCut(const CaloCell*, const CaloCellContainer*) const;
64 
66 
71 
81  std::vector<std::string> m_caloNames;
82 
89 
107 
118 
128 
129 
133 
137 
138 
142 
146 
150 
154 
158 
162 
163 
167  SG::ReadCondHandleKey<CaloNoise> m_noiseCDOKey{this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"};
168 
169 
170  //SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};
171 
196  std::string m_neighborOption;
198 
209 
218 
228 
236 
244 
252 
260 
265 
270 
275 
280 
285 
290 
295 
300 
305 
311 
312 
323  std::vector<std::string> m_samplingNames;
324 
330  std::set<int> m_validSamplings;
331 
339 
347 
353  std::vector<bool> m_useSampling;
354 
357 
358 
361 
362  Gaudi::Property<bool> m_useGPUCriteria {this, "UseGPUCriteria", false, "Adopt a set of criteria that is consistent with the GPU implementation."};
363 };
364 
365 #endif // CALOTOPOCLUSTERMAKER_HH
CaloTopoClusterMaker::m_xtalkEMEta
bool m_xtalkEMEta
if set to true, the time window is softened in the EMB2 and EME2_OW due to xtalk from direct neighbou...
Definition: CaloTopoClusterMaker.h:310
LArNeighbours::neighbourOption
neighbourOption
Definition: LArNeighbours.h:12
CaloTopoClusterMaker::m_xtalkEM2D
bool m_xtalkEM2D
if set to true, the time window is softened in the EMB2 and EME2_OW due to xtalk from all 2D neighors
Definition: CaloTopoClusterMaker.h:294
CaloTopoClusterMaker::getClusterSize
void getClusterSize()
Definition: CaloTopoClusterMaker.cxx:695
CaloTopoClusterMaker::m_noiseCDOKey
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
Key of the CaloNoise Conditions data object.
Definition: CaloTopoClusterMaker.h:167
xAOD::CaloCluster_v1::ClusterSize
ClusterSize
Enumeration to identify different cluster sizes.
Definition: CaloCluster_v1.h:86
CaloTopoClusterMaker::m_xtalkDeltaT
float m_xtalkDeltaT
additional max.
Definition: CaloTopoClusterMaker.h:141
CaloTopoClusterMaker::m_samplingNames
std::vector< std::string > m_samplingNames
vector of names of the calorimeter samplings to consider for seeds.
Definition: CaloTopoClusterMaker.h:323
CaloTopoClusterMaker::m_seedCutsInAbsE
bool m_seedCutsInAbsE
if set to true seed cuts are on and .
Definition: CaloTopoClusterMaker.h:227
CaloTopoClusterMaker::m_validSamplings
std::set< int > m_validSamplings
actual set of samplings to be used for seeds
Definition: CaloTopoClusterMaker.h:330
CaloTopoClusterMaker::m_restrictPSNeighbors
bool m_restrictPSNeighbors
if set to true limit the neighbors in presampler Barrel and Endcap.
Definition: CaloTopoClusterMaker.h:217
CaloTopoClusterMaker::m_seedCutsInT
bool m_seedCutsInT
if set to true, time cut is applied to seed cells, no cut otherwise
Definition: CaloTopoClusterMaker.h:274
CaloTopoClusterMaker::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *theClusters) const override
Execute on an entire collection of clusters.
Definition: CaloTopoClusterMaker.cxx:357
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
CaloClusterCollectionProcessor::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const =0
Execute on an entire collection of clusters.
CaloTopoClusterMaker::m_caloNames
std::vector< std::string > m_caloNames
vector of names of the calorimeters to consider.
Definition: CaloTopoClusterMaker.h:81
CaloTopoClusterMaker::m_calo_id
const CaloCell_ID * m_calo_id
Definition: CaloTopoClusterMaker.h:65
CaloTopoClusterMaker::m_minSampling
int m_minSampling
smallest valid seed sampling found
Definition: CaloTopoClusterMaker.h:338
CaloTopoClusterMaker::m_seedThresholdOnTAbs
float m_seedThresholdOnTAbs
threshold used for timing cut on seed cells.
Definition: CaloTopoClusterMaker.h:132
CaloClusterCollectionProcessor
Definition: CaloClusterCollectionProcessor.h:32
CaloTopoClusterMaker::m_xtalk2Eratio1
float m_xtalk2Eratio1
cut on Eneighbor/E to revover out of time cell close to energetic first phi neighbor cell
Definition: CaloTopoClusterMaker.h:145
CaloTopoClusterMaker::CaloTopoClusterMaker
CaloTopoClusterMaker(const std::string &type, const std::string &name, const IInterface *parent)
Definition: CaloTopoClusterMaker.cxx:51
CaloTopoClusterMaker::m_clusterCutsInAbsE
bool m_clusterCutsInAbsE
if set to true final cluster cuts are on .
Definition: CaloTopoClusterMaker.h:251
SG::ReadHandleKey< CaloCellContainer >
CaloTopoClusterMaker::m_xtalkEM2n
bool m_xtalkEM2n
if set to true (together with m_xtalkEM2) we also extend the time window for 2nd phi neighbors
Definition: CaloTopoClusterMaker.h:299
CaloTopoClusterMaker::m_neighborOption
std::string m_neighborOption
type of neighbor relations to use.
Definition: CaloTopoClusterMaker.h:196
CaloCell_ID.h
CaloTopoClusterMaker::m_subcaloUsed
bool m_subcaloUsed[CaloCell_ID::NSUBCALO]
Flag which subdetectors are to be used.
Definition: CaloTopoClusterMaker.h:88
CaloTopoClusterMaker::m_nOption
LArNeighbours::neighbourOption m_nOption
Definition: CaloTopoClusterMaker.h:197
LArOnOffIdMapping.h
CaloTopoClusterMaker::m_useGPUCriteria
Gaudi::Property< bool > m_useGPUCriteria
Definition: CaloTopoClusterMaker.h:362
CaloTopoClusterMaker::m_neighborCutsInAbsE
bool m_neighborCutsInAbsE
if set to true neighbor cuts are on and .
Definition: CaloTopoClusterMaker.h:235
IdContext.h
CaloTopoClusterMaker::initialize
virtual StatusCode initialize() override
Definition: CaloTopoClusterMaker.cxx:181
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloTopoClusterMaker::m_xtalkEM2
bool m_xtalkEM2
if set to true, the time window is softened in the EMB2 and EME2_OW due to xtalk from direct neighbou...
Definition: CaloTopoClusterMaker.h:289
CaloTopoClusterMaker::m_cellThresholdOnEorAbsEinSigma
float m_cellThresholdOnEorAbsEinSigma
all cells have to satisfy
Definition: CaloTopoClusterMaker.h:106
CaloTopoClusterMaker::m_neighborThresholdOnEorAbsEinSigma
float m_neighborThresholdOnEorAbsEinSigma
cells with extend the cluster
Definition: CaloTopoClusterMaker.h:117
CaloCell_ID
Helper class for offline cell identifiers.
Definition: CaloCell_ID.h:34
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
CaloTopoClusterMaker::m_restrictHECIWandFCalNeighbors
bool m_restrictHECIWandFCalNeighbors
if set to true limit the neighbors in HEC IW and FCal2&3.
Definition: CaloTopoClusterMaker.h:208
CaloTopoClusterMaker::m_cellCutsInAbsE
bool m_cellCutsInAbsE
if set to true cell cuts are on and .
Definition: CaloTopoClusterMaker.h:243
ReadCondHandleKey.h
CaloTopoClusterMaker::m_clusterEtorAbsEtCut
float m_clusterEtorAbsEtCut
cut on the final cluster.
Definition: CaloTopoClusterMaker.h:259
CaloTopoClusterMaker::m_xtalk2DEratio
float m_xtalk2DEratio
cut on Eneighbor/E to remove out of time layer layer2 all 2D neighbors
Definition: CaloTopoClusterMaker.h:161
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloTopoClusterMaker::m_treatL1PredictedCellsAsGood
bool m_treatL1PredictedCellsAsGood
if set to true treat cells with a dead OTX which can be predicted by L1 trigger info as good instead ...
Definition: CaloTopoClusterMaker.h:269
IdentifierHash.h
CaloNoise.h
CaloTopoClusterMaker::m_hashMin
IdentifierHash m_hashMin
Definition: CaloTopoClusterMaker.h:355
CaloClusterCollectionProcessor.h
Base class for cluster processing tools called from CaloClusterMaker.
CaloTopoClusterMaker::m_xtalk3Eratio
float m_xtalk3Eratio
cut on Eneighbor/E to revover out of time layer 3cell close to energetic previous sampling neighbor
Definition: CaloTopoClusterMaker.h:153
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CaloTopoClusterMaker::m_timeCutUpperLimit
float m_timeCutUpperLimit
upper limit on the energy significance, for applying the cell time cut
Definition: CaloTopoClusterMaker.h:136
CaloTopoClusterMaker::passCellTimeCut
bool passCellTimeCut(const CaloCell *, const CaloCellContainer *) const
Definition: CaloTopoClusterMaker.cxx:714
SG::ReadCondHandleKey< CaloNoise >
CaloTopoClusterMaker::m_seedThresholdOnEorAbsEinSigma
float m_seedThresholdOnEorAbsEinSigma
cells with start a cluster
Definition: CaloTopoClusterMaker.h:127
CaloTopoClusterMaker::m_maxSampling
int m_maxSampling
largest valid seed sampling found
Definition: CaloTopoClusterMaker.h:346
CaloTopoClusterMaker::m_twogaussiannoise
bool m_twogaussiannoise
if set to true use 2-gaussian noise description for TileCal
Definition: CaloTopoClusterMaker.h:264
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CaloTopoClusterMaker::m_cellsKey
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
vector of names of the cell containers to use as input.
Definition: CaloTopoClusterMaker.h:70
CaloTopoClusterMaker::m_cutOOTseed
bool m_cutOOTseed
if set to true, seed cells failing the time cut are also excluded from cluster at all
Definition: CaloTopoClusterMaker.h:279
CaloTopoClusterMaker::m_xtalk2Eratio2
float m_xtalk2Eratio2
cut on Eneighbor/E to revover out of time cell close to energetic second phi neighbor cell
Definition: CaloTopoClusterMaker.h:149
CaloCell_Base_ID::NSUBCALO
@ NSUBCALO
Definition: CaloCell_Base_ID.h:46
CaloTopoClusterMaker::m_hashMax
IdentifierHash m_hashMax
Definition: CaloTopoClusterMaker.h:356
ReadHandle.h
Handle class for reading from StoreGate.
AthAlgTool
Definition: AthAlgTool.h:26
IdentifierHash
Definition: IdentifierHash.h:38
CaloTopoClusterMaker::m_xtalkEtaEratio
float m_xtalkEtaEratio
cut on Eneighbor/E to revover out of time layer 2 cell close in eta to energetic neighor cell
Definition: CaloTopoClusterMaker.h:157
CaloTopoClusterMaker::m_clusterSize
xAOD::CaloCluster::ClusterSize m_clusterSize
Cluster size enum. Set based on energy cut jobO.
Definition: CaloTopoClusterMaker.h:360
CaloTopoClusterMaker::m_useSampling
std::vector< bool > m_useSampling
flag for all samplings - true for used ones, false for excluded ones
Definition: CaloTopoClusterMaker.h:353
CaloTopoClusterMaker::m_xtalkEM3
bool m_xtalkEM3
if set to true we extend the time window for direct layer 3 neighbors of high energy layer 2 cells
Definition: CaloTopoClusterMaker.h:304
CaloTopoClusterMaker
topological cluster maker.
Definition: CaloTopoClusterMaker.h:48
CaloTopoClusterMaker::m_useTimeCutUpperLimit
bool m_useTimeCutUpperLimit
if set to true, the time cut is not applied on cell of large significance
Definition: CaloTopoClusterMaker.h:284