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 const * > 
mCalibSet
 
std::atomic
< HcalCalibrationWidthsSet
const * > 
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
std::atomic< HcalCalibrationWidthsSet const * > mCalibWidthSet
Definition: HcalDbService.h:93
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
std::atomic< HcalCalibrationsSet const * > mCalibSet
Definition: HcalDbService.h:92
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77

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  HcalCalibrationsSet const * cptr = ptr;
75  HcalCalibrationsSet const * expect = nullptr;
76  bool exchanged = mCalibSet.compare_exchange_strong(expect, cptr, 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
std::atomic< HcalCalibrationsSet const * > mCalibSet
Definition: HcalDbService.h:92
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
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 const * cptr = ptr;
107  HcalCalibrationWidthsSet const * expect = nullptr;
108  bool exchanged = mCalibWidthSet.compare_exchange_strong(expect, cptr, std::memory_order_acq_rel);
109  if(!exchanged) {
110  delete ptr;
111  }
112  }
113 }
std::atomic< HcalCalibrationWidthsSet const * > mCalibWidthSet
Definition: HcalDbService.h:93
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
const HcalGain * HcalDbService::getGain ( const HcalGenericDetId fId) const

Definition at line 205 of file HcalDbService.cc.

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

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

205  {
206  if (mGains) {
207  return mGains->getValues(fId);
208  }
209  return 0;
210 }
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 212 of file HcalDbService.cc.

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

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

212  {
213  if (mGainWidths) {
214  return mGainWidths->getValues (fId);
215  }
216  return 0;
217 }
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 const * > 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 }
std::atomic< HcalCalibrationWidthsSet const * > mCalibWidthSet
Definition: HcalDbService.h:93
void buildCalibWidths() const
const HcalChannelStatus * HcalDbService::getHcalChannelStatus ( const HcalGenericDetId fId) const

Definition at line 250 of file HcalDbService.cc.

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

Referenced by HcaluLUTTPGCoder::update().

251 {
252  return mChannelQuality->getValues (fId);
253 }
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 245 of file HcalDbService.cc.

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

Referenced by HcaluLUTTPGCoder::update().

246 {
247  return mL1TriggerObjects->getValues (fId);
248 }
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 267 of file HcalDbService.cc.

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

Referenced by makeHcalCalibration().

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

Definition at line 281 of file HcalDbService.cc.

References mLutMetadata.

Referenced by HcaluLUTTPGCoder::update().

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

Definition at line 241 of file HcalDbService.cc.

References mElectronicsMap.

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

Definition at line 274 of file HcalDbService.cc.

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

274  {
275  if (mPFCorrs) {
276  return mPFCorrs->getValues (fId);
277  }
278  return 0;
279 }
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 184 of file HcalDbService.cc.

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

Referenced by makeHcalCalibration().

184  {
185  if (mRespCorrs) {
186  return mRespCorrs->getValues (fId);
187  }
188  return 0;
189 }
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 233 of file HcalDbService.cc.

References HcalQIEData::getShape(), and mQIEData.

233  {
234  if (mQIEData) {
235  return &mQIEData->getShape(coder);
236  }
237  return 0;
238 }
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 260 of file HcalDbService.cc.

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

Referenced by makeHcalCalibration().

260  {
261  if (mTimeCorrs) {
262  return mTimeCorrs->getValues (fId);
263  }
264  return 0;
265 }
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 255 of file HcalDbService.cc.

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

Referenced by HcalZSAlgoRealistic::keepMe().

256 {
257  return mZSThresholds->getValues (fId);
258 }
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 191 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().

191  {
192  if (mPedestals) {
193  return mPedestals->getValues (fId);
194  }
195  return 0;
196 }
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 198 of file HcalDbService.cc.

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

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

198  {
199  if (mPedestalWidths) {
200  return mPedestalWidths->getValues (fId);
201  }
202  return 0;
203 }
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 115 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().

115  {
116  if (fObject) {
117  const HcalPedestal* pedestal = getPedestal (fId);
118  const HcalGain* gain = getGain (fId);
119  const HcalRespCorr* respcorr = getHcalRespCorr (fId);
120  const HcalTimeCorr* timecorr = getHcalTimeCorr (fId);
121  const HcalLUTCorr* lutcorr = getHcalLUTCorr (fId);
122 
123  if (pedestalInADC) {
124  const HcalQIECoder* coder=getHcalCoder(fId);
125  const HcalQIEShape* shape=getHcalShape(coder);
126  if (pedestal && gain && shape && coder && respcorr && timecorr && lutcorr) {
127  float pedTrue[4];
128  for (int i=0; i<4; i++) {
129  float x=pedestal->getValues()[i];
130  int x1=(int)std::floor(x);
131  int x2=(int)std::floor(x+1);
132  // y = (y2-y1)/(x2-x1) * (x - x1) + y1 [note: x2-x1=1]
133  float y2=coder->charge(*shape,x2,i);
134  float y1=coder->charge(*shape,x1,i);
135  pedTrue[i]=(y2-y1)*(x-x1)+y1;
136  }
137  *fObject = HcalCalibrations (gain->getValues (), pedTrue, respcorr->getValue(), timecorr->getValue(), lutcorr->getValue() );
138  return true;
139  }
140  } else {
141  if (pedestal && gain && respcorr && timecorr && lutcorr) {
142  *fObject = HcalCalibrations (gain->getValues (), pedestal->getValues (), respcorr->getValue(), timecorr->getValue(), lutcorr->getValue() );
143  return true;
144  }
145  }
146  }
147  return false;
148 }
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 150 of file HcalDbService.cc.

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

Referenced by buildCalibWidths().

151  {
152  if (fObject) {
153  const HcalPedestalWidth* pedestalwidth = getPedestalWidth (fId);
154  const HcalGainWidth* gainwidth = getGainWidth (fId);
155  if (pedestalInADC) {
156  const HcalQIECoder* coder=getHcalCoder(fId);
157  const HcalQIEShape* shape=getHcalShape(coder);
158  if (pedestalwidth && gainwidth && shape && coder) {
159  float pedTrueWidth[4];
160  for (int i=0; i<4; i++) {
161  float x=pedestalwidth->getWidth(i);
162  // assume QIE is linear in low range and use x1=0 and x2=1
163  // y = (y2-y1) * (x) [do not add any constant, only scale!]
164  float y2=coder->charge(*shape,1,i);
165  float y1=coder->charge(*shape,0,i);
166  pedTrueWidth[i]=(y2-y1)*x;
167  }
168  *fObject = HcalCalibrationWidths (gainwidth->getValues (), pedTrueWidth);
169  return true;
170  }
171  } else {
172  if (pedestalwidth && gainwidth) {
173  float pedestalWidth [4];
174  for (int i = 0; i < 4; i++) pedestalWidth [i] = pedestalwidth->getWidth (i);
175  *fObject = HcalCalibrationWidths (gainwidth->getValues (), pedestalWidth);
176  return true;
177  }
178  }
179  }
180  return false;
181 }
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;}
std::atomic< HcalCalibrationsSet const * > mCalibSet
Definition: HcalDbService.h:92
const HcalPedestals * mPedestals
Definition: HcalDbService.h:77
void HcalDbService::setData ( const HcalPedestalWidths fItem)
inline

Definition at line 56 of file HcalDbService.h.

References mCalibWidthSet, and mPedestalWidths.

56 {mPedestalWidths = fItem; mCalibWidthSet = nullptr;}
std::atomic< HcalCalibrationWidthsSet const * > mCalibWidthSet
Definition: HcalDbService.h:93
const HcalPedestalWidths * mPedestalWidths
Definition: HcalDbService.h:78
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 const * > 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; }
std::atomic< HcalCalibrationWidthsSet const * > mCalibWidthSet
Definition: HcalDbService.h:93
const HcalGainWidths * mGainWidths
Definition: HcalDbService.h:80
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;}
std::atomic< HcalCalibrationWidthsSet const * > mCalibWidthSet
Definition: HcalDbService.h:93
const HcalQIEData * mQIEData
Definition: HcalDbService.h:81
std::atomic< HcalCalibrationsSet const * > mCalibSet
Definition: HcalDbService.h:92
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 const * > 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 const * > 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 const * > 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 const *> HcalDbService::mCalibSet
mutableprivate

Definition at line 92 of file HcalDbService.h.

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

std::atomic<HcalCalibrationWidthsSet const *> 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().