CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HcalCondObjectContainer< Item > Class Template Reference

#include <HcalCondObjectContainer.h>

Public Member Functions

bool addValues (const Item &myItem, bool h2mode_=false)
 
const bool exists (DetId fId) const
 
std::vector< DetIdgetAllChannels () const
 
const Item * getValues (DetId fId) const
 
 HcalCondObjectContainer ()
 
virtual std::string myname () const
 
virtual ~HcalCondObjectContainer ()
 

Private Member Functions

void initContainer (int container, bool h2mode_=false)
 

Private Attributes

std::vector< Item > CALIBcontainer
 
std::vector< Item > CASTORcontainer
 
std::vector< Item > HBcontainer
 
std::vector< Item > HEcontainer
 
std::vector< Item > HFcontainer
 
std::vector< Item > HOcontainer
 
std::vector< Item > HTcontainer
 
std::vector< Item > ZDCcontainer
 

Detailed Description

template<class Item>
class HcalCondObjectContainer< Item >

Definition at line 12 of file HcalCondObjectContainer.h.

Constructor & Destructor Documentation

template<class Item >
HcalCondObjectContainer< Item >::HcalCondObjectContainer ( )

Definition at line 52 of file HcalCondObjectContainer.h.

54 {
55 }
template<class Item >
HcalCondObjectContainer< Item >::~HcalCondObjectContainer ( )
virtual

Definition at line 58 of file HcalCondObjectContainer.h.

59 {
60 }

Member Function Documentation

template<class Item>
bool HcalCondObjectContainer< Item >::addValues ( const Item &  myItem,
bool  h2mode_ = false 
)

Definition at line 198 of file HcalCondObjectContainer.h.

References abs, edm::hlt::Exception, HcalGenericDetId::genericSubdet(), HcalGenericDetId::hashedId(), HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, getHLTprescales::index, and summarizeEdmComparisonLogfiles::success.

Referenced by HcalPedestalsCheck::analyze(), cms::HcalConstantsASCIIWriter::analyze(), HcalGainsCheck::analyze(), HcalDbXml::dumpObject(), HcalDbOnline::getObject(), HcalPedestalAnalysis::GetPedConst(), HcalPedestalAnalysis::HcalPedVal(), main(), HcalMonitorClient::writeChannelStatus(), HcalPedestalsAnalysis::~HcalPedestalsAnalysis(), and HcalPedestalWidthsValidation::~HcalPedestalWidthsValidation().

199 {
200  unsigned long myRawId = myItem.rawId();
201  HcalGenericDetId myId(myRawId);
202  int index = myId.hashedId(h2mode_);
203  bool success = false;
204  if (index < 0) success = false;
205  unsigned int index1 = abs(index); // b/c I'm fed up with compiler warnings about comparison betw. signed and unsigned int
206 
207  switch (myId.genericSubdet() ) {
209  if (!HBcontainer.size() ) initContainer(myId.genericSubdet() );
210  if (index1 < HBcontainer.size())
211  {
212  HBcontainer.at(index1) = myItem;
213  success = true;
214  }
215  break;
217  if (!HEcontainer.size() ) initContainer(myId.genericSubdet(), h2mode_ );
218  if (index1 < HEcontainer.size())
219  {
220  HEcontainer.at(index1) = myItem;
221  success = true;
222  }
223  break;
225  if (!HOcontainer.size() ) initContainer(myId.genericSubdet() );
226  if (index1 < HOcontainer.size())
227  {
228  HOcontainer.at(index1) = myItem;
229  success = true;
230  }
231  break;
233  if (!HFcontainer.size() ) initContainer(myId.genericSubdet() );
234  if (index1 < HFcontainer.size())
235  {
236  HFcontainer.at(index1) = myItem;
237  success = true;
238  }
239  break;
241  if (!HTcontainer.size() ) initContainer(myId.genericSubdet() );
242  if (index1 < HTcontainer.size())
243  {
244  HTcontainer.at(index1) = myItem;
245  success = true;
246  }
247  break;
249  if (!ZDCcontainer.size() ) initContainer(myId.genericSubdet() );
250  if (index1 < ZDCcontainer.size())
251  {
252  ZDCcontainer.at(index1) = myItem;
253  success = true;
254  }
255  break;
257  if (!CASTORcontainer.size() ) initContainer(myId.genericSubdet() );
258  if (index1 < CASTORcontainer.size())
259  {
260  CASTORcontainer.at(index1) = myItem;
261  success = true;
262  }
263  break;
265  if (!CALIBcontainer.size() ) initContainer(myId.genericSubdet() );
266  if (index1 < CALIBcontainer.size())
267  {
268  CALIBcontainer.at(index1) = myItem;
269  success = true;
270  }
271  break;
272  default: break;
273  }
274 
275  if (!success)
276  throw cms::Exception ("Filling of conditions failed")
277  << " no valid filling possible for Conditions of type " << myname() << " for DetId " << myId;
278  return success;
279 }
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
#define abs(x)
Definition: mlp_lapack.h:159
std::vector< Item > CASTORcontainer
void initContainer(int container, bool h2mode_=false)
std::vector< Item > ZDCcontainer
virtual std::string myname() const
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
std::vector< Item > HFcontainer
template<class Item >
const bool HcalCondObjectContainer< Item >::exists ( DetId  fId) const

Definition at line 151 of file HcalCondObjectContainer.h.

References abs, HcalGenericDetId::genericSubdet(), HcalGenericDetId::hashedId(), HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalGenericDetId::HEhalfh2mode, getHLTprescales::index, and NULL.

Referenced by HcalCondXML::dumpObject(), HcalDbOnline::getObject(), main(), and cms::HitReCalibrator::produce().

152 {
153  HcalGenericDetId myId(fId);
154  bool h2mode_ = (HEcontainer.size()==(2*HcalGenericDetId::HEhalfh2mode));
155 
156  int index = myId.hashedId(h2mode_);
157  if (index < 0) return false;
158  unsigned int index1 = abs(index); // b/c I'm fed up with compiler warnings about comparison betw. signed and unsigned int
159  const Item* cell = NULL;
160  switch (myId.genericSubdet() ) {
162  if (index1 < HBcontainer.size()) cell = &(HBcontainer.at(index1) );
163  break;
165  if (index1 < HEcontainer.size()) cell = &(HEcontainer.at(index1) );
166  break;
168  if (index1 < HOcontainer.size()) cell = &(HOcontainer.at(index1) );
169  break;
171  if (index1 < HFcontainer.size()) cell = &(HFcontainer.at(index1) );
172  break;
174  if (index1 < HTcontainer.size()) cell = &(HTcontainer.at(index1) );
175  break;
177  if (index1 < ZDCcontainer.size()) cell = &(ZDCcontainer.at(index1) );
178  break;
180  if (index1 < CASTORcontainer.size()) cell = &(CASTORcontainer.at(index1) );
181  break;
183  if (index1 < CALIBcontainer.size()) cell = &(CALIBcontainer.at(index1) );
184  break;
185  default: return false; break;
186  }
187 
188  // Item emptyItem;
189  if (cell)
190  // if (cell->rawId() != emptyItem.rawId() )
191  if (cell->rawId() == fId )
192  return true;
193 
194  return false;
195 }
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
#define abs(x)
Definition: mlp_lapack.h:159
#define NULL
Definition: scimark2.h:8
std::vector< Item > CASTORcontainer
std::vector< Item > ZDCcontainer
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
std::vector< Item > HFcontainer
template<class Item >
std::vector< DetId > HcalCondObjectContainer< Item >::getAllChannels ( ) const

Definition at line 282 of file HcalCondObjectContainer.h.

References i.

Referenced by HcalAutoPedestalValidator::analyze(), HcalPedestalsCheck::analyze(), HcalPedestalWidthsCheck::analyze(), HcalGainsCheck::analyze(), HcalBeamMonitor::beginRun(), HcalDeadCellMonitor::beginRun(), HcalMonitorClient::beginRun(), HcalDigiMonitor::beginRun(), HcalDbService::buildCalibrations(), HcalDbService::buildCalibWidths(), HcalCondXML::dumpObject(), HcalDbXml::dumpObject(), HcalPedestalAnalysis::HcalPedVal(), main(), CaloTowersCreationAlgo::makeHcalDropChMap(), and HcalMonitorClient::writeChannelStatus().

283 {
284  std::vector<DetId> channels;
285  Item emptyItem;
286  for (unsigned int i=0; i<HBcontainer.size(); i++)
287  {
288  if (emptyItem.rawId() != HBcontainer.at(i).rawId() )
289  channels.push_back( DetId(HBcontainer.at(i).rawId()) );
290  }
291  for (unsigned int i=0; i<HEcontainer.size(); i++)
292  {
293  if (emptyItem.rawId() != HEcontainer.at(i).rawId() )
294  channels.push_back( DetId(HEcontainer.at(i).rawId()) );
295  }
296  for (unsigned int i=0; i<HOcontainer.size(); i++)
297  {
298  if (emptyItem.rawId() != HOcontainer.at(i).rawId() )
299  channels.push_back( DetId(HOcontainer.at(i).rawId()) );
300  }
301  for (unsigned int i=0; i<HFcontainer.size(); i++)
302  {
303  if (emptyItem.rawId() != HFcontainer.at(i).rawId() )
304  channels.push_back( DetId(HFcontainer.at(i).rawId()) );
305  }
306  for (unsigned int i=0; i<HTcontainer.size(); i++)
307  {
308  if (emptyItem.rawId() != HTcontainer.at(i).rawId() )
309  channels.push_back( DetId(HTcontainer.at(i).rawId()) );
310  }
311  for (unsigned int i=0; i<ZDCcontainer.size(); i++)
312  {
313  if (emptyItem.rawId() != ZDCcontainer.at(i).rawId() )
314  channels.push_back( DetId(ZDCcontainer.at(i).rawId()) );
315  }
316  for (unsigned int i=0; i<CALIBcontainer.size(); i++)
317  {
318  if (emptyItem.rawId() != CALIBcontainer.at(i).rawId() )
319  channels.push_back( DetId(CALIBcontainer.at(i).rawId()) );
320  }
321  for (unsigned int i=0; i<CASTORcontainer.size(); i++)
322  {
323  if (emptyItem.rawId() != CASTORcontainer.at(i).rawId() )
324  channels.push_back( DetId(CASTORcontainer.at(i).rawId()) );
325  }
326 
327  return channels;
328 }
int i
Definition: DBlmapReader.cc:9
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
std::vector< Item > CASTORcontainer
std::vector< Item > ZDCcontainer
Definition: DetId.h:20
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
std::vector< Item > HFcontainer
template<class Item >
const Item * HcalCondObjectContainer< Item >::getValues ( DetId  fId) const

Definition at line 95 of file HcalCondObjectContainer.h.

References abs, edm::hlt::Exception, HcalGenericDetId::genericSubdet(), HcalGenericDetId::hashedId(), HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalGenericDetId::HEhalfh2mode, getHLTprescales::index, and NULL.

Referenced by HcalAmplifier::addPedestals(), cms::HcalConstantsASCIIWriter::analyze(), HcalBeamMonitor::beginRun(), HcalDeadCellMonitor::beginRun(), HcalMonitorClient::beginRun(), PFRecHitProducerHCAL::createRecHits(), HcalCondXML::dumpObject(), HcalDbXml::dumpObject(), reco::HcalNoiseInfoProducer::filldigis(), reco::HcalNoiseInfoProducer::fillrechits(), HcalDbService::getGain(), HcalDbService::getGainWidth(), HcalDbService::getHcalChannelStatus(), HcalDbService::getHcalL1TriggerObject(), HcalDbService::getHcalLUTCorr(), HcalDbService::getHcalPFCorr(), HcalDbService::getHcalRespCorr(), HcalDbService::getHcalTimeCorr(), HcalDbService::getHcalZSThreshold(), HcalDbService::getPedestal(), HcalDbService::getPedestalWidth(), CaloTowersCreationAlgo::hcalChanStatusForCaloTower(), HcalPedestalAnalysis::HcalPedVal(), HcalRecHitsValidation::hcalSevLvl(), HcalHF_PETalgorithm::HFSetFlagFromPET(), HcalHFStatusBitFromRecHits::hfSetFlagFromRecHits(), MuonHOAcceptance::initIds(), HcalRecHitsMaker::loadHcalRecHits(), main(), CaloTowersCreationAlgo::makeHcalDropChMap(), EgammaHLTHcalIsolation::passCleaning_(), ZdcHitReconstructor::produce(), HcalHitReconstructor::produce(), cms::HitReCalibrator::produce(), HcaluLUTTPGCoder::update(), ObjectValidator::validHit(), and HcalMonitorClient::writeChannelStatus().

96 {
97  HcalGenericDetId myId(fId);
98  bool h2mode_ = (HEcontainer.size()==(2*HcalGenericDetId::HEhalfh2mode));
99 
100  int index = myId.hashedId(h2mode_);
101  // std::cout << "::::: getting values at index " << index << ", DetId " << myId << std::endl;
102  unsigned int index1 = abs(index); // b/c I'm fed up with compiler warnings about comparison betw. signed and unsigned int
103 
104  const Item* cell = NULL;
105  if (index >= 0)
106  switch (myId.genericSubdet() ) {
108  if (index1 < HBcontainer.size())
109  cell = &(HBcontainer.at(index1) );
110  break;
112  if (index1 < HEcontainer.size())
113  cell = &(HEcontainer.at(index1) );
114  break;
116  if (index1 < HOcontainer.size())
117  cell = &(HOcontainer.at(index1) );
118  break;
120  if (index1 < HFcontainer.size())
121  cell = &(HFcontainer.at(index1) );
122  break;
124  if (index1 < HTcontainer.size())
125  cell = &(HTcontainer.at(index1) );
126  break;
128  if (index1 < ZDCcontainer.size())
129  cell = &(ZDCcontainer.at(index1) );
130  break;
132  if (index1 < CASTORcontainer.size())
133  cell = &(CASTORcontainer.at(index1) );
134  break;
136  if (index1 < CALIBcontainer.size())
137  cell = &(CALIBcontainer.at(index1) );
138  break;
139  default: break;
140  }
141 
142  // Item emptyItem;
143  // if (cell->rawId() == emptyItem.rawId() )
144  if ((!cell) || (cell->rawId() != fId ) )
145  throw cms::Exception ("Conditions not found")
146  << "Unavailable Conditions of type " << myname() << " for cell " << myId;
147  return cell;
148 }
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
#define abs(x)
Definition: mlp_lapack.h:159
#define NULL
Definition: scimark2.h:8
std::vector< Item > CASTORcontainer
std::vector< Item > ZDCcontainer
virtual std::string myname() const
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
std::vector< Item > HFcontainer
template<class Item >
void HcalCondObjectContainer< Item >::initContainer ( int  container,
bool  h2mode_ = false 
)
private

Definition at line 63 of file HcalCondObjectContainer.h.

References HcalGenericDetId::CALIBhalf, HcalGenericDetId::CASTORhalf, HcalGenericDetId::HBhalf, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalGenericDetId::HEhalf, HcalGenericDetId::HEhalfh2mode, HcalGenericDetId::HFhalf, HcalGenericDetId::HOhalf, HcalGenericDetId::HThalf, i, and HcalGenericDetId::ZDChalf.

64 {
65  // if (!m_h2mode) m_h2mode = h2mode_;
66 
67  Item emptyItem;
68 
69  switch (container)
70  {
72  for (int i=0; i<(2*HcalGenericDetId::HBhalf); i++) HBcontainer.push_back(emptyItem); break;
74  if (!h2mode_) for (int i=0; i<(2*HcalGenericDetId::HEhalf); i++) HEcontainer.push_back(emptyItem);
75  else for (int i=0; i<(2*HcalGenericDetId::HEhalfh2mode); i++) HEcontainer.push_back(emptyItem);
76  break;
78  for (int i=0; i<(2*HcalGenericDetId::HOhalf); i++) HOcontainer.push_back(emptyItem); break;
80  for (int i=0; i<(2*HcalGenericDetId::HFhalf); i++) HFcontainer.push_back(emptyItem); break;
82  for (int i=0; i<(2*HcalGenericDetId::HThalf); i++) HTcontainer.push_back(emptyItem); break;
84  for (int i=0; i<(2*HcalGenericDetId::ZDChalf); i++) ZDCcontainer.push_back(emptyItem); break;
86  for (int i=0; i<(2*HcalGenericDetId::CALIBhalf); i++) CALIBcontainer.push_back(emptyItem); break;
88  for (int i=0; i<(2*HcalGenericDetId::CASTORhalf); i++) CASTORcontainer.push_back(emptyItem); break;
89  default: break;
90  }
91 }
int i
Definition: DBlmapReader.cc:9
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
std::vector< Item > CASTORcontainer
std::vector< Item > ZDCcontainer
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
std::vector< Item > HFcontainer
template<class Item>
virtual std::string HcalCondObjectContainer< Item >::myname ( ) const
inlinevirtual

Member Data Documentation

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::CALIBcontainer
private

Definition at line 46 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::CASTORcontainer
private

Definition at line 47 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HBcontainer
private

Definition at line 40 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HEcontainer
private

Definition at line 41 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HFcontainer
private

Definition at line 43 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HOcontainer
private

Definition at line 42 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HTcontainer
private

Definition at line 44 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::ZDCcontainer
private

Definition at line 45 of file HcalCondObjectContainer.h.