ATLAS Offline Software
Loading...
Searching...
No Matches
Reconstruction/egamma/egammaEvent/egammaEvent/CaloRings.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef EGAMMAEVENT_CALORINGS_H
8#define EGAMMAEVENT_CALORINGS_H
9
10#include <vector>
13
14class RingSet {
15 public:
16
17 std::vector<float> m_rings;
18
19 std::vector<CaloCell_ID::CaloSample> m_layers;
20
21 typedef std::vector<float>::const_iterator const_iterator;
22
23 float m_deltaEta; // size of ring in eta
24 float m_deltaPhi; // size of ring in phi
25
26 // constructor and destructor
28 : m_deltaEta(0),
29 m_deltaPhi(0)
30 { };
31 virtual ~RingSet() { };
32
33 // accessors
34 float &at(unsigned int i);
35 float &operator [](unsigned int i);
36 const float &at(unsigned int i) const;
37 const float &operator [](unsigned int i) const;
38 size_t size() const;
39 void clearRings();
40 void addRing(float r);
41
42 size_t numberOfLayers() const;
43 CaloCell_ID::CaloSample &layer(unsigned int i);
44 const CaloCell_ID::CaloSample &layer(unsigned int i) const;
45 void clearLayers();
47
48 const_iterator begin() const;
49 const_iterator end() const;
50
51 float &deltaEta();
52 float &deltaPhi();
53 const float &deltaEta() const;
54 const float &deltaPhi() const;
55
56};
57
58class CaloRings {
59 public:
60 typedef std::vector<RingSet>::iterator iterator;
61 typedef std::vector<RingSet>::const_iterator const_iterator;
62
63 CaloRings();
64 virtual ~CaloRings() { };
65
66 void addRingSet(unsigned int numberOfRings,
67 std::vector<CaloCell_ID::CaloSample> &layers,
68 float deltaEta, float deltaPhi);
69 RingSet &at(unsigned int i);
70 const RingSet &at(unsigned int i) const;
71 RingSet &operator [](unsigned int i);
72 const RingSet &operator [](unsigned int i) const;
73 void clear();
74
75 float ringAt(unsigned int nRingSet, unsigned int nRing);
76
77
78 size_t size() const;
79 std::vector<RingSet>::iterator begin();
80 std::vector<RingSet>::iterator end();
81 std::vector<RingSet>::const_iterator begin() const;
82 std::vector<RingSet>::const_iterator end() const;
83
84 private:
85 std::vector<RingSet> m_ringsets;
86};
87
88CLASS_DEF(CaloRings, 177490517, 1)
89
90#endif
91
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
CaloSampling::CaloSample CaloSample
Definition CaloCell_ID.h:53
std::vector< RingSet >::iterator begin()
CaloRings()
Calo Rings ///.
float ringAt(unsigned int nRingSet, unsigned int nRing)
size_t size() const
std::vector< RingSet >::const_iterator const_iterator
RingSet & at(unsigned int i)
void addRingSet(unsigned int numberOfRings, std::vector< CaloCell_ID::CaloSample > &layers, float deltaEta, float deltaPhi)
void clear()
std::vector< RingSet >::iterator end()
RingSet & operator[](unsigned int i)
float & deltaEta()
Definition CaloRings.cxx:76
float & operator[](unsigned int i)
Definition CaloRings.cxx:17
void addLayer(CaloCell_ID::CaloSample c)
Definition CaloRings.cxx:71
void addRing(float r)
Definition CaloRings.cxx:44
std::vector< float >::const_iterator const_iterator
size_t size() const
Definition CaloRings.cxx:33
float & at(unsigned int i)
RingSet ///.
Definition CaloRings.cxx:11
size_t numberOfLayers() const
Definition CaloRings.cxx:50
void clearRings()
Definition CaloRings.cxx:39
float & deltaPhi()
Definition CaloRings.cxx:81
void clearLayers()
Definition CaloRings.cxx:65
std::vector< CaloCell_ID::CaloSample > m_layers
const_iterator begin() const
Definition CaloRings.cxx:97
const_iterator end() const
CaloCell_ID::CaloSample & layer(unsigned int i)
Definition CaloRings.cxx:55
int r
Definition globals.cxx:22