CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ESCondObjectContainer.h
Go to the documentation of this file.
1 #ifndef ES_COND_OBJECT_CONTAINER_HH
2 #define ES_COND_OBJECT_CONTAINER_HH
3 
6 
7 template < typename T >
9  public:
10  typedef T Item;
11  typedef Item value_type;
13  typedef typename std::vector<Item> Items;
14  typedef typename std::vector<Item>::const_iterator const_iterator;
15  typedef typename std::vector<Item>::iterator iterator;
16 
19 
20  inline
21  const Items & preshowerItems() const { return es_.items(); };
22 
23  inline
24  const Item & preshower( size_t hashedIndex ) const {
25  return es_.item(hashedIndex);
26  }
27 
28  inline
29  void insert( std::pair<uint32_t, Item> const &a ) {
30  DetId id(a.first);
31  switch (id.subdetId()) {
32  case EcalPreshower :
33  {
34  es_.insert(a);
35  }
36  break;
37  default:
38  // FIXME (add throw)
39  return;
40  }
41  }
42 
43  inline
44  const_iterator find( uint32_t rawId ) const {
45  DetId id(rawId);
46  const_iterator it = es_.end();
47  if(id.subdetId()== EcalPreshower) {
48  it = es_.find(rawId);
49  if ( it != es_.end() ) {
50  return it;
51  }
52  }
53  return it;
54  }
55 
56  inline
58  return es_.begin();
59  }
60 
61  inline
62  const_iterator end() const {
63  return es_.end();
64  }
65 
66  inline
67  void setValue(const uint32_t id, const Item &item) {
68  (*this)[id] = item;
69  }
70 
71  inline
72  const self & getMap() const {
73  return *this;
74  }
75 
76  inline
77  size_t size() const {
78  return es_.size() ;
79  }
80  // add coherent operator++, not needed now -- FIXME
81 
82  inline
83  Item & operator[]( uint32_t rawId ) {
84  DetId id(rawId);
85  static Item dummy;
86  switch (id.subdetId()) {
87  case EcalPreshower :
88  {
89  return es_[rawId];
90  }
91  break;
92  default:
93  // FIXME (add throw)
94  return dummy;
95  }
96  }
97 
98  inline
99  Item const & operator[]( uint32_t rawId ) const {
100  DetId id(rawId);
101  static Item dummy;
102  switch (id.subdetId()) {
103  case EcalPreshower :
104  {
105  return es_[rawId];
106  }
107  break;
108  default:
109  // FIXME (add throw)
110  return dummy;
111  }
112  }
113 
114  private:
116 };
117 
119 #endif
const_iterator begin() const
Definition: EcalContainer.h:83
ESCondObjectContainer< float > ESFloatCondObjectContainer
const Item & item(size_t hashid) const
Definition: EcalContainer.h:33
std::vector< Item > Items
const Items & items() const
Definition: EcalContainer.h:37
const_iterator end() const
Definition: EcalContainer.h:87
const_iterator end() const
const self & getMap() const
EcalContainer< ESDetId, Item > es_
Item & operator[](uint32_t rawId)
int hashedIndex(int ieta, int iphi)
Definition: EcalPyUtils.cc:42
const_iterator find(uint32_t rawId) const
Definition: EcalContainer.h:77
void insert(std::pair< uint32_t, Item > const &a)
void setValue(const uint32_t id, const Item &item)
const_iterator find(uint32_t rawId) const
const Item & preshower(size_t hashedIndex) const
Definition: DetId.h:20
std::vector< Item >::const_iterator const_iterator
void insert(std::pair< uint32_t, Item > const &a)
Definition: EcalContainer.h:29
std::vector< Item >::iterator iterator
double a
Definition: hdecay.h:121
const_iterator begin() const
size_t size() const
Definition: EcalContainer.h:91
Item const & operator[](uint32_t rawId) const
const Items & preshowerItems() const