ATLAS Offline Software
CaloRingerReaderJetUtils.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 /*
3  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 */
5 #ifndef CALORINGERTOOLS_CALORINGERREADERJetUTILS_H
6 #define CALORINGERTOOLS_CALORINGERREADERJetUTILS_H
7 
8 // STL includes:
9 #include <string>
10 #include <memory>
11 #include <vector>
12 
13 // Athena framework include:
14 #include "GaudiKernel/ToolHandle.h"
15 #include "GaudiKernel/IDataHandleHolder.h"
21 
22 // xAOD include:
24 
25 // Interface includes:
27 
28 // Local includes:
29 #include "RingerKnownParticles.h"
30 
31 // Forward declarations:
32 class CaloCellContainer;
33 class IMessageSvc;
34 
35 namespace Ringer {
36 
42 
43  protected:
49  ToolHandle<ICaloRingsBuilder> &builder,
50  IMessageSvc* msgSvc,
51  const std::string& name):
54  m_part_counter(0),
55  m_part_size(0),
56  m_crContH(nullptr),
57  m_rsContH(nullptr)
58  {;}
59 
60 
64  ToolHandle<ICaloRingsBuilder> &m_builder;
68  size_t m_part_size;
70 
73 
76  StatusCode prepareJetToLoopFor( std::size_t nParticles );
77 
82 
86  void checkJetRelease();
87 
90 
91  private:
99 
100 };
101 
106 template< typename container_t >
108 {
109  public:
111  typedef typename container_t::base_value_type particle_t;
115 
116  private:
118  // Import base template properties:
122 
124 
127 
131  void displayLoopingMessage() const;
132 
137 
141  decor_t* m_decor{nullptr};
142 
143  public:
148  const std::string &decoContName,
149  ToolHandle<ICaloRingsBuilder> &builder,
150  IMessageSvc* msgSvc,
151  IDataHandleHolder* owningAlg)
153  builder,
154  msgSvc,
155  owningAlg->name()),
156  m_decorKey( decoContName + "." + xAOD::caloRingsLinksDecorKey() )
157  { m_decorKey.setOwner(owningAlg);}
158 
161 
165 
170 
174  StatusCode prepareJetToLoopFor( std::size_t nParticles );
175 
181 };
182 
183 } // namespace Ringer
184 
185 #endif // CALORINGERTOOLS_CALORINGERREADERUTILS_H
186 
187 #ifndef INCLUDE_HEADER_ONLY // Use to avoid circular includes:
189 #endif // INCLUDE_HEADER_ONLY
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
SG::WriteDecorHandleKey< container_t >
ICaloRingsBuilder.h
Ringer::BuildCaloRingsJetFctorBase::incrementCounter
void incrementCounter()
Increment particle looping counter.
Definition: CaloRingerReaderJetUtils.h:81
Ringer::BuildCaloRingsJetFctorBase::BuildCaloRingsJetFctorBase
BuildCaloRingsJetFctorBase(ToolHandle< ICaloRingsBuilder > &builder, IMessageSvc *msgSvc, const std::string &name)
Main ctor Initialize values.
Definition: CaloRingerReaderJetUtils.h:48
AthCheckMacros.h
Ringer::BuildCaloRingsJetFctor::particle_t
container_t::base_value_type particle_t
Particle type that the functor will decorate the CaloRingsLinks.
Definition: CaloRingerReaderJetUtils.h:111
Ringer::BuildCaloRingsJetFctor::m_decor
decor_t * m_decor
Write decorator handle.
Definition: CaloRingerReaderJetUtils.h:141
Ringer::BuildCaloRingsJetFctorBase::m_part_counter
size_t m_part_counter
Hold number of particles already procesed for this event:
Definition: CaloRingerReaderJetUtils.h:66
Ringer::BuildCaloRingsJetFctorBase
Interface for CaloRings builder functor.
Definition: CaloRingerReaderJetUtils.h:41
Ringer::BuildCaloRingsJetFctor
Definition: CaloRingerReaderJetUtils.h:108
Ringer::BuildCaloRingsJetFctor::operator()
void operator()(const particle_t *part)
Methods.
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
Ringer::BuildCaloRingsJetFctor::base_t
BuildCaloRingsJetFctorBase base_t
Definition: CaloRingerReaderJetUtils.h:117
Ringer::BuildCaloRingsJetFctorBase::m_builder
ToolHandle< ICaloRingsBuilder > & m_builder
Protected Properties.
Definition: CaloRingerReaderJetUtils.h:64
xAOD::caloRingsLinksDecorKey
std::string caloRingsLinksDecorKey()
Definition: getCaloRingsDecorator.h:17
Ringer::BuildCaloRingsJetFctor::prepareJetToLoopFor
StatusCode prepareJetToLoopFor(std::size_t nParticles)
Prepare to loop for nParticles.
Ringer::BuildCaloRingsJetFctorBase::checkJetRelease
void checkJetRelease()
Release the handles when finished looping.
Definition: CaloRingerReaderJetUtils.cxx:43
Ringer::BuildCaloRingsJetFctorBase::m_crContH
SG::WriteHandle< xAOD::CaloRingsContainer > * m_crContH
Private Properties.
Definition: CaloRingerReaderJetUtils.h:95
Ringer::BuildCaloRingsJetFctor::m_particle_name
static constexpr const char * m_particle_name
Holds particle name:
Definition: CaloRingerReaderJetUtils.h:126
Ringer::BuildCaloRingsJetFctor::displayLoopingMessage
void displayLoopingMessage() const
Shows current looping status.
RingerKnownParticles.h
getCaloRingsDecorator.h
WriteDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
Ringer::BuildCaloRingsJetFctorBase::m_rsContH
SG::WriteHandle< xAOD::RingSetContainer > * m_rsContH
Keep RingSetContainer handle in scope until finished looping.
Definition: CaloRingerReaderJetUtils.h:97
createSimpleDistributions.builder
builder
Definition: createSimpleDistributions.py:51
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
WriteDecorHandle.h
Handle class for adding a decoration to an object.
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
Ringer::BuildCaloRingsJetFctorBase::prepareJetToLoopFor
StatusCode prepareJetToLoopFor(std::size_t nParticles)
Methods.
Definition: CaloRingerReaderJetUtils.cxx:23
CaloRingerReaderJetUtils.icc
Ringer::BuildCaloRingsJetFctorBase::m_part_size
size_t m_part_size
Hold number of particles to be processed:
Definition: CaloRingerReaderJetUtils.h:68
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Ringer::BuildCaloRingsJetFctor::checkJetRelease
void checkJetRelease()
Release the handles when finished looping.
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
Ringer::GetParticleProp
template to get particle_t name and if it has cluster access.
Definition: RingerKnownParticles.h:33
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
Ringer::BuildCaloRingsJetFctor::BuildCaloRingsJetFctor
BuildCaloRingsJetFctor(const std::string &decoContName, ToolHandle< ICaloRingsBuilder > &builder, IMessageSvc *msgSvc, IDataHandleHolder *owningAlg)
Main ctor, repass information for interface.
Definition: CaloRingerReaderJetUtils.h:147
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
Ringer::BuildCaloRingsJetFctor::m_decorKey
SG::WriteDecorHandleKey< container_t > m_decorKey
Decorator key.
Definition: CaloRingerReaderJetUtils.h:136
Ringer::BuildCaloRingsJetFctor::decor_t
SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinks > decor_t
CaloRings links decorator handle type.
Definition: CaloRingerReaderJetUtils.h:114
Ringer::BuildCaloRingsJetFctor::initialize
StatusCode initialize()
Initialize the decorator keys.
AthMessaging.h
Ringer::BuildCaloRingsJetFctorBase::~BuildCaloRingsJetFctorBase
virtual ~BuildCaloRingsJetFctorBase()
Definition: CaloRingerReaderJetUtils.h:89
Ringer
Namespace dedicated for Ringer utilities.
Definition: CaloRingsDefs.h:9