CMS 3D CMS Logo

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

#include <HcalCondObjectContainer.h>

Inheritance diagram for HcalCondObjectContainer< Item >:
HcalCondObjectContainerBase

Public Types

typedef std::vector< tHcalConttAllContWithNames
 
typedef std::pair< std::string,
std::vector< Item > > 
tHcalCont
 

Public Member Functions

bool addValues (const Item &myItem)
 
const bool exists (DetId fId) const
 
std::vector< DetIdgetAllChannels () const
 
const tAllContWithNames getAllContainers () const
 
const ItemgetValues (DetId fId, bool throwOnFail=true) const
 
 HcalCondObjectContainer (const HcalTopology *topo)
 
virtual std::string myname () const
 
virtual ~HcalCondObjectContainer ()
 
- Public Member Functions inherited from HcalCondObjectContainerBase
int getCreatorPackedIndexVersion () const
 
void setTopo (const HcalTopology *topo) const
 
void setTopo (const HcalTopology *topo)
 
const HcalTopologytopo () const
 

Private Member Functions

void initContainer (DetId container)
 

Private Attributes

std::vector< ItemCALIBcontainer
 
std::vector< ItemCASTORcontainer
 
 COND_SERIALIZABLE
 
std::vector< ItemHBcontainer
 
std::vector< ItemHEcontainer
 
std::vector< ItemHFcontainer
 
std::vector< ItemHOcontainer
 
std::vector< ItemHTcontainer
 
std::vector< ItemZDCcontainer
 

Additional Inherited Members

- Protected Member Functions inherited from HcalCondObjectContainerBase
HcalOtherSubdetector extractOther (const DetId &id) const
 
 HcalCondObjectContainerBase (const HcalTopology *)
 
unsigned int indexFor (DetId) const
 
unsigned int sizeFor (DetId) const
 
std::string textForId (const DetId &id) const
 
- Protected Attributes inherited from HcalCondObjectContainerBase
int packedIndexVersion_ COND_TRANSIENT
 

Detailed Description

template<class Item>
class HcalCondObjectContainer< Item >

Definition at line 37 of file HcalCondObjectContainer.h.

Member Typedef Documentation

template<class Item>
typedef std::vector< tHcalCont > HcalCondObjectContainer< Item >::tAllContWithNames

Definition at line 61 of file HcalCondObjectContainer.h.

template<class Item>
typedef std::pair< std::string, std::vector<Item> > HcalCondObjectContainer< Item >::tHcalCont

Definition at line 60 of file HcalCondObjectContainer.h.

Constructor & Destructor Documentation

template<class Item>
HcalCondObjectContainer< Item >::HcalCondObjectContainer ( const HcalTopology topo)
inline

Definition at line 40 of file HcalCondObjectContainer.h.

HcalCondObjectContainerBase(const HcalTopology *)
template<class Item >
HcalCondObjectContainer< Item >::~HcalCondObjectContainer ( )
virtual

Definition at line 97 of file HcalCondObjectContainer.h.

98 {
99 }

Member Function Documentation

template<class Item>
bool HcalCondObjectContainer< Item >::addValues ( const Item myItem)

Definition at line 188 of file HcalCondObjectContainer.h.

References DetId::Calo, edm::hlt::Exception, DetId::Hcal, HcalBarrel, HcalCalibration, HcalEndcap, HcalForward, HcalOther, HcalOuter, HcalTriggerTower, cmsHarvester::index, NULL, HcalZDCDetId::SubdetectorId, HcalCastorDetId::SubdetectorId, and summarizeEdmComparisonLogfiles::success.

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

189 {
190  bool success = false;
191  DetId fId(myItem.rawId());
192  unsigned int index=indexFor(fId);
193 
194  Item* cell = NULL;
195 
196  if (index<0xFFFFFFFu) {
197  if (fId.det()==DetId::Hcal) {
198  switch (HcalSubdetector(fId.subdetId())) {
199  case(HcalBarrel) : if (!HBcontainer.size() ) initContainer(fId);
200  if (index < HBcontainer.size()) cell = &(HBcontainer.at(index) ); break;
201  case(HcalEndcap) : if (!HEcontainer.size() ) initContainer(fId);
202  if (index < HEcontainer.size()) cell = &(HEcontainer.at(index) ); break;
203  case(HcalForward) : if (!HFcontainer.size() ) initContainer(fId);
204  if (index < HFcontainer.size()) cell = &(HFcontainer.at(index) ); break;
205  case(HcalOuter) : if (!HOcontainer.size() ) initContainer(fId);
206  if (index < HOcontainer.size()) cell = &(HOcontainer.at(index) ); break;
207  case(HcalTriggerTower) : if (!HTcontainer.size() ) initContainer(fId);
208  if (index < HTcontainer.size()) cell = &(HTcontainer.at(index) ); break;
209  case(HcalOther) : if (extractOther(fId)==HcalCalibration) {
210  if (!CALIBcontainer.size() ) initContainer(fId);
211  if (index < CALIBcontainer.size()) cell = &(CALIBcontainer.at(index) );
212  }
213  break;
214  default: break;
215  }
216  } else if (fId.det()==DetId::Calo) {
217  if (fId.subdetId()==HcalCastorDetId::SubdetectorId) {
218  if (!CASTORcontainer.size() ) initContainer(fId);
219  if (index < CASTORcontainer.size()) cell = &(CASTORcontainer.at(index) );
220  } else if (fId.subdetId()==HcalZDCDetId::SubdetectorId) {
221  if (!ZDCcontainer.size() ) initContainer(fId);
222  if (index < ZDCcontainer.size()) cell = &(ZDCcontainer.at(index) );
223  }
224  }
225  }
226 
227  if (cell!=0) {
228  (*cell)=myItem;
229  success=true;
230  }
231 
232  if (!success)
233  throw cms::Exception ("Filling of conditions failed")
234  << " no valid filling possible for Conditions of type " << myname() << " for DetId " << textForId(fId);
235  return success;
236 }
unsigned int indexFor(DetId) const
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
#define NULL
Definition: scimark2.h:8
std::vector< Item > CASTORcontainer
HcalOtherSubdetector extractOther(const DetId &id) const
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< Item > ZDCcontainer
static const int SubdetectorId
Definition: DetId.h:18
static const int SubdetectorId
Definition: HcalZDCDetId.h:20
virtual std::string myname() const
std::string textForId(const DetId &id) const
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
void initContainer(DetId container)
std::vector< Item > HFcontainer
template<class Item >
const bool HcalCondObjectContainer< Item >::exists ( DetId  fId) const

Definition at line 176 of file HcalCondObjectContainer.h.

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

177 {
178  const Item* cell = getValues(fId,false);
179 
180  if (cell)
181  if (cell->rawId() == fId )
182  return true;
183 
184  return false;
185 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
template<class Item >
std::vector< DetId > HcalCondObjectContainer< Item >::getAllChannels ( ) const

Definition at line 239 of file HcalCondObjectContainer.h.

References i.

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

240 {
241  std::vector<DetId> channels;
242  Item emptyItem;
243  for (unsigned int i=0; i<HBcontainer.size(); i++)
244  {
245  if (emptyItem.rawId() != HBcontainer.at(i).rawId() )
246  channels.push_back( DetId(HBcontainer.at(i).rawId()) );
247  }
248  for (unsigned int i=0; i<HEcontainer.size(); i++)
249  {
250  if (emptyItem.rawId() != HEcontainer.at(i).rawId() )
251  channels.push_back( DetId(HEcontainer.at(i).rawId()) );
252  }
253  for (unsigned int i=0; i<HOcontainer.size(); i++)
254  {
255  if (emptyItem.rawId() != HOcontainer.at(i).rawId() )
256  channels.push_back( DetId(HOcontainer.at(i).rawId()) );
257  }
258  for (unsigned int i=0; i<HFcontainer.size(); i++)
259  {
260  if (emptyItem.rawId() != HFcontainer.at(i).rawId() )
261  channels.push_back( DetId(HFcontainer.at(i).rawId()) );
262  }
263  for (unsigned int i=0; i<HTcontainer.size(); i++)
264  {
265  if (emptyItem.rawId() != HTcontainer.at(i).rawId() )
266  channels.push_back( DetId(HTcontainer.at(i).rawId()) );
267  }
268  for (unsigned int i=0; i<ZDCcontainer.size(); i++)
269  {
270  if (emptyItem.rawId() != ZDCcontainer.at(i).rawId() )
271  channels.push_back( DetId(ZDCcontainer.at(i).rawId()) );
272  }
273  for (unsigned int i=0; i<CALIBcontainer.size(); i++)
274  {
275  if (emptyItem.rawId() != CALIBcontainer.at(i).rawId() )
276  channels.push_back( DetId(CALIBcontainer.at(i).rawId()) );
277  }
278  for (unsigned int i=0; i<CASTORcontainer.size(); i++)
279  {
280  if (emptyItem.rawId() != CASTORcontainer.at(i).rawId() )
281  channels.push_back( DetId(CASTORcontainer.at(i).rawId()) );
282  }
283 
284  return channels;
285 }
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:18
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
std::vector< Item > HFcontainer
template<class Item>
const tAllContWithNames HcalCondObjectContainer< Item >::getAllContainers ( ) const
inline

Definition at line 63 of file HcalCondObjectContainer.h.

63  {
64  tAllContWithNames allContainers;
65  allContainers.push_back(tHcalCont("HB",HBcontainer));
66  allContainers.push_back(tHcalCont("HE",HEcontainer));
67  allContainers.push_back(tHcalCont("HO",HOcontainer));
68  allContainers.push_back(tHcalCont("HF",HFcontainer));
69  allContainers.push_back(tHcalCont("HT",HTcontainer));
70  allContainers.push_back(tHcalCont("ZDC",ZDCcontainer));
71  allContainers.push_back(tHcalCont("CALIB",CALIBcontainer));
72  allContainers.push_back(tHcalCont("CASTOR",CASTORcontainer));
73  return allContainers;
74  }
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
std::pair< std::string, std::vector< Item > > tHcalCont
std::vector< tHcalCont > tAllContWithNames
template<class Item >
const Item * HcalCondObjectContainer< Item >::getValues ( DetId  fId,
bool  throwOnFail = true 
) const

Definition at line 129 of file HcalCondObjectContainer.h.

References DetId::Calo, DetId::det(), edm::hlt::Exception, DetId::Hcal, HcalBarrel, HcalCalibration, HcalEndcap, HcalForward, HcalOther, HcalOuter, HcalTriggerTower, cmsHarvester::index, NULL, HcalZDCDetId::SubdetectorId, HcalCastorDetId::SubdetectorId, and DetId::subdetId().

Referenced by HcalAmplifier::addPedestals(), cms::HcalConstantsASCIIWriter::analyze(), HcalBeamMonitor::beginRun(), HcalDeadCellMonitor::beginRun(), HcalMonitorClient::beginRun(), HcalDigiMonitor::beginRun(), HcalDetDiagLEDMonitor::beginRun(), HcalDetDiagPedestalMonitor::beginRun(), HcalDetDiagLaserMonitor::beginRun(), 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(), HcalRecHitsAnalyzer::hcalSevLvl(), HcalRecHitsValidation::hcalSevLvl(), HcalHF_PETalgorithm::HFSetFlagFromPET(), HcalHFStatusBitFromRecHits::hfSetFlagFromRecHits(), HcalHF_S9S1algorithm::HFSetFlagFromS9S1(), MuonHOAcceptance::initIds(), HcalRecHitsMaker::loadHcalRecHits(), main(), CaloTowersCreationAlgo::makeHcalDropChMap(), EgammaHLTHcalIsolation::passCleaning_(), HcalSimpleReconstructor::process(), HcalSimpleReconstructor::processUpgrade(), ZdcSimpleReconstructor::produce(), ZdcHitReconstructor::produce(), cms::HitReCalibrator::produce(), HcalHitReconstructor::produce(), HcalShapes::shape(), HcalPulseShapes::shape(), HcalPulseShapes::shapeForReco(), PFRecHitQTestHCALChannel::test(), HcaluLUTTPGCoder::update(), ObjectValidator::validHit(), and HcalMonitorClient::writeChannelStatus().

130 {
131  unsigned int index=indexFor(fId);
132 
133  const Item* cell = NULL;
134 
135  if (index<0xFFFFFFFu) {
136  if (fId.det()==DetId::Hcal) {
137  switch (HcalSubdetector(fId.subdetId())) {
138  case(HcalBarrel) : if (index < HBcontainer.size()) cell = &(HBcontainer.at(index) ); break;
139  case(HcalEndcap) : if (index < HEcontainer.size()) cell = &(HEcontainer.at(index) ); break;
140  case(HcalForward) : if (index < HFcontainer.size()) cell = &(HFcontainer.at(index) ); break;
141  case(HcalOuter) : if (index < HOcontainer.size()) cell = &(HOcontainer.at(index) ); break;
142  case(HcalTriggerTower) : if (index < HTcontainer.size()) cell = &(HTcontainer.at(index) ); break;
143  case(HcalOther) : if (extractOther(fId)==HcalCalibration)
144  if (index < CALIBcontainer.size()) cell = &(CALIBcontainer.at(index) );
145  break;
146  default: break;
147  }
148  } else if (fId.det()==DetId::Calo) {
150  if (index < CASTORcontainer.size()) cell = &(CASTORcontainer.at(index) );
151  } else if (fId.subdetId()==HcalZDCDetId::SubdetectorId) {
152  if (index < ZDCcontainer.size()) cell = &(ZDCcontainer.at(index) );
153  }
154  }
155  }
156 
157  // Item emptyItem;
158  // if (cell->rawId() == emptyItem.rawId() )
159  if ((!cell)) {
160  if (throwOnFail) {
161  throw cms::Exception ("Conditions not found")
162  << "Unavailable Conditions of type " << myname() << " for cell " << textForId(fId);
163  }
164  } else if (cell->rawId() != fId) {
165  if (throwOnFail) {
166  throw cms::Exception ("Conditions mismatch")
167  << "Requested conditions of type " << myname() << " for cell " << textForId(fId) << " got conditions for cell " << textForId(DetId(cell->rawId()));
168  }
169  cell=0;
170  }
171 
172  return cell;
173 }
unsigned int indexFor(DetId) const
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
#define NULL
Definition: scimark2.h:8
std::vector< Item > CASTORcontainer
HcalOtherSubdetector extractOther(const DetId &id) const
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< Item > ZDCcontainer
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
static const int SubdetectorId
Definition: DetId.h:18
static const int SubdetectorId
Definition: HcalZDCDetId.h:20
virtual std::string myname() const
std::string textForId(const DetId &id) const
std::vector< Item > HTcontainer
std::vector< Item > HOcontainer
std::vector< Item > CALIBcontainer
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
std::vector< Item > HFcontainer
template<class Item >
void HcalCondObjectContainer< Item >::initContainer ( DetId  container)
private

Definition at line 102 of file HcalCondObjectContainer.h.

References DetId::Calo, DetId::det(), DetId::Hcal, HcalBarrel, HcalCalibration, HcalEndcap, HcalForward, HcalOther, HcalOuter, HcalTriggerTower, i, HcalZDCDetId::SubdetectorId, HcalCastorDetId::SubdetectorId, and DetId::subdetId().

103 {
104  Item emptyItem;
105 
106  if (fId.det()==DetId::Hcal) {
107  switch (HcalSubdetector(fId.subdetId())) {
108  case(HcalBarrel) : for (unsigned int i=0; i<sizeFor(fId); i++) HBcontainer.push_back(emptyItem); break;
109  case(HcalEndcap) : for (unsigned int i=0; i<sizeFor(fId); i++) HEcontainer.push_back(emptyItem); break;
110  case(HcalOuter) : for (unsigned int i=0; i<sizeFor(fId); i++) HOcontainer.push_back(emptyItem); break;
111  case(HcalForward) : for (unsigned int i=0; i<sizeFor(fId); i++) HFcontainer.push_back(emptyItem); break;
112  case(HcalTriggerTower) : for (unsigned int i=0; i<sizeFor(fId); i++) HTcontainer.push_back(emptyItem); break;
113  case(HcalOther) : if (extractOther(fId)==HcalCalibration)
114  for (unsigned int i=0; i<sizeFor(fId); i++) CALIBcontainer.push_back(emptyItem); break;
115  break;
116  default: break;
117  }
118  } else if (fId.det()==DetId::Calo) {
119  if (fId.subdetId()==HcalCastorDetId::SubdetectorId) {
120  for (unsigned int i=0; i<sizeFor(fId); i++) CASTORcontainer.push_back(emptyItem);
121  } else if (fId.subdetId()==HcalZDCDetId::SubdetectorId) {
122  for (unsigned int i=0; i<sizeFor(fId); i++) ZDCcontainer.push_back(emptyItem);
123  }
124  }
125 }
int i
Definition: DBlmapReader.cc:9
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
std::vector< Item > CASTORcontainer
HcalOtherSubdetector extractOther(const DetId &id) const
unsigned int sizeFor(DetId) const
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< Item > ZDCcontainer
static const int SubdetectorId
static const int SubdetectorId
Definition: HcalZDCDetId.h:20
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
template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::CASTORcontainer
private
template<class Item>
HcalCondObjectContainer< Item >::COND_SERIALIZABLE
private

Definition at line 92 of file HcalCondObjectContainer.h.

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HBcontainer
private
template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HEcontainer
private
template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HFcontainer
private
template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HOcontainer
private
template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HTcontainer
private
template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::ZDCcontainer
private