CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalCondObjectContainer.h
Go to the documentation of this file.
1 #ifndef ECAL_COND_OBJECT_CONTAINER_HH
2 #define ECAL_COND_OBJECT_CONTAINER_HH
3 
7 
8 template < typename T >
10  public:
11  typedef T Item;
12  typedef Item value_type;
14  typedef typename std::vector<Item> Items;
15  typedef typename std::vector<Item>::const_iterator const_iterator;
16  typedef typename std::vector<Item>::iterator iterator;
17 
20 
21  inline
22  const Items & barrelItems() const { return eb_.items(); };
23 
24  inline
25  const Items & endcapItems() const { return ee_.items(); };
26 
27  inline
28  const Item & barrel( size_t hashedIndex ) const {
29  return eb_.item(hashedIndex);
30  }
31 
32  inline
33  const Item & endcap( size_t hashedIndex ) const {
34  return ee_.item(hashedIndex);
35  }
36 
37  inline
38  void insert( std::pair<uint32_t, Item> const &a ) {
39  DetId id(a.first);
40  switch (id.subdetId()) {
41  case EcalBarrel :
42  {
43  eb_.insert(a);
44  }
45  break;
46  case EcalEndcap :
47  {
48  ee_.insert(a);
49  }
50  break;
51  default:
52  // FIXME (add throw)
53  return;
54  }
55  }
56 
57  inline
58  const_iterator find( uint32_t rawId ) const {
59  DetId id(rawId);
60  switch (id.subdetId()) {
61  case EcalBarrel :
62  {
63  const_iterator it = eb_.find(rawId);
64  if ( it != eb_.end() ) {
65  return it;
66  } else {
67  return ee_.end();
68  }
69  }
70  break;
71  case EcalEndcap :
72  {
73  return ee_.find(rawId);
74  }
75  break;
76  default:
77  // FIXME (add throw)
78  return ee_.end();
79  }
80  }
81 
82  inline
84  return eb_.begin();
85  }
86 
87  inline
88  const_iterator end() const {
89  return ee_.end();
90  }
91 
92  inline
93  void setValue(const uint32_t id, const Item &item) {
94  (*this)[id] = item;
95  }
96 
97  inline
98  const self & getMap() const {
99  return *this;
100  }
101 
102  inline
103  size_t size() const {
104  return eb_.size() + ee_.size();
105  }
106  // add coherent operator++, not needed now -- FIXME
107 
108  inline
109  Item & operator[]( uint32_t rawId ) {
110  DetId id(rawId);
111  static Item dummy;
112  switch (id.subdetId()) {
113  case EcalBarrel :
114  {
115  return eb_[rawId];
116  }
117  break;
118  case EcalEndcap :
119  {
120  return ee_[rawId];
121  }
122  break;
123  default:
124  // FIXME (add throw)
125  return dummy;
126  }
127  }
128 
129  inline
130  Item const & operator[]( uint32_t rawId ) const {
131  DetId id(rawId);
132  static Item dummy;
133  switch (id.subdetId()) {
134  case EcalBarrel :
135  {
136  return eb_[rawId];
137  }
138  break;
139  case EcalEndcap :
140  {
141  return ee_[rawId];
142  }
143  break;
144  default:
145  // FIXME (add throw)
146  return dummy;
147  }
148  }
149 
150  private:
153 };
154 
156 #endif
const_iterator begin() const
Definition: EcalContainer.h:86
std::vector< Item >::iterator iterator
const Item & item(size_t hashid) const
Definition: EcalContainer.h:36
const self & getMap() const
const Items & items() const
Definition: EcalContainer.h:40
const_iterator end() const
Definition: EcalContainer.h:90
const Items & barrelItems() const
Item & operator[](uint32_t rawId)
void setValue(const uint32_t id, const Item &item)
int hashedIndex(int ieta, int iphi)
Definition: EcalPyUtils.cc:42
EcalContainer< EBDetId, Item > eb_
const_iterator find(uint32_t rawId) const
Definition: EcalContainer.h:80
const_iterator begin() const
void insert(std::pair< uint32_t, Item > const &a)
Definition: DetId.h:20
std::vector< Item >::const_iterator const_iterator
void insert(std::pair< uint32_t, Item > const &a)
Definition: EcalContainer.h:32
double a
Definition: hdecay.h:121
const_iterator find(uint32_t rawId) const
EcalContainer< EEDetId, Item > ee_
const_iterator end() const
const Item & barrel(size_t hashedIndex) const
const Items & endcapItems() const
size_t size() const
Definition: EcalContainer.h:94
const Item & endcap(size_t hashedIndex) const
long double T
Item const & operator[](uint32_t rawId) const
EcalCondObjectContainer< float > EcalFloatCondObjectContainer