ATLAS Offline Software
Loading...
Searching...
No Matches
CaloRings_v1.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2/*
3 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
4*/
5#ifndef XAODCALORINGS_VERSIONS_CALORINGS_V1_H
6#define XAODCALORINGS_VERSIONS_CALORINGS_V1_H
7
8// STL include(s):
9#include <vector>
10#include <iosfwd>
11
12// EDM include(s):
14
15// Local include(s):
18
19namespace xAOD {
20
52
53 public:
54
57
64 CaloRings_v1(const CaloRings_v1& cr);
66
71
74
77 unsigned nRingSets() const;
81 unsigned size() const;
89 void clear();
93 RingSetLinks::iterator begin();
97 RingSetLinks::iterator end();
101 RingSetLinks::const_iterator begin() const;
105 RingSetLinks::const_iterator end() const;
109 const RingSet *at(const unsigned index) const;
113 const RingSet *operator [](const unsigned index) const;
125 void setRingSetLinks(const RingSetLinks &ringsets);
127
130
133 CaloRings_v1& operator=(const CaloRings_v1& clrings);
135
138
141 float ringAt(const unsigned int rsIdx, const unsigned int ringIdx) const;
145 float ringAt(const unsigned int ringIdx) const;
147
150
153 void exportRingsTo(std::vector<float> &ringStrip) const;
157 void exportRingsTo(std::vector<float> &ringStrip,
158 const unsigned rsIdx) const;
162 void exportRingsTo(std::vector<float> &ringStrip,
163 const unsigned rsIdxStart,
164 const unsigned rsIdxEnd) const;
168 void exportRingsTo(std::vector<float> &ringStrip,
169 const RingSetConf_v1::RawConfCollection &clRingsRawConfCol,
170 const Ringer::CalJointLayer layerTypeIdx) const;
174 void exportRingsTo(std::vector<float> &ringStrip,
175 const RingSetConf_v1::RawConfCollection &clRingsRawConfCol,
176 const Ringer::CalJointLayer layerTypeStart,
177 const Ringer::CalJointLayer layerTypeEnd) const;
181 void exportRingsTo(std::vector<float> &ringStrip,
182 const RingSetConf_v1::RawConfCollection &clRingsRawConfCol,
183 const Ringer::CalJointSection sectionType) const;
185
186
189
192 void print( std::ostream &stream ) const;
194
195 private:
196
198 void checkRingSetIndexWithinRange( unsigned index ) const;
199
200};
201
204//==============================================================================
205inline
207 SG::AuxElement(clrings)
208{
209 this->makePrivateStore(clrings);
210}
211
212
213//==============================================================================
214inline
215unsigned CaloRings_v1::size() const {
216 return nRingSets();
217}
218
219//==============================================================================
220inline
221void CaloRings_v1::exportRingsTo(std::vector<float> &ringStrip) const
222{
223 exportRingsTo(ringStrip, 0, size()-1);
224}
225
226//==============================================================================
227inline
229 std::vector<float> &ringStrip,
230 const unsigned rsIdx) const
231{
232 exportRingsTo(ringStrip, rsIdx, rsIdx);
233}
234
235//==============================================================================
236inline
238 std::vector<float> &ringStrip,
239 const RingSetConf_v1::RawConfCollection &clRingsRawConfCol,
240 const Ringer::CalJointLayer layerTypeIdx) const
241{
242 exportRingsTo(ringStrip, clRingsRawConfCol, layerTypeIdx, layerTypeIdx);
243}
244
245
246} // End of namespace xAOD
247
248#include "xAODCore/BaseInfo.h"
250
251#endif // XAODCALORINGS_VERSIONS_CALORINGS_V1_H
Base class for elements of a container that can have aux data.
#define SG_BASE(D, B)
Declare that class D derives from class B.
Base class for elements of a container that can have aux data.
Definition AuxElement.h:483
void makePrivateStore()
Create a new (empty) private store for this object.
AuxElement()
Default constructor.
Class summarizing the particle interaction throughout the Calorimeter (its shower shape).
void clear()
Clear RingSet EL Collection.
const RingSet * operator[](const unsigned index) const
Return ith RingSet.
unsigned nRingSets() const
Number of RingSets ElementLinks available.
const RingSet * at(const unsigned index) const
Return ith RingSet.
void print(std::ostream &stream) const
Print-out methods:
void checkRingSetIndexWithinRange(unsigned index) const
Check if index is within range, otherwise throws overflow_error:
float ringAt(const unsigned int rsIdx, const unsigned int ringIdx) const
Navigate through eT rings methods.
const RingSetLinks & ringSetLinks() const
Returns constant ringsets collection.
RingSetLinks::iterator begin()
returns iterator to the beginning of RingSet Collection.
void addRingSetEL(const ElementLink< RingSetContainer_v1 > &rsEL)
Add ElementLink to holden vector.
void setRingSetLinks(const RingSetLinks &ringsets)
Set this CaloRings RingSet Collection.
CaloRings_v1()
Default empty ctor.
float ringAt(const unsigned int ringIdx) const
Returns the ringIdx'th ring eT value from the vectorized representation.
RingSetLinks::iterator end()
returns iterator to the ending of RingSet EL Collection.
unsigned size() const
Number of RingSets ElementLinks available.
void exportRingsTo(std::vector< float > &ringStrip) const
Export rings eT in vectorized representation.
CaloRings_v1 & operator=(const CaloRings_v1 &clrings)
Assignment Operator.
std::vector< RawConf > RawConfCollection
typedef The raw configuration structure data holder
CalJointLayer
the joint calorimeter layers.
CalJointSection
the joint calorimeter sections.
Forward declaration.
Definition index.py:1
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
RingSet_v1 RingSet
Definition of the current "RingSet version".
Definition RingSet.h:15
std::vector< ElementLink< RingSetContainer > > RingSetLinks
Declare element links vector.