ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
RecoTools
CaloRingerTools
src
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"
16
#include "
StoreGate/WriteDecorHandle.h
"
17
#include "
StoreGate/WriteDecorHandleKey.h
"
18
#include "
AthenaBaseComps/AthCheckMacros.h
"
19
#include "
AthenaBaseComps/AthMessaging.h
"
20
#include "
AthContainers/DataVector.h
"
21
22
// xAOD include:
23
#include "
xAODCaloRings/tools/getCaloRingsDecorator.h
"
24
25
// Interface includes:
26
#include "
CaloRingerTools/ICaloRingsBuilder.h
"
27
28
// Local includes:
29
#include "
RingerKnownParticles.h
"
30
31
// Forward declarations:
32
class
CaloCellContainer
;
33
class
IMessageSvc;
34
35
namespace
Ringer
{
36
41
class
BuildCaloRingsJetFctorBase
:
public
AthMessaging
{
42
43
protected
:
48
BuildCaloRingsJetFctorBase
(
49
ToolHandle<ICaloRingsBuilder> &builder,
50
IMessageSvc* msgSvc,
51
const
std::string& name):
52
AthMessaging
(msgSvc, name),
53
m_builder
(builder),
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
;
66
size_t
m_part_counter
;
68
size_t
m_part_size
;
70
73
76
StatusCode
prepareJetToLoopFor
( std::size_t nParticles );
77
81
void
incrementCounter
() { ++
m_part_counter
; }
82
86
void
checkJetRelease
();
87
89
virtual
~BuildCaloRingsJetFctorBase
(){;}
90
91
private
:
95
SG::WriteHandle<xAOD::CaloRingsContainer>
*
m_crContH
;
97
SG::WriteHandle<xAOD::RingSetContainer>
*
m_rsContH
;
99
100
};
101
106
template
<
typename
container_t >
107
class
BuildCaloRingsJetFctor
:
public
BuildCaloRingsJetFctorBase
108
{
109
public
:
111
typedef
typename
container_t::base_value_type
particle_t
;
113
typedef
typename
SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinks >
114
decor_t
;
115
116
private
:
117
typedef
BuildCaloRingsJetFctorBase
base_t
;
118
// Import base template properties:
119
using
base_t::m_builder
;
120
using
base_t::m_part_counter
;
121
using
base_t::m_part_size
;
122
123
using
base_t::checkJetRelease
;
124
126
static
constexpr
const
char
*
m_particle_name
=
Ringer::GetParticleProp<particle_t>::name
;
127
131
void
displayLoopingMessage
()
const
;
132
136
SG::WriteDecorHandleKey< container_t >
m_decorKey
;
137
141
decor_t
*
m_decor
{
nullptr
};
142
143
public
:
147
BuildCaloRingsJetFctor
(
148
const
std::string &decoContName,
149
ToolHandle<ICaloRingsBuilder> &builder,
150
IMessageSvc* msgSvc,
151
IDataHandleHolder* owningAlg)
152
:
BuildCaloRingsJetFctorBase
(
153
builder,
154
msgSvc,
155
owningAlg->name()),
156
m_decorKey
( decoContName +
"."
+
xAOD
::caloRingsLinksDecorKey() )
157
{
m_decorKey
.setOwner(owningAlg);}
158
161
164
void
operator()
(
const
particle_t
*part);
165
169
StatusCode
initialize
();
170
174
StatusCode
prepareJetToLoopFor
( std::size_t nParticles );
175
179
void
checkJetRelease
();
181
};
182
183
}
// namespace Ringer
184
185
#endif
// CALORINGERTOOLS_CALORINGERREADERUTILS_H
186
187
#ifndef INCLUDE_HEADER_ONLY
// Use to avoid circular includes:
188
#include "
CaloRingerReaderJetUtils.icc
"
189
#endif
// INCLUDE_HEADER_ONLY
AthCheckMacros.h
AthMessaging.h
CaloRingerReaderJetUtils.icc
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
ICaloRingsBuilder.h
RingerKnownParticles.h
WriteDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
WriteDecorHandle.h
Handle class for adding a decoration to an object.
AthMessaging::AthMessaging
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Definition
AthMessaging.cxx:13
CaloCellContainer
Container class for CaloCell.
Definition
CaloCellContainer.h:55
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::m_part_size
size_t m_part_size
Hold number of particles to be processed:
Definition
CaloRingerReaderJetUtils.h:68
Ringer::BuildCaloRingsJetFctorBase::m_rsContH
SG::WriteHandle< xAOD::RingSetContainer > * m_rsContH
Keep RingSetContainer handle in scope until finished looping.
Definition
CaloRingerReaderJetUtils.h:97
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
Ringer::BuildCaloRingsJetFctorBase::~BuildCaloRingsJetFctorBase
virtual ~BuildCaloRingsJetFctorBase()
Definition
CaloRingerReaderJetUtils.h:89
Ringer::BuildCaloRingsJetFctorBase::m_crContH
SG::WriteHandle< xAOD::CaloRingsContainer > * m_crContH
Private Properties.
Definition
CaloRingerReaderJetUtils.h:95
Ringer::BuildCaloRingsJetFctorBase::prepareJetToLoopFor
StatusCode prepareJetToLoopFor(std::size_t nParticles)
Methods.
Definition
CaloRingerReaderJetUtils.cxx:23
Ringer::BuildCaloRingsJetFctorBase::m_builder
ToolHandle< ICaloRingsBuilder > & m_builder
Protected Properties.
Definition
CaloRingerReaderJetUtils.h:64
Ringer::BuildCaloRingsJetFctorBase::checkJetRelease
void checkJetRelease()
Release the handles when finished looping.
Definition
CaloRingerReaderJetUtils.cxx:43
Ringer::BuildCaloRingsJetFctor::m_decor
decor_t * m_decor
Write decorator handle.
Definition
CaloRingerReaderJetUtils.h:141
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
Ringer::BuildCaloRingsJetFctor::base_t
BuildCaloRingsJetFctorBase base_t
Definition
CaloRingerReaderJetUtils.h:117
Ringer::BuildCaloRingsJetFctor::decor_t
SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinks > decor_t
CaloRings links decorator handle type.
Definition
CaloRingerReaderJetUtils.h:114
Ringer::BuildCaloRingsJetFctor::displayLoopingMessage
void displayLoopingMessage() const
Shows current looping status.
Ringer::BuildCaloRingsJetFctor::checkJetRelease
void checkJetRelease()
Release the handles when finished looping.
Ringer::BuildCaloRingsJetFctor::m_decorKey
SG::WriteDecorHandleKey< container_t > m_decorKey
Decorator key.
Definition
CaloRingerReaderJetUtils.h:136
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::initialize
StatusCode initialize()
Initialize the decorator keys.
Ringer::BuildCaloRingsJetFctor::m_particle_name
static constexpr const char * m_particle_name
Holds particle name:
Definition
CaloRingerReaderJetUtils.h:126
Ringer::BuildCaloRingsJetFctor::prepareJetToLoopFor
StatusCode prepareJetToLoopFor(std::size_t nParticles)
Prepare to loop for nParticles.
Ringer::BuildCaloRingsJetFctor::operator()
void operator()(const particle_t *part)
Methods.
SG::WriteDecorHandleKey< container_t >
SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinks >
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
getCaloRingsDecorator.h
Ringer
Namespace dedicated for Ringer utilities.
Definition
CaloRingsDefs.h:9
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
Ringer::GetParticleProp
template to get particle_t name and if it has cluster access.
Definition
RingerKnownParticles.h:33
Generated on
for ATLAS Offline Software by
1.17.0