ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
RecoTools
CaloRingerTools
src
CaloRingerReaderUtils.h
Go to the documentation of this file.
1
// Dear emacs, this is -*- c++ -*-
2
/*
3
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
4
*/
5
#ifndef CALORINGERTOOLS_CALORINGERREADERUTILS_H
6
#define CALORINGERTOOLS_CALORINGERREADERUTILS_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
BuildCaloRingsFctorBase
:
public
AthMessaging
{
42
43
protected
:
48
BuildCaloRingsFctorBase
(
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
prepareToLoopFor
( std::size_t nParticles );
77
81
void
incrementCounter
() { ++
m_part_counter
; }
82
86
void
checkRelease
();
87
89
virtual
~BuildCaloRingsFctorBase
(){;}
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
BuildCaloRingsFctor
:
public
BuildCaloRingsFctorBase
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
BuildCaloRingsFctorBase
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::checkRelease
;
124
126
static
constexpr
const
char
*
m_particle_name
=
Ringer::GetParticleProp<particle_t>::name
;
128
static
constexpr
bool
m_particle_has_cluster
=
Ringer::GetParticleProp<particle_t>::hasCluster
;
129
133
void
displayLoopingMessage
()
const
;
134
138
SG::WriteDecorHandleKey< container_t >
m_decorKey
;
139
143
decor_t
*
m_decor
{
nullptr
};
144
145
public
:
149
BuildCaloRingsFctor
(
150
const
std::string &decoContName,
151
ToolHandle<ICaloRingsBuilder> &builder,
152
IMessageSvc* msgSvc,
153
IDataHandleHolder* owningAlg)
154
:
BuildCaloRingsFctorBase
(
155
builder,
156
msgSvc,
157
owningAlg->name()),
158
m_decorKey
( decoContName +
"."
+
xAOD
::caloRingsLinksDecorKey() )
159
{
m_decorKey
.setOwner(owningAlg);}
160
163
166
void
operator()
(
const
particle_t
*part);
167
171
StatusCode
initialize
();
172
176
StatusCode
prepareToLoopFor
( std::size_t nParticles );
177
181
void
checkRelease
();
183
};
184
185
}
// namespace Ringer
186
187
#endif
// CALORINGERTOOLS_CALORINGERREADERUTILS_H
188
189
#ifndef INCLUDE_HEADER_ONLY
// Use to avoid circular includes:
190
#include "
CaloRingerReaderUtils.icc
"
191
#endif
// INCLUDE_HEADER_ONLY
192
AthCheckMacros.h
AthMessaging.h
CaloRingerReaderUtils.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::BuildCaloRingsFctorBase::m_builder
ToolHandle< ICaloRingsBuilder > & m_builder
Protected Properties.
Definition
CaloRingerReaderUtils.h:64
Ringer::BuildCaloRingsFctorBase::checkRelease
void checkRelease()
Release the handles when finished looping.
Definition
CaloRingerReaderUtils.cxx:43
Ringer::BuildCaloRingsFctorBase::m_part_counter
size_t m_part_counter
Hold number of particles already procesed for this event:
Definition
CaloRingerReaderUtils.h:66
Ringer::BuildCaloRingsFctorBase::prepareToLoopFor
StatusCode prepareToLoopFor(std::size_t nParticles)
Methods.
Definition
CaloRingerReaderUtils.cxx:23
Ringer::BuildCaloRingsFctorBase::m_part_size
size_t m_part_size
Hold number of particles to be processed:
Definition
CaloRingerReaderUtils.h:68
Ringer::BuildCaloRingsFctorBase::m_crContH
SG::WriteHandle< xAOD::CaloRingsContainer > * m_crContH
Private Properties.
Definition
CaloRingerReaderUtils.h:95
Ringer::BuildCaloRingsFctorBase::m_rsContH
SG::WriteHandle< xAOD::RingSetContainer > * m_rsContH
Keep RingSetContainer handle in scope until finished looping.
Definition
CaloRingerReaderUtils.h:97
Ringer::BuildCaloRingsFctorBase::incrementCounter
void incrementCounter()
Increment particle looping counter.
Definition
CaloRingerReaderUtils.h:81
Ringer::BuildCaloRingsFctorBase::~BuildCaloRingsFctorBase
virtual ~BuildCaloRingsFctorBase()
Definition
CaloRingerReaderUtils.h:89
Ringer::BuildCaloRingsFctorBase::BuildCaloRingsFctorBase
BuildCaloRingsFctorBase(ToolHandle< ICaloRingsBuilder > &builder, IMessageSvc *msgSvc, const std::string &name)
Main ctor Initialize values.
Definition
CaloRingerReaderUtils.h:48
Ringer::BuildCaloRingsFctor::operator()
void operator()(const particle_t *part)
Methods.
Ringer::BuildCaloRingsFctor::decor_t
SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinks > decor_t
CaloRings links decorator handle type.
Definition
CaloRingerReaderUtils.h:114
Ringer::BuildCaloRingsFctor::initialize
StatusCode initialize()
Initialize the decorator keys.
Ringer::BuildCaloRingsFctor::particle_t
container_t::base_value_type particle_t
Particle type that the functor will decorate the CaloRingsLinks.
Definition
CaloRingerReaderUtils.h:111
Ringer::BuildCaloRingsFctor::prepareToLoopFor
StatusCode prepareToLoopFor(std::size_t nParticles)
Prepare to loop for nParticles.
Ringer::BuildCaloRingsFctor::m_particle_name
static constexpr const char * m_particle_name
Holds particle name:
Definition
CaloRingerReaderUtils.h:126
Ringer::BuildCaloRingsFctor::displayLoopingMessage
void displayLoopingMessage() const
Shows current looping status.
Ringer::BuildCaloRingsFctor::checkRelease
void checkRelease()
Release the handles when finished looping.
Ringer::BuildCaloRingsFctor::m_decorKey
SG::WriteDecorHandleKey< container_t > m_decorKey
Decorator key.
Definition
CaloRingerReaderUtils.h:138
Ringer::BuildCaloRingsFctor::BuildCaloRingsFctor
BuildCaloRingsFctor(const std::string &decoContName, ToolHandle< ICaloRingsBuilder > &builder, IMessageSvc *msgSvc, IDataHandleHolder *owningAlg)
Main ctor, repass information for interface.
Definition
CaloRingerReaderUtils.h:149
Ringer::BuildCaloRingsFctor::m_particle_has_cluster
static constexpr bool m_particle_has_cluster
Holds if particle has cluster access:
Definition
CaloRingerReaderUtils.h:128
Ringer::BuildCaloRingsFctor::base_t
BuildCaloRingsFctorBase base_t
Definition
CaloRingerReaderUtils.h:117
Ringer::BuildCaloRingsFctor::m_decor
decor_t * m_decor
Write decorator handle.
Definition
CaloRingerReaderUtils.h:143
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