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
HcalDbService Class Reference

#include <HcalDbService.h>

Public Member Functions

const HcalGaingetGain (const HcalGenericDetId &fId) const
 
const HcalGainWidthgetGainWidth (const HcalGenericDetId &fId) const
 
const HcalCalibrationsgetHcalCalibrations (const HcalGenericDetId &fId) const
 
const HcalCalibrationWidthsgetHcalCalibrationWidths (const HcalGenericDetId &fId) const
 
const HcalChannelStatusgetHcalChannelStatus (const HcalGenericDetId &fId) const
 
const HcalQIECodergetHcalCoder (const HcalGenericDetId &fId) const
 
const HcalL1TriggerObjectgetHcalL1TriggerObject (const HcalGenericDetId &fId) const
 
const HcalLUTCorrgetHcalLUTCorr (const HcalGenericDetId &fId) const
 
const HcalLutMetadatagetHcalLutMetadata () const
 
const HcalElectronicsMapgetHcalMapping () const
 
const HcalPFCorrgetHcalPFCorr (const HcalGenericDetId &fId) const
 
const HcalRespCorrgetHcalRespCorr (const HcalGenericDetId &fId) const
 
const HcalQIEShapegetHcalShape (const HcalGenericDetId &fId) const
 
const HcalQIEShapegetHcalShape (const HcalQIECoder *coder) const
 
const HcalTimeCorrgetHcalTimeCorr (const HcalGenericDetId &fId) const
 
const HcalZSThresholdgetHcalZSThreshold (const HcalGenericDetId &fId) const
 
const HcalPedestalgetPedestal (const HcalGenericDetId &fId) const
 
const HcalPedestalWidthgetPedestalWidth (const HcalGenericDetId &fId) const
 
const HcalTopologygetTopologyUsed () const
 
 HcalDbService (const edm::ParameterSet &)
 
void setData (const HcalPedestals *fItem)
 
void setData (const HcalPedestalWidths *fItem)
 
void setData (const HcalGains *fItem)
 
void setData (const HcalGainWidths *fItem)
 
void setData (const HcalQIEData *fItem)
 
void setData (const HcalChannelQuality *fItem)
 
void setData (const HcalElectronicsMap *fItem)
 
void setData (const HcalRespCorrs *fItem)
 
void setData (const HcalTimeCorrs *fItem)
 
void setData (const HcalZSThresholds *fItem)
 
void setData (const HcalL1TriggerObjects *fItem)
 
void setData (const HcalLUTCorrs *fItem)
 
void setData (const HcalPFCorrs *fItem)
 
void setData (const HcalLutMetadata *fItem)
 

Private Member Functions

void buildCalibrations () const
 
void buildCalibWidths () const
 
bool makeHcalCalibration (const HcalGenericDetId &fId, HcalCalibrations *fObject, bool pedestalInADC) const
 
bool makeHcalCalibrationWidth (const HcalGenericDetId &fId, HcalCalibrationWidths *fObject, bool pedestalInADC) const
 

Private Attributes

std::atomic
< HcalCalibrationsSet * > 
mCalibSet
 
std::atomic
< HcalCalibrationWidthsSet * > 
mCalibWidthSet
 
const HcalChannelQualitymChannelQuality
 
const HcalElectronicsMapmElectronicsMap
 
const HcalGainsmGains
 
const HcalGainWidthsmGainWidths
 
const HcalL1TriggerObjectsmL1TriggerObjects
 
const HcalLUTCorrsmLUTCorrs
 
const HcalLutMetadatamLutMetadata
 
const HcalPedestalsmPedestals
 
const HcalPedestalWidthsmPedestalWidths
 
const HcalPFCorrsmPFCorrs
 
const HcalQIEDatamQIEData
 
const HcalRespCorrsmRespCorrs
 
const HcalTimeCorrsmTimeCorrs
 
const HcalZSThresholdsmZSThresholds
 

Detailed Description

Definition at line 29 of file HcalDbService.h.

Constructor & Destructor Documentation

HcalDbService::HcalDbService ( const edm::ParameterSet cfg)

Definition at line 16 of file HcalDbService.cc.

16  :
17  mPedestals (0), mPedestalWidths (0),
18  mGains (0), mGainWidths (0),
19  mQIEData(0),
20  mElectronicsMap(0),
21  mRespCorrs(0),
23  mTimeCorrs(0),
24  mLUTCorrs(0),
25  mPFCorrs(0),
26  mLutMetadata(0),
27  mCalibSet(nullptr), mCalibWidthSet(nullptr)
28  {}
const HcalLUTCorrs * mLUTCorrs
Definition: HcalDbService.h:88
const HcalL1TriggerObjects * mL1TriggerObjects
Definition: HcalDbService.h:86
const HcalPFCorrs * mPFCorrs
Definition: HcalDbService.h:89
const HcalGains * mGains
Definition: HcalDbService.h:79
const HcalLutMetadata * mLutMetadata
Definition: HcalDbService.h:90
const HcalPedestalWidths * mPedestalWidths
Definition: HcalDbService.h:78
const HcalRespCorrs * mRespCorrs
Definition: HcalDbService.h:84
const HcalElectronicsMap * mElectronicsMap
Definition: HcalDbService.h:83
const HcalGainWidths * mGainWidths
Definition: HcalDbService.h:80
const HcalTimeCorrs * mTimeCorrs
Definition: HcalDbService.h:87
const HcalQIEData * mQIEData
Definition: HcalDbService.h:81
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
std::atomic< HcalCalibrationWidthsSet * > mCalibWidthSet
Definition: HcalDbService.h:93

Member Function Documentation

void HcalDbService::buildCalibrations ( ) const
private

Definition at line 52 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getAllChannels(), HcalPedestals::isADC(), makeHcalCalibration(), mCalibSet, mGains, mLUTCorrs, mPedestals, mQIEData, mRespCorrs, mTimeCorrs, and convertSQLiteXML::ok.

Referenced by getHcalCalibrations().

52  {
53  // we use the set of ids for pedestals as the master list
54  if ((!mPedestals) || (!mGains) || (!mQIEData) || (!mRespCorrs) || (!mTimeCorrs) || (!mLUTCorrs) ) return;
55 
56  if (!mCalibSet.load(std::memory_order_acquire)) {
57 
58  auto ptr = new HcalCalibrationsSet();
59 
60  std::vector<DetId> ids=mPedestals->getAllChannels();
61  bool pedsInADC = mPedestals->isADC();
62  // loop!
63  HcalCalibrations tool;
64 
65  // std::cout << " length of id-vector: " << ids.size() << std::endl;
66  for (std::vector<DetId>::const_iterator id=ids.begin(); id!=ids.end(); ++id) {
67  // make
68  bool ok=makeHcalCalibration(*id,&tool,pedsInADC);
69  // store
70  if (ok) ptr->setCalibrations(*id,tool);
71  // std::cout << "Hcal calibrations built... detid no. " << HcalGenericDetId(*id) << std::endl;
72  }
73  ptr->sort();
74 
75  HcalCalibrationsSet* expect = nullptr;
76  bool exchanged = mCalibSet.compare_exchange_strong(expect, ptr, std::memory_order_acq_rel);
77  if(!exchanged) {
78  delete ptr;
79  }
80  }
81 }
const HcalLUTCorrs * mLUTCorrs
Definition: HcalDbService.h:88
bool isADC() const
Definition: HcalPedestals.h:28
const HcalGains * mGains
Definition: HcalDbService.h:79
std::vector< DetId > getAllChannels() const
bool makeHcalCalibration(const HcalGenericDetId &fId, HcalCalibrations *fObject, bool pedestalInADC) const
const HcalRespCorrs * mRespCorrs
Definition: HcalDbService.h:84
const HcalTimeCorrs * mTimeCorrs
Definition: HcalDbService.h:87
const HcalQIEData * mQIEData
Definition: HcalDbService.h:81
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
void HcalDbService::buildCalibWidths ( ) const
private

Definition at line 83 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getAllChannels(), HcalPedestalWidths::isADC(), makeHcalCalibrationWidth(), mCalibWidthSet, mGainWidths, mPedestalWidths, mQIEData, and convertSQLiteXML::ok.

Referenced by getHcalCalibrationWidths().

83  {
84  // we use the set of ids for pedestal widths as the master list
85  if ((!mPedestalWidths) || (!mGainWidths) || (!mQIEData) ) return;
86 
87  if (!mCalibWidthSet.load(std::memory_order_acquire)) {
88 
89  auto ptr = new HcalCalibrationWidthsSet();
90 
91  const std::vector<DetId>& ids=mPedestalWidths->getAllChannels();
92  bool pedsInADC = mPedestalWidths->isADC();
93  // loop!
95 
96  // std::cout << " length of id-vector: " << ids.size() << std::endl;
97  for (std::vector<DetId>::const_iterator id=ids.begin(); id!=ids.end(); ++id) {
98  // make
99  bool ok=makeHcalCalibrationWidth(*id,&tool,pedsInADC);
100  // store
101  if (ok) ptr->setCalibrationWidths(*id,tool);
102  // std::cout << "Hcal calibrations built... detid no. " << HcalGenericDetId(*id) << std::endl;
103  }
104  ptr->sort();
105 
106  HcalCalibrationWidthsSet* expect = nullptr;
107  bool exchanged = mCalibWidthSet.compare_exchange_strong(expect, ptr, std::memory_order_acq_rel);
108  if(!exchanged) {
109  delete ptr;
110  }
111  }
112 }
std::vector< DetId > getAllChannels() const
bool makeHcalCalibrationWidth(const HcalGenericDetId &fId, HcalCalibrationWidths *fObject, bool pedestalInADC) const
const HcalPedestalWidths * mPedestalWidths
Definition: HcalDbService.h:78
const HcalGainWidths * mGainWidths
Definition: HcalDbService.h:80
const HcalQIEData * mQIEData
Definition: HcalDbService.h:81
std::atomic< HcalCalibrationWidthsSet * > mCalibWidthSet
Definition: HcalDbService.h:93
const HcalGain * HcalDbService::getGain ( const HcalGenericDetId fId) const

Definition at line 204 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mGains.

Referenced by HFSimParameters::fCtoGeV(), HcalSimParameters::fCtoGeV(), HPDIonFeedbackSim::fCtoGeV(), HcalRecHitsMaker::init(), and makeHcalCalibration().

204  {
205  if (mGains) {
206  return mGains->getValues(fId);
207  }
208  return 0;
209 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalGains * mGains
Definition: HcalDbService.h:79
const HcalGainWidth * HcalDbService::getGainWidth ( const HcalGenericDetId fId) const

Definition at line 211 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mGainWidths.

Referenced by HFSimParameters::fCtoGeV(), HcalSimParameters::fCtoGeV(), HPDIonFeedbackSim::fCtoGeV(), and makeHcalCalibrationWidth().

211  {
212  if (mGainWidths) {
213  return mGainWidths->getValues (fId);
214  }
215  return 0;
216 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalGainWidths * mGainWidths
Definition: HcalDbService.h:80
const HcalCalibrations & HcalDbService::getHcalCalibrations ( const HcalGenericDetId fId) const

Definition at line 40 of file HcalDbService.cc.

References buildCalibrations(), readCalibrations2004_v2_cff::getCalibrations, and mCalibSet.

Referenced by HcalAmplifier::addPedestals(), HcalTDC::getThreshold(), HcalMonitorClient::PlotPedestalValues(), and HcaluLUTTPGCoder::update().

41 {
43  return (*mCalibSet.load(std::memory_order_acquire)).getCalibrations(fId);
44 }
void buildCalibrations() const
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
const HcalCalibrationWidths & HcalDbService::getHcalCalibrationWidths ( const HcalGenericDetId fId) const

Definition at line 46 of file HcalDbService.cc.

References buildCalibWidths(), and mCalibWidthSet.

Referenced by HcalAmplifier::addPedestals(), and HcalTDC::getThreshold().

47 {
49  return (*mCalibWidthSet.load(std::memory_order_acquire)).getCalibrationWidths(fId);
50 }
void buildCalibWidths() const
std::atomic< HcalCalibrationWidthsSet * > mCalibWidthSet
Definition: HcalDbService.h:93
const HcalChannelStatus * HcalDbService::getHcalChannelStatus ( const HcalGenericDetId fId) const

Definition at line 249 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mChannelQuality.

Referenced by HcaluLUTTPGCoder::update().

250 {
251  return mChannelQuality->getValues (fId);
252 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalChannelQuality * mChannelQuality
Definition: HcalDbService.h:82
const HcalQIECoder * HcalDbService::getHcalCoder ( const HcalGenericDetId fId) const
const HcalL1TriggerObject * HcalDbService::getHcalL1TriggerObject ( const HcalGenericDetId fId) const

Definition at line 244 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mL1TriggerObjects.

Referenced by HcaluLUTTPGCoder::update().

245 {
246  return mL1TriggerObjects->getValues (fId);
247 }
const HcalL1TriggerObjects * mL1TriggerObjects
Definition: HcalDbService.h:86
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalLUTCorr * HcalDbService::getHcalLUTCorr ( const HcalGenericDetId fId) const

Definition at line 266 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mLUTCorrs.

Referenced by makeHcalCalibration().

266  {
267  if (mLUTCorrs) {
268  return mLUTCorrs->getValues (fId);
269  }
270  return 0;
271 }
const HcalLUTCorrs * mLUTCorrs
Definition: HcalDbService.h:88
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalLutMetadata * HcalDbService::getHcalLutMetadata ( ) const

Definition at line 280 of file HcalDbService.cc.

References mLutMetadata.

Referenced by HcaluLUTTPGCoder::update().

280  {
281  return mLutMetadata;
282 }
const HcalLutMetadata * mLutMetadata
Definition: HcalDbService.h:90
const HcalElectronicsMap * HcalDbService::getHcalMapping ( ) const

Definition at line 240 of file HcalDbService.cc.

References mElectronicsMap.

240  {
241  return mElectronicsMap;
242 }
const HcalElectronicsMap * mElectronicsMap
Definition: HcalDbService.h:83
const HcalPFCorr * HcalDbService::getHcalPFCorr ( const HcalGenericDetId fId) const

Definition at line 273 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mPFCorrs.

273  {
274  if (mPFCorrs) {
275  return mPFCorrs->getValues (fId);
276  }
277  return 0;
278 }
const HcalPFCorrs * mPFCorrs
Definition: HcalDbService.h:89
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalRespCorr * HcalDbService::getHcalRespCorr ( const HcalGenericDetId fId) const

Definition at line 183 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mRespCorrs.

Referenced by makeHcalCalibration().

183  {
184  if (mRespCorrs) {
185  return mRespCorrs->getValues (fId);
186  }
187  return 0;
188 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalRespCorrs * mRespCorrs
Definition: HcalDbService.h:84
const HcalQIEShape * HcalDbService::getHcalShape ( const HcalGenericDetId fId) const
const HcalQIEShape * HcalDbService::getHcalShape ( const HcalQIECoder coder) const

Definition at line 232 of file HcalDbService.cc.

References HcalQIEData::getShape(), and mQIEData.

232  {
233  if (mQIEData) {
234  return &mQIEData->getShape(coder);
235  }
236  return 0;
237 }
const HcalQIEShape & getShape(DetId fId) const
get basic shape
Definition: HcalQIEData.h:37
const HcalQIEData * mQIEData
Definition: HcalDbService.h:81
const HcalTimeCorr * HcalDbService::getHcalTimeCorr ( const HcalGenericDetId fId) const

Definition at line 259 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mTimeCorrs.

Referenced by makeHcalCalibration().

259  {
260  if (mTimeCorrs) {
261  return mTimeCorrs->getValues (fId);
262  }
263  return 0;
264 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalTimeCorrs * mTimeCorrs
Definition: HcalDbService.h:87
const HcalZSThreshold * HcalDbService::getHcalZSThreshold ( const HcalGenericDetId fId) const

Definition at line 254 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mZSThresholds.

Referenced by HcalZSAlgoRealistic::keepMe().

255 {
256  return mZSThresholds->getValues (fId);
257 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalZSThresholds * mZSThresholds
Definition: HcalDbService.h:85
const HcalPedestal * HcalDbService::getPedestal ( const HcalGenericDetId fId) const

Definition at line 190 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mPedestals.

Referenced by HcalRecHitsMaker::init(), ZSEnergy_impl::keepMe(), HcalLedAnalysis::LedHBHEHists(), HcalLedAnalysis::LedHFHists(), HcalLedAnalysis::LedHOHists(), and makeHcalCalibration().

190  {
191  if (mPedestals) {
192  return mPedestals->getValues (fId);
193  }
194  return 0;
195 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
const HcalPedestalWidth * HcalDbService::getPedestalWidth ( const HcalGenericDetId fId) const

Definition at line 197 of file HcalDbService.cc.

References HcalCondObjectContainer< Item >::getValues(), and mPedestalWidths.

Referenced by makeHcalCalibrationWidth(), and HcalMonitorClient::PlotPedestalValues().

197  {
198  if (mPedestalWidths) {
199  return mPedestalWidths->getValues (fId);
200  }
201  return 0;
202 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalPedestalWidths * mPedestalWidths
Definition: HcalDbService.h:78
const HcalTopology * HcalDbService::getTopologyUsed ( ) const

Definition at line 30 of file HcalDbService.cc.

References mGains, mL1TriggerObjects, mLutMetadata, mPedestals, mRespCorrs, and HcalCondObjectContainerBase::topo().

30  {
31  if (mPedestals && mPedestals->topo()) return mPedestals->topo();
32  if (mGains && mGains->topo()) return mGains->topo();
33  if (mRespCorrs && mRespCorrs->topo()) return mRespCorrs->topo();
35  if (mLutMetadata && mLutMetadata->topo()) return mLutMetadata->topo();
36  return 0;
37 }
const HcalL1TriggerObjects * mL1TriggerObjects
Definition: HcalDbService.h:86
const HcalGains * mGains
Definition: HcalDbService.h:79
const HcalLutMetadata * mLutMetadata
Definition: HcalDbService.h:90
const HcalRespCorrs * mRespCorrs
Definition: HcalDbService.h:84
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
const HcalTopology * topo() const
bool HcalDbService::makeHcalCalibration ( const HcalGenericDetId fId,
HcalCalibrations fObject,
bool  pedestalInADC 
) const
private

Definition at line 114 of file HcalDbService.cc.

References HcalQIECoder::charge(), getGain(), getHcalCoder(), getHcalLUTCorr(), getHcalRespCorr(), getHcalShape(), getHcalTimeCorr(), getPedestal(), HcalLUTCorr::getValue(), HcalRespCorr::getValue(), HcalTimeCorr::getValue(), HcalPedestal::getValues(), HcalGain::getValues(), i, EcalCondDBWriter_cfi::pedestal, and x.

Referenced by buildCalibrations().

114  {
115  if (fObject) {
116  const HcalPedestal* pedestal = getPedestal (fId);
117  const HcalGain* gain = getGain (fId);
118  const HcalRespCorr* respcorr = getHcalRespCorr (fId);
119  const HcalTimeCorr* timecorr = getHcalTimeCorr (fId);
120  const HcalLUTCorr* lutcorr = getHcalLUTCorr (fId);
121 
122  if (pedestalInADC) {
123  const HcalQIECoder* coder=getHcalCoder(fId);
124  const HcalQIEShape* shape=getHcalShape(coder);
125  if (pedestal && gain && shape && coder && respcorr && timecorr && lutcorr) {
126  float pedTrue[4];
127  for (int i=0; i<4; i++) {
128  float x=pedestal->getValues()[i];
129  int x1=(int)std::floor(x);
130  int x2=(int)std::floor(x+1);
131  // y = (y2-y1)/(x2-x1) * (x - x1) + y1 [note: x2-x1=1]
132  float y2=coder->charge(*shape,x2,i);
133  float y1=coder->charge(*shape,x1,i);
134  pedTrue[i]=(y2-y1)*(x-x1)+y1;
135  }
136  *fObject = HcalCalibrations (gain->getValues (), pedTrue, respcorr->getValue(), timecorr->getValue(), lutcorr->getValue() );
137  return true;
138  }
139  } else {
140  if (pedestal && gain && respcorr && timecorr && lutcorr) {
141  *fObject = HcalCalibrations (gain->getValues (), pedestal->getValues (), respcorr->getValue(), timecorr->getValue(), lutcorr->getValue() );
142  return true;
143  }
144  }
145  }
146  return false;
147 }
int i
Definition: DBlmapReader.cc:9
const HcalRespCorr * getHcalRespCorr(const HcalGenericDetId &fId) const
const HcalLUTCorr * getHcalLUTCorr(const HcalGenericDetId &fId) const
const HcalTimeCorr * getHcalTimeCorr(const HcalGenericDetId &fId) const
const float * getValues() const
get value for all capId = 0..3
Definition: HcalGain.h:20
float getValue() const
Definition: HcalLUTCorr.h:20
float getValue() const
Definition: HcalTimeCorr.h:20
const HcalGain * getGain(const HcalGenericDetId &fId) const
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
float getValue() const
Definition: HcalRespCorr.h:20
const float * getValues() const
get value for all capId = 0..3
Definition: HcalPedestal.h:19
Definition: DDAxes.h:10
const HcalPedestal * getPedestal(const HcalGenericDetId &fId) const
float charge(const HcalQIEShape &fShape, unsigned fAdc, unsigned fCapId) const
ADC [0..127] + capid [0..3] -&gt; fC conversion.
Definition: HcalQIECoder.cc:22
bool HcalDbService::makeHcalCalibrationWidth ( const HcalGenericDetId fId,
HcalCalibrationWidths fObject,
bool  pedestalInADC 
) const
private

Definition at line 149 of file HcalDbService.cc.

References HcalQIECoder::charge(), getGainWidth(), getHcalCoder(), getHcalShape(), getPedestalWidth(), HcalGainWidth::getValues(), HcalPedestalWidth::getWidth(), i, and x.

Referenced by buildCalibWidths().

150  {
151  if (fObject) {
152  const HcalPedestalWidth* pedestalwidth = getPedestalWidth (fId);
153  const HcalGainWidth* gainwidth = getGainWidth (fId);
154  if (pedestalInADC) {
155  const HcalQIECoder* coder=getHcalCoder(fId);
156  const HcalQIEShape* shape=getHcalShape(coder);
157  if (pedestalwidth && gainwidth && shape && coder) {
158  float pedTrueWidth[4];
159  for (int i=0; i<4; i++) {
160  float x=pedestalwidth->getWidth(i);
161  // assume QIE is linear in low range and use x1=0 and x2=1
162  // y = (y2-y1) * (x) [do not add any constant, only scale!]
163  float y2=coder->charge(*shape,1,i);
164  float y1=coder->charge(*shape,0,i);
165  pedTrueWidth[i]=(y2-y1)*x;
166  }
167  *fObject = HcalCalibrationWidths (gainwidth->getValues (), pedTrueWidth);
168  return true;
169  }
170  } else {
171  if (pedestalwidth && gainwidth) {
172  float pedestalWidth [4];
173  for (int i = 0; i < 4; i++) pedestalWidth [i] = pedestalwidth->getWidth (i);
174  *fObject = HcalCalibrationWidths (gainwidth->getValues (), pedestalWidth);
175  return true;
176  }
177  }
178  }
179  return false;
180 }
const HcalGainWidth * getGainWidth(const HcalGenericDetId &fId) const
int i
Definition: DBlmapReader.cc:9
const float * getValues() const
get value for all capId = 0..3
Definition: HcalGainWidth.h:19
const HcalPedestalWidth * getPedestalWidth(const HcalGenericDetId &fId) const
float getWidth(int fCapId) const
get width (sqrt(sigma_i_i)) for capId = 0..3
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
Definition: DDAxes.h:10
float charge(const HcalQIEShape &fShape, unsigned fAdc, unsigned fCapId) const
ADC [0..127] + capid [0..3] -&gt; fC conversion.
Definition: HcalQIECoder.cc:22
void HcalDbService::setData ( const HcalPedestals fItem)
inline

Definition at line 55 of file HcalDbService.h.

References mCalibSet, and mPedestals.

55 {mPedestals = fItem; mCalibSet = nullptr;}
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
void HcalDbService::setData ( const HcalPedestalWidths fItem)
inline

Definition at line 56 of file HcalDbService.h.

References mCalibWidthSet, and mPedestalWidths.

56 {mPedestalWidths = fItem; mCalibWidthSet = nullptr;}
const HcalPedestalWidths * mPedestalWidths
Definition: HcalDbService.h:78
std::atomic< HcalCalibrationWidthsSet * > mCalibWidthSet
Definition: HcalDbService.h:93
void HcalDbService::setData ( const HcalGains fItem)
inline

Definition at line 57 of file HcalDbService.h.

References mCalibSet, and mGains.

57 {mGains = fItem; mCalibSet = nullptr; }
const HcalGains * mGains
Definition: HcalDbService.h:79
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
void HcalDbService::setData ( const HcalGainWidths fItem)
inline

Definition at line 58 of file HcalDbService.h.

References mCalibWidthSet, and mGainWidths.

58 {mGainWidths = fItem; mCalibWidthSet = nullptr; }
const HcalGainWidths * mGainWidths
Definition: HcalDbService.h:80
std::atomic< HcalCalibrationWidthsSet * > mCalibWidthSet
Definition: HcalDbService.h:93
void HcalDbService::setData ( const HcalQIEData fItem)
inline

Definition at line 59 of file HcalDbService.h.

References mCalibSet, mCalibWidthSet, and mQIEData.

59 {mQIEData = fItem; mCalibSet=nullptr; mCalibWidthSet=nullptr;}
const HcalQIEData * mQIEData
Definition: HcalDbService.h:81
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
std::atomic< HcalCalibrationWidthsSet * > mCalibWidthSet
Definition: HcalDbService.h:93
void HcalDbService::setData ( const HcalChannelQuality fItem)
inline

Definition at line 60 of file HcalDbService.h.

References mChannelQuality.

60 {mChannelQuality = fItem;}
const HcalChannelQuality * mChannelQuality
Definition: HcalDbService.h:82
void HcalDbService::setData ( const HcalElectronicsMap fItem)
inline

Definition at line 61 of file HcalDbService.h.

References mElectronicsMap.

61 {mElectronicsMap = fItem;}
const HcalElectronicsMap * mElectronicsMap
Definition: HcalDbService.h:83
void HcalDbService::setData ( const HcalRespCorrs fItem)
inline

Definition at line 62 of file HcalDbService.h.

References mCalibSet, and mRespCorrs.

62 {mRespCorrs = fItem; mCalibSet = nullptr; }
const HcalRespCorrs * mRespCorrs
Definition: HcalDbService.h:84
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
void HcalDbService::setData ( const HcalTimeCorrs fItem)
inline

Definition at line 63 of file HcalDbService.h.

References mCalibSet, and mTimeCorrs.

63 {mTimeCorrs = fItem; mCalibSet = nullptr; }
const HcalTimeCorrs * mTimeCorrs
Definition: HcalDbService.h:87
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
void HcalDbService::setData ( const HcalZSThresholds fItem)
inline

Definition at line 64 of file HcalDbService.h.

References mZSThresholds.

64 {mZSThresholds = fItem;}
const HcalZSThresholds * mZSThresholds
Definition: HcalDbService.h:85
void HcalDbService::setData ( const HcalL1TriggerObjects fItem)
inline

Definition at line 65 of file HcalDbService.h.

References mL1TriggerObjects.

65 {mL1TriggerObjects = fItem;}
const HcalL1TriggerObjects * mL1TriggerObjects
Definition: HcalDbService.h:86
void HcalDbService::setData ( const HcalLUTCorrs fItem)
inline

Definition at line 66 of file HcalDbService.h.

References mCalibSet, and mLUTCorrs.

66 {mLUTCorrs = fItem; mCalibSet = nullptr; }
const HcalLUTCorrs * mLUTCorrs
Definition: HcalDbService.h:88
std::atomic< HcalCalibrationsSet * > mCalibSet
Definition: HcalDbService.h:92
void HcalDbService::setData ( const HcalPFCorrs fItem)
inline

Definition at line 67 of file HcalDbService.h.

References mPFCorrs.

67 {mPFCorrs = fItem; }
const HcalPFCorrs * mPFCorrs
Definition: HcalDbService.h:89
void HcalDbService::setData ( const HcalLutMetadata fItem)
inline

Definition at line 68 of file HcalDbService.h.

References mLutMetadata.

68 {mLutMetadata = fItem;}
const HcalLutMetadata * mLutMetadata
Definition: HcalDbService.h:90

Member Data Documentation

std::atomic<HcalCalibrationsSet*> HcalDbService::mCalibSet
mutableprivate

Definition at line 92 of file HcalDbService.h.

Referenced by buildCalibrations(), getHcalCalibrations(), and setData().

std::atomic<HcalCalibrationWidthsSet*> HcalDbService::mCalibWidthSet
mutableprivate

Definition at line 93 of file HcalDbService.h.

Referenced by buildCalibWidths(), getHcalCalibrationWidths(), and setData().

const HcalChannelQuality* HcalDbService::mChannelQuality
private

Definition at line 82 of file HcalDbService.h.

Referenced by getHcalChannelStatus(), and setData().

const HcalElectronicsMap* HcalDbService::mElectronicsMap
private

Definition at line 83 of file HcalDbService.h.

Referenced by getHcalMapping(), and setData().

const HcalGains* HcalDbService::mGains
private

Definition at line 79 of file HcalDbService.h.

Referenced by buildCalibrations(), getGain(), getTopologyUsed(), and setData().

const HcalGainWidths* HcalDbService::mGainWidths
private

Definition at line 80 of file HcalDbService.h.

Referenced by buildCalibWidths(), getGainWidth(), and setData().

const HcalL1TriggerObjects* HcalDbService::mL1TriggerObjects
private

Definition at line 86 of file HcalDbService.h.

Referenced by getHcalL1TriggerObject(), getTopologyUsed(), and setData().

const HcalLUTCorrs* HcalDbService::mLUTCorrs
private

Definition at line 88 of file HcalDbService.h.

Referenced by buildCalibrations(), getHcalLUTCorr(), and setData().

const HcalLutMetadata* HcalDbService::mLutMetadata
private

Definition at line 90 of file HcalDbService.h.

Referenced by getHcalLutMetadata(), getTopologyUsed(), and setData().

const HcalPedestals* HcalDbService::mPedestals
private

Definition at line 77 of file HcalDbService.h.

Referenced by buildCalibrations(), getPedestal(), getTopologyUsed(), and setData().

const HcalPedestalWidths* HcalDbService::mPedestalWidths
private

Definition at line 78 of file HcalDbService.h.

Referenced by buildCalibWidths(), getPedestalWidth(), and setData().

const HcalPFCorrs* HcalDbService::mPFCorrs
private

Definition at line 89 of file HcalDbService.h.

Referenced by getHcalPFCorr(), and setData().

const HcalQIEData* HcalDbService::mQIEData
private
const HcalRespCorrs* HcalDbService::mRespCorrs
private

Definition at line 84 of file HcalDbService.h.

Referenced by buildCalibrations(), getHcalRespCorr(), getTopologyUsed(), and setData().

const HcalTimeCorrs* HcalDbService::mTimeCorrs
private

Definition at line 87 of file HcalDbService.h.

Referenced by buildCalibrations(), getHcalTimeCorr(), and setData().

const HcalZSThresholds* HcalDbService::mZSThresholds
private

Definition at line 85 of file HcalDbService.h.

Referenced by getHcalZSThreshold(), and setData().