CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
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 Item * getValues (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 HcalTopologytopo () const
 

Private Member Functions

void initContainer (DetId container)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

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
 

Friends

class boost::serialization::access
 
template<typename CondSerializationT , typename Enabled >
struct cond::serialization::access
 

Additional Inherited Members

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

Detailed Description

template<class Item>
class HcalCondObjectContainer< Item >

Definition at line 44 of file HcalCondObjectContainer.h.

Member Typedef Documentation

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

Definition at line 68 of file HcalCondObjectContainer.h.

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

Definition at line 67 of file HcalCondObjectContainer.h.

Constructor & Destructor Documentation

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

Definition at line 47 of file HcalCondObjectContainer.h.

HcalCondObjectContainerBase(HcalCondObjectContainerBase const &o)
template<class Item >
HcalCondObjectContainer< Item >::~HcalCondObjectContainer ( )
virtual

Definition at line 101 of file HcalCondObjectContainer.h.

102 {
103 }

Member Function Documentation

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

Definition at line 211 of file HcalCondObjectContainer.h.

References DetId::Calo, Exception, HcalCondObjectContainerBase::extractOther(), DetId::Hcal, HcalBarrel, HcalCalibration, HcalEndcap, HcalForward, HcalOther, HcalOuter, HcalTriggerTower, diffTreeTool::index, HcalCondObjectContainerBase::indexFor(), HcalZDCDetId::SubdetectorId, HcalCastorDetId::SubdetectorId, summarizeEdmComparisonLogfiles::success, and HcalCondObjectContainerBase::textForId().

Referenced by corrResps::analyze(), scaleGains::analyze(), corrGains::analyze(), modGains::analyze(), HcalPedestalsCheck::analyze(), HcalPedestalWidthsCheck::analyze(), HcalGainsCheck::analyze(), HcalDbASCIIIO::createObject< HcalDcsMap >(), HcalDbASCIIIO::createObject< HcalElectronicsMap >(), HcalDbASCIIIO::createObject< HcalFrontEndMap >(), HcalDbASCIIIO::createObject< HcalSiPMCharacteristics >(), dumpHcalMatrixObject(), HcalPedestalAnalysis::GetPedConst(), and HcalPedestalAnalysis::HcalPedVal().

211  {
212  bool success = false;
213  DetId fId(myItem.rawId());
214  unsigned int index=indexFor(fId);
215 
216  Item* cell = nullptr;
217 
218  if (index<0xFFFFFFFu) {
219  if (fId.det()==DetId::Hcal) {
220  switch (HcalSubdetector(fId.subdetId())) {
221  case HcalBarrel:
222  if (HBcontainer.empty() ) initContainer(fId);
223  if (index < HBcontainer.size()) cell = &(HBcontainer.at(index) );
224  break;
225  case HcalEndcap:
226  if (HEcontainer.empty() ) initContainer(fId);
227  if (index < HEcontainer.size()) cell = &(HEcontainer.at(index) );
228  break;
229  case HcalForward:
230  if (HFcontainer.empty() ) initContainer(fId);
231  if (index < HFcontainer.size()) cell = &(HFcontainer.at(index) );
232  break;
233  case HcalOuter:
234  if (HOcontainer.empty() ) initContainer(fId);
235  if (index < HOcontainer.size()) cell = &(HOcontainer.at(index) );
236  break;
237  case HcalTriggerTower:
238  if (HTcontainer.empty() ) initContainer(fId);
239  if (index < HTcontainer.size()) cell = &(HTcontainer.at(index) );
240  break;
241  case HcalOther:
242  if (extractOther(fId)==HcalCalibration) {
243  if (CALIBcontainer.empty() ) initContainer(fId);
244  if (index < CALIBcontainer.size()) cell = &(CALIBcontainer.at(index) );
245  }
246  break;
247  default:
248  break;
249  }
250  } else if (fId.det()==DetId::Calo) {
251  if (fId.subdetId()==HcalCastorDetId::SubdetectorId) {
252  if (CASTORcontainer.empty() ) initContainer(fId);
253  if (index < CASTORcontainer.size()) cell = &(CASTORcontainer.at(index) );
254  } else if (fId.subdetId()==HcalZDCDetId::SubdetectorId) {
255  if (ZDCcontainer.empty() ) initContainer(fId);
256  if (index < ZDCcontainer.size()) cell = &(ZDCcontainer.at(index) );
257  }
258  }
259  }
260 
261  if (cell!=nullptr) {
262  (*cell)=myItem;
263  success=true;
264  }
265 
266  if (!success)
267  throw cms::Exception ("Filling of conditions failed")
268  << " no valid filling possible for Conditions of type " << myname() << " for DetId " << textForId(fId);
269  return success;
270 }
unsigned int indexFor(DetId) const
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
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:25
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 200 of file HcalCondObjectContainer.h.

References hcalEqualDetId().

Referenced by corrResps::analyze(), corrGains::analyze(), modGains::analyze(), and cms::HitReCalibrator::produce().

200  {
201  const Item* cell = getValues(fId,false);
202 
203  if (cell) {
204  if (hcalEqualDetId(cell,fId))
205  return true;
206  }
207  return false;
208 }
bool hcalEqualDetId(Item *cell, const DetId &fId)
const Item * getValues(DetId fId, bool throwOnFail=true) const
template<class Item >
std::vector< DetId > HcalCondObjectContainer< Item >::getAllChannels ( ) const

Definition at line 273 of file HcalCondObjectContainer.h.

References mps_fire::i.

Referenced by corrResps::analyze(), scaleGains::analyze(), corrGains::analyze(), HcalQIEDataCheck::analyze(), HcalAutoPedestalValidator::analyze(), WriteL1TriggerObjectsTxt::analyze(), HcalPedestalsCheck::analyze(), HcalPedestalWidthsCheck::analyze(), HcalGainsCheck::analyze(), hcaldqm::DQHarvester::beginRun(), hcaldqm::DQClient::beginRun(), hcaldqm::DQTask::bookHistograms(), HcalDbService::buildCalibrations(), HcalDbService::buildCalibWidths(), HcalDbASCIIIO::createObject< HcalDcsMap >(), HcalDbASCIIIO::createObject< HcalElectronicsMap >(), HcalDbASCIIIO::createObject< HcalFrontEndMap >(), HcalDbASCIIIO::createObject< HcalSiPMCharacteristics >(), dumpHcalMatrixObject(), HcalDbXml::dumpObject(), HcalPedestalAnalysis::HcalPedVal(), CaloTPGTranscoderULUT::loadHCALCompress(), CaloTowersCreationAlgo::makeHcalDropChMap(), CaloTPGTranscoderULUT::setup(), and HcaluLUTTPGCoder::update().

273  {
274  std::vector<DetId> channels;
275  Item emptyItem;
276  for (unsigned int i=0; i<HBcontainer.size(); i++) {
277  if (emptyItem.rawId() != HBcontainer.at(i).rawId() )
278  channels.push_back( DetId(HBcontainer.at(i).rawId()) );
279  }
280  for (unsigned int i=0; i<HEcontainer.size(); i++) {
281  if (emptyItem.rawId() != HEcontainer.at(i).rawId() )
282  channels.push_back( DetId(HEcontainer.at(i).rawId()) );
283  }
284  for (unsigned int i=0; i<HOcontainer.size(); i++) {
285  if (emptyItem.rawId() != HOcontainer.at(i).rawId() )
286  channels.push_back( DetId(HOcontainer.at(i).rawId()) );
287  }
288  for (unsigned int i=0; i<HFcontainer.size(); i++) {
289  if (emptyItem.rawId() != HFcontainer.at(i).rawId() )
290  channels.push_back( DetId(HFcontainer.at(i).rawId()) );
291  }
292  for (unsigned int i=0; i<HTcontainer.size(); i++) {
293  if (emptyItem.rawId() != HTcontainer.at(i).rawId() )
294  channels.push_back( DetId(HTcontainer.at(i).rawId()) );
295  }
296  for (unsigned int i=0; i<ZDCcontainer.size(); i++) {
297  if (emptyItem.rawId() != ZDCcontainer.at(i).rawId() )
298  channels.push_back( DetId(ZDCcontainer.at(i).rawId()) );
299  }
300  for (unsigned int i=0; i<CALIBcontainer.size(); i++) {
301  if (emptyItem.rawId() != CALIBcontainer.at(i).rawId() )
302  channels.push_back( DetId(CALIBcontainer.at(i).rawId()) );
303  }
304  for (unsigned int i=0; i<CASTORcontainer.size(); i++) {
305  if (emptyItem.rawId() != CASTORcontainer.at(i).rawId() )
306  channels.push_back( DetId(CASTORcontainer.at(i).rawId()) );
307  }
308 
309  return channels;
310 }
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 70 of file HcalCondObjectContainer.h.

70  {
71  tAllContWithNames allContainers;
72  allContainers.push_back(tHcalCont("HB",HBcontainer));
73  allContainers.push_back(tHcalCont("HE",HEcontainer));
74  allContainers.push_back(tHcalCont("HO",HOcontainer));
75  allContainers.push_back(tHcalCont("HF",HFcontainer));
76  allContainers.push_back(tHcalCont("HT",HTcontainer));
77  allContainers.push_back(tHcalCont("ZDC",ZDCcontainer));
78  allContainers.push_back(tHcalCont("CALIB",CALIBcontainer));
79  allContainers.push_back(tHcalCont("CASTOR",CASTORcontainer));
80  return allContainers;
81  }
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 145 of file HcalCondObjectContainer.h.

References DetId::Calo, DetId::det(), Exception, HcalCondObjectContainerBase::extractOther(), DetId::Hcal, HcalBarrel, HcalCalibration, HcalEndcap, hcalEqualDetId(), HcalForward, HcalOther, HcalOuter, HcalTriggerTower, diffTreeTool::index, HcalCondObjectContainerBase::indexFor(), HcalZDCDetId::SubdetectorId, HcalCastorDetId::SubdetectorId, DetId::subdetId(), and HcalCondObjectContainerBase::textForId().

Referenced by corrResps::analyze(), scaleGains::analyze(), corrGains::analyze(), modGains::analyze(), HcalAutoPedestalValidator::analyze(), HcalPedestalsCheck::analyze(), HcalPedestalWidthsCheck::analyze(), HcalGainsCheck::analyze(), cms::Analyzer_minbias::analyze(), AnalyzerMinbias::analyzeHcal(), hcaldqm::DQHarvester::beginRun(), hcaldqm::DQClient::beginRun(), HcalHBHEMuonAnalyzer::beginRun(), hcaldqm::DQTask::bookHistograms(), HcalDbASCIIIO::createObject< HcalDcsMap >(), HcalDbASCIIIO::createObject< HcalElectronicsMap >(), HcalDbASCIIIO::createObject< HcalFrontEndMap >(), HcalDbASCIIIO::createObject< HcalSiPMCharacteristics >(), dumpHcalMatrixObject(), HcalDbXml::dumpObject(), reco::HcalNoiseInfoProducer::filldigis(), AlCaHOCalibProducer::fillHOStore(), reco::HcalNoiseInfoProducer::fillrechits(), HcalDbService::getGain(), HcalDbService::getGainWidth(), HcalDbService::getHcalChannelStatus(), HcalDbService::getHcalL1TriggerObject(), HcalDbService::getHcalLUTCorr(), HcalDbService::getHcalMCParam(), HcalDbService::getHcalPFCorr(), HcalDbService::getHcalQIEType(), HcalDbService::getHcalRespCorr(), HcalDbService::getHcalShape(), HcalDbService::getHcalSiPMParameter(), HcalDbService::getHcalTimeCorr(), HcalDbService::getHcalTPChannelParameter(), HcalDbService::getHcalZSThreshold(), HcalDbService::getPedestal(), HcalDbService::getPedestalWidth(), CaloTowersCreationAlgo::hcalChanStatusForCaloTower(), HcalPedestalAnalysis::HcalPedVal(), HcalRecHitsAnalyzer::hcalSevLvl(), HcalHF_PETalgorithm::HFSetFlagFromPET(), HcalHFStatusBitFromRecHits::hfSetFlagFromRecHits(), HcalHF_S9S1algorithm::HFSetFlagFromS9S1(), MuonHOAcceptance::initIds(), CaloTPGTranscoderULUT::loadHCALCompress(), CaloTowersCreationAlgo::makeHcalDropChMap(), EgammaHLTHcalIsolation::passCleaning_(), HcalSimpleReconstructor::process(), HBHEPhase1Reconstructor::processData(), ZdcSimpleReconstructor::produce(), ZdcHitReconstructor::produce(), cms::HitReCalibrator::produce(), pat::PATIsolatedTrackProducer::produce(), HcalHitReconstructor::produce(), HFPhase1Reconstructor::produce(), HcalHBHEMuonAnalyzer::respCorr(), HcalShapes::shape(), HcalPulseShapes::shape(), HcalPulseShapes::shapeForReco(), HcalHitSelection::skim(), PFRecHitQTestHCALChannel::test(), HcaluLUTTPGCoder::update(), and ObjectValidator::validHit().

145  {
146  unsigned int index=indexFor(fId);
147 
148  const Item* cell = nullptr;
149 
150  if (index<0xFFFFFFFu) {
151  if (fId.det()==DetId::Hcal) {
152  switch (HcalSubdetector(fId.subdetId())) {
153  case HcalBarrel:
154  if (index < HBcontainer.size()) cell = &(HBcontainer.at(index));
155  break;
156  case HcalEndcap:
157  if (index < HEcontainer.size()) cell = &(HEcontainer.at(index));
158  break;
159  case HcalForward:
160  if (index < HFcontainer.size()) cell = &(HFcontainer.at(index));
161  break;
162  case HcalOuter:
163  if (index < HOcontainer.size()) cell = &(HOcontainer.at(index));
164  break;
165  case HcalTriggerTower:
166  if (index < HTcontainer.size()) cell = &(HTcontainer.at(index));
167  break;
168  case HcalOther:
169  if (extractOther(fId) == HcalCalibration && index < CALIBcontainer.size()) cell = &(CALIBcontainer.at(index));
170  break;
171  default:
172  break;
173  }
174  } else if (fId.det()==DetId::Calo) {
176  if (index < CASTORcontainer.size()) cell = &(CASTORcontainer.at(index) );
177  } else if (fId.subdetId()==HcalZDCDetId::SubdetectorId) {
178  if (index < ZDCcontainer.size()) cell = &(ZDCcontainer.at(index) );
179  }
180  }
181  }
182 
183  if ((!cell)) {
184  if (throwOnFail) {
185  throw cms::Exception ("Conditions not found")
186  << "Unavailable Conditions of type " << myname() << " for cell " << textForId(fId);
187  }
188  } else if (!hcalEqualDetId(cell,fId)) {
189  if (throwOnFail) {
190  throw cms::Exception ("Conditions mismatch")
191  << "Requested conditions of type " << myname() << " for cell " << textForId(fId) << " got conditions for cell " << textForId(DetId(cell->rawId()));
192  }
193  cell=nullptr;
194  }
195 
196  return cell;
197 }
bool hcalEqualDetId(Item *cell, const DetId &fId)
unsigned int indexFor(DetId) const
std::vector< Item > HEcontainer
std::vector< Item > HBcontainer
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:25
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 106 of file HcalCondObjectContainer.h.

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

106  {
107  Item emptyItem;
108 
109  if (fId.det()==DetId::Hcal) {
110  switch (HcalSubdetector(fId.subdetId())) {
111  case HcalBarrel:
112  for (unsigned int i = 0; i < sizeFor(fId); i++) HBcontainer.push_back(emptyItem);
113  break;
114  case HcalEndcap:
115  for (unsigned int i = 0; i < sizeFor(fId); i++) HEcontainer.push_back(emptyItem);
116  break;
117  case HcalOuter:
118  for (unsigned int i = 0; i < sizeFor(fId); i++) HOcontainer.push_back(emptyItem);
119  break;
120  case HcalForward:
121  for (unsigned int i = 0; i < sizeFor(fId); i++) HFcontainer.push_back(emptyItem);
122  break;
123  case HcalTriggerTower:
124  for (unsigned int i = 0; i < sizeFor(fId); i++) HTcontainer.push_back(emptyItem);
125  break;
126  case HcalOther:
127  if (extractOther(fId) == HcalCalibration) {
128  for (unsigned int i = 0; i < sizeFor(fId); i++) CALIBcontainer.push_back(emptyItem);
129  }
130  break;
131  default:
132  break;
133  }
134  } else if (fId.det()==DetId::Calo) {
135  if (fId.subdetId()==HcalCastorDetId::SubdetectorId) {
136  for (unsigned int i=0; i<sizeFor(fId); i++) CASTORcontainer.push_back(emptyItem);
137  } else if (fId.subdetId()==HcalZDCDetId::SubdetectorId) {
138  for (unsigned int i=0; i<sizeFor(fId); i++) ZDCcontainer.push_back(emptyItem);
139  }
140  }
141 }
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:25
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
template<class Item>
template<class Archive >
void HcalCondObjectContainer< Item >::serialize ( Archive &  ar,
const unsigned int  version 
)
private

Friends And Related Function Documentation

template<class Item>
friend class boost::serialization::access
friend

Definition at line 96 of file HcalCondObjectContainer.h.

template<class Item>
template<typename CondSerializationT , typename Enabled >
friend struct cond::serialization::access
friend

Definition at line 96 of file HcalCondObjectContainer.h.

Member Data Documentation

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

Definition at line 92 of file HcalCondObjectContainer.h.

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

Definition at line 93 of file HcalCondObjectContainer.h.

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

Definition at line 86 of file HcalCondObjectContainer.h.

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

Definition at line 87 of file HcalCondObjectContainer.h.

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

Definition at line 89 of file HcalCondObjectContainer.h.

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

Definition at line 88 of file HcalCondObjectContainer.h.

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

Definition at line 90 of file HcalCondObjectContainer.h.

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

Definition at line 91 of file HcalCondObjectContainer.h.