ATLAS Offline Software
CaloRingsBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CALORINGERTOOLS_CALORINGSBUILDER_H
6 #define CALORINGERTOOLS_CALORINGSBUILDER_H
7 
8 // Base includes:
11 
12 // STL includes:
13 #include <string>
14 #include <vector>
15 #include <memory>
16 #include <limits>
17 
18 // Wrap-around phi helper include:
20 
22 
23 // xAOD Includes:
24 #include "xAODBase/IParticle.h"
28 
29 // StoreGate includes:
33 // Forward declarations
35 #include "xAODJet/JetContainer.h"
36 class CaloCellContainer;
37 class CaloCellList;
38 
39 namespace Ringer {
40 
42  virtual public ICaloRingsBuilder
43 {
44 
45  public:
46 
49 
52  CaloRingsBuilder(const std::string& type,
53  const std::string& name,
54  const IInterface* parent);
55 
61 
64 
67  virtual StatusCode initialize() override;
68 
73  , xAOD::RingSetContainer* rsCont
74  , const std::size_t nReserve = 0) override;
79  ElementLink<xAOD::CaloRingsContainer> &clRingsLink) override;
83  virtual StatusCode execute(const xAOD::CaloCluster &cluster,
84  ElementLink<xAOD::CaloRingsContainer> &clRingsLink) override;
88  virtual StatusCode finalize() override;
90 
93 
97  return m_rsRawConfCol;
98  };
102  bool useShowerShapeBarycenter() override {
104  };
106 
107  std::size_t nRingSets() const override { return m_nRingSets; }
108 
111 
112  protected:
113 
116 
119  template<typename T>
121  const T &input,
126  virtual StatusCode buildRingSet(
128  const AtlasGeoPoint &seed,
129  xAOD::RingSet *rs);
135  const xAOD::CaloCluster &cluster,
136  AtlasGeoPoint &seed );
140  static StatusCode getRingSetSeed(
141  const xAOD::RingSetConf::RawConf &/*rawConf*/,
142  const xAOD::IParticle &part,
143  AtlasGeoPoint &seed);
147  // static StatusCode getRingSetSeed(
148  // const xAOD::RingSetConf::RawConf &/*rawConf*/,
149  // const xAOD::Jet_v1 &jet,
150  // AtlasGeoPoint &seed);
152 
155 
160  "CaloRingsContainerName",
161  "CaloRings",
162  "Name of the CaloRings container"};
163 
168  "RingSetContainerName",
169  "RingSets",
170  "Name of the RingSets container"};
171 
176  "CellsContainerName",
177  "AllCalo",
178  "Key to obtain the cell container"};
179 
183  Gaudi::Property<std::vector<float>> m_etaWidth {this,
184  "EtaWidth", {}, "Each RingSet ring eta width."};
188  Gaudi::Property<std::vector<float>> m_phiWidth {this,
189  "PhiWidth", {}, "Each RingSet ring phi width."};
193  Gaudi::Property<float> m_cellMaxDEtaDist{this,
194  "CellMaxDEtaDist", 0,
195  "Maximum cell distance to the seed in eta."};
199  Gaudi::Property<float> m_cellMaxDPhiDist{this,
200  "CellMaxDPhiDist", 0,
201  "Maximum cell distance to the seed in phi."};
205  Gaudi::Property<std::vector<unsigned int>> m_nRings{this,
206  "NRings", {},
207  "Each RingSet number of rings."};
211  Gaudi::Property<float> m_minEnergy{this,
212  "MinPartEnergy", std::numeric_limits<float>::lowest(),
213  "Minimum particle/cluster energy to build rings (GeV)."};
222  Gaudi::Property<std::vector<int/*=CaloCell_ID::CaloSample*/>>
223  m_layers{this,
224  "Layers", {},
225  "Concatenated list of layers which will be used "
226  "to build the RingSets"};
230  Gaudi::Property<std::vector<unsigned int>> m_nLayers{this,
231  "RingSetNLayers", {},
232  "Each RingSet number of layers from the Layers "
233  "configurable property to use."};
240  Gaudi::Property<bool> m_useShowShapeBarycenter{this,
241  "useShowerShapeBarycenter", false,
242  "Switch to use shower barycenter for each layer, "
243  "instead of the cluster center."};
244 
248  Gaudi::Property<bool> m_doTransverseEnergy{this,
249  "doTransverseEnergy", false,
250  "Switch to use raw cell energy, "
251  "instead of cells ET."};
252 
253  SG::ReadCondHandleKey<CaloDetDescrManager> m_caloMgrKey{this,"CaloDetDescrManager", "CaloDetDescrManager"};
254 
256 
259 
280  static const CaloPhiRange m_phiHelper;
284  size_t m_nRingSets;
286 
287 };
288 
289 } // namespace Ringer
290 
291 #endif
292 
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
RingSetContainerFwd.h
Ringer::CaloRingsBuilder::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: CaloRingsBuilder.h:253
ICaloRingsBuilder.h
Ringer::CaloRingsBuilder::~CaloRingsBuilder
~CaloRingsBuilder()
Destructor.
Ringer::CaloRingsBuilder::finalize
virtual StatusCode finalize() override
finalize method
Definition: CaloRingsBuilder.cxx:125
Ringer::CaloRingsBuilder::useShowerShapeBarycenter
bool useShowerShapeBarycenter() override
Retrieve whether it was set used shower shape barycenter.
Definition: CaloRingsBuilder.h:102
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
CaloPhiRange
This class defines the phi convention for Calorimeters.
Definition: CaloPhiRange.h:28
Ringer::CaloRingsBuilder::getRingSetSeed
StatusCode getRingSetSeed(const xAOD::RingSetConf::RawConf &conf, const xAOD::CaloCluster &cluster, AtlasGeoPoint &seed)
Fill RingSet seed for CaloCluster.
Definition: CaloRingsBuilder.cxx:245
CaloCellList
Definition: CaloCellList.h:40
IParticle.h
Ringer::CaloRingsBuilder::initialize
virtual StatusCode initialize() override
Tool main methods:
Definition: CaloRingsBuilder.cxx:54
Ringer::CaloRingsBuilder::m_etaWidth
Gaudi::Property< std::vector< float > > m_etaWidth
Width of the ring in eta.
Definition: CaloRingsBuilder.h:183
Ringer::CaloRingsBuilder::m_crCont
xAOD::CaloRingsContainer * m_crCont
Create and hold CaloRingsContainer for each event.
Definition: CaloRingsBuilder.h:266
xAOD::RingSetConf_v1::RawConfCollection
std::vector< RawConf > RawConfCollection
typedef The raw configuration structure data holder
Definition: RingSetConf_v1.h:124
Ringer::CaloRingsBuilder::m_cellMaxDPhiDist
Gaudi::Property< float > m_cellMaxDPhiDist
Maximum cell distance in phi to seed.
Definition: CaloRingsBuilder.h:199
CaloRingsContainerFwd.h
Ringer::CaloRingsBuilder::m_rsContName
SG::WriteHandleKey< xAOD::RingSetContainer > m_rsContName
Name of RingSetContainer on Event StoreGate.
Definition: CaloRingsBuilder.h:167
Ringer::CaloRingsBuilder::rawConf
const xAOD::RingSetConf::RawConfCollection & rawConf() override
Extra methods:
Definition: CaloRingsBuilder.h:96
Ringer::CaloRingsBuilder::m_phiWidth
Gaudi::Property< std::vector< float > > m_phiWidth
Width of the ring in phi.
Definition: CaloRingsBuilder.h:188
AtlasGeoPoint.h
xAOD::RingSet_v1
Class holding a set of rings.
Definition: RingSet_v1.h:31
Ringer::CaloRingsBuilder::m_cellsContName
SG::ReadHandleKey< CaloCellContainer > m_cellsContName
Name of CaloCellContainer.
Definition: CaloRingsBuilder.h:175
SG::ReadHandleKey< CaloCellContainer >
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
Ringer::CaloRingsBuilder::buildRingSet
virtual StatusCode buildRingSet(const xAOD::RingSetConf::RawConf &rawConf, const AtlasGeoPoint &seed, xAOD::RingSet *rs)
main method where the RingSets are built.
Definition: CaloRingsBuilder.cxx:317
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
Ringer::CaloRingsBuilder::m_doTransverseEnergy
Gaudi::Property< bool > m_doTransverseEnergy
Switch to use raw cell energy instead ET.
Definition: CaloRingsBuilder.h:248
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
Ringer::ICaloRingsBuilder
Definition: ICaloRingsBuilder.h:38
Ringer::CaloRingsBuilder::executeTemp
StatusCode executeTemp(const T &input, ElementLink< xAOD::CaloRingsContainer > &crEL)
Tool protected methods:
Definition: CaloRingsBuilder.cxx:193
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:62
python.ConfigurableDb.conf
def conf
Definition: ConfigurableDb.py:274
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
Ringer::CaloRingsBuilder::m_layers
Gaudi::Property< std::vector< int > > m_layers
Calorimeter layers in each ringset.
Definition: CaloRingsBuilder.h:223
Ringer::CaloRingsBuilder::CaloRingsBuilder
CaloRingsBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
Definition: CaloRingsBuilder.cxx:39
CaloClusterFwd.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Ringer::CaloRingsBuilder::m_nLayers
Gaudi::Property< std::vector< unsigned int > > m_nLayers
Number of calorimeter layers in each ringset.
Definition: CaloRingsBuilder.h:230
AthAlgTool.h
Ringer::CaloRingsBuilder::m_cellMaxDEtaDist
Gaudi::Property< float > m_cellMaxDEtaDist
Maximum cell distance in eta to seed.
Definition: CaloRingsBuilder.h:193
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloPhiRange.h
CaloPhiRange class declaration.
Ringer::CaloRingsBuilder::m_lastValidSeed
AtlasGeoPoint m_lastValidSeed
last valid RingSet seed
Definition: CaloRingsBuilder.h:276
Ringer::CaloRingsBuilder::m_phiHelper
static const CaloPhiRange m_phiHelper
used for phi wrap-around
Definition: CaloRingsBuilder.h:280
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
ReadCondHandleKey.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
Ringer::CaloRingsBuilder::crContName
const SG::WriteHandleKey< xAOD::CaloRingsContainer > & crContName() const override
Definition: CaloRingsBuilder.h:109
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Ringer::CaloRingsBuilder::m_minEnergy
Gaudi::Property< float > m_minEnergy
Minimum particle energy to build rings (GeV)
Definition: CaloRingsBuilder.h:211
Ringer::CaloRingsBuilder::nRingSets
std::size_t nRingSets() const override
Definition: CaloRingsBuilder.h:107
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
Ringer::CaloRingsBuilder::m_nRingSets
size_t m_nRingSets
hold the number of RingSets we are building for each CaloRings
Definition: CaloRingsBuilder.h:284
Ringer::CaloRingsBuilder::m_rsCont
xAOD::RingSetContainer * m_rsCont
Tool props (non configurables):
Definition: CaloRingsBuilder.h:262
SG::ReadCondHandleKey< CaloDetDescrManager >
Ringer::CaloRingsBuilder::m_rsRawConfCol
xAOD::RingSetConf::RawConfCollection m_rsRawConfCol
holds each RingSet configuration (filled at initialize)
Definition: CaloRingsBuilder.h:270
Ringer::CaloRingsBuilder::preExecute
virtual StatusCode preExecute(xAOD::CaloRingsContainer *crCont, xAOD::RingSetContainer *rsCont, const std::size_t nReserve=0) override
method for working on containers
Definition: CaloRingsBuilder.cxx:131
JetContainer.h
Ringer::CaloRingsBuilder
Definition: CaloRingsBuilder.h:43
Ringer::CaloRingsBuilder::m_crContName
SG::WriteHandleKey< xAOD::CaloRingsContainer > m_crContName
Fill RingSet seed for IParticle.
Definition: CaloRingsBuilder.h:159
AtlasGeoPoint
Definition: AtlasGeoPoint.h:15
xAOD::RingSetConf_v1::RawConf
Definition: RingSetConf_v1.h:49
Ringer::CaloRingsBuilder::execute
virtual StatusCode execute(const xAOD::IParticle &particle, ElementLink< xAOD::CaloRingsContainer > &clRingsLink) override
build CaloRings for IParticle
Definition: CaloRingsBuilder.cxx:175
Ringer::CaloRingsBuilder::m_nRings
Gaudi::Property< std::vector< unsigned int > > m_nRings
Number of rings in a ringset.
Definition: CaloRingsBuilder.h:205
AthAlgTool
Definition: AthAlgTool.h:26
Ringer::CaloRingsBuilder::rsContName
const SG::WriteHandleKey< xAOD::RingSetContainer > & rsContName() const override
Definition: CaloRingsBuilder.h:110
Ringer::CaloRingsBuilder::m_useShowShapeBarycenter
Gaudi::Property< bool > m_useShowShapeBarycenter
Switch to use shower barycenter seed for each RingSets.
Definition: CaloRingsBuilder.h:240
Ringer
Namespace dedicated for Ringer utilities.
Definition: CaloRingsDefs.h:9