CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Types | Private Attributes
EcalBarrelDigisValidation Class Reference

#include <EcalBarrelDigisValidation.h>

Inheritance diagram for EcalBarrelDigisValidation:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 
 EcalBarrelDigisValidation (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~EcalBarrelDigisValidation () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &c) override
 Analyze. More...
 
void checkCalibrations (edm::EventSetup const &c)
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Types

typedef std::map< uint32_t, float, std::less< uint32_t > > MapType
 

Private Attributes

double barrelADCtoGeV_
 
edm::EDGetTokenT< EBDigiCollectionEBdigiCollection_
 
double endcapADCtoGeV_
 
std::map< int, double, std::less< int > > gainConv_
 
MonitorElementmeEBDigiADCAnalog_ [10]
 
MonitorElementmeEBDigiADCg12_ [10]
 
MonitorElementmeEBDigiADCg1_ [10]
 
MonitorElementmeEBDigiADCg6_ [10]
 
MonitorElementmeEBDigiADCGlobal_
 
MonitorElementmeEBDigiADCgS_ [10]
 
MonitorElementmeEBDigiGain_ [10]
 
MonitorElementmeEBDigiMultiplicity_
 
MonitorElementmeEBDigiOccupancy_
 
MonitorElementmeEBMaximumgt100ADC_
 
MonitorElementmeEBMaximumgt10ADC_
 
MonitorElementmeEBnADCafterSwitch_
 
MonitorElementmeEBPedestal_
 
std::string outputFile_
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 34 of file EcalBarrelDigisValidation.h.

Member Typedef Documentation

typedef std::map<uint32_t, float, std::less<uint32_t> > EcalBarrelDigisValidation::MapType
private

Definition at line 35 of file EcalBarrelDigisValidation.h.

Constructor & Destructor Documentation

EcalBarrelDigisValidation::EcalBarrelDigisValidation ( const edm::ParameterSet ps)

Constructor.

Definition at line 16 of file EcalBarrelDigisValidation.cc.

References barrelADCtoGeV_, endcapADCtoGeV_, gainConv_, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, meEBDigiADCAnalog_, meEBDigiADCg12_, meEBDigiADCg1_, meEBDigiADCg6_, meEBDigiADCGlobal_, meEBDigiADCgS_, meEBDigiGain_, meEBDigiMultiplicity_, meEBDigiOccupancy_, meEBMaximumgt100ADC_, meEBMaximumgt10ADC_, meEBnADCafterSwitch_, meEBPedestal_, and verbose_.

17  : EBdigiCollection_(consumes<EBDigiCollection>(ps.getParameter<edm::InputTag>("EBdigiCollection"))) {
18  // verbosity switch
19  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
20 
21  // get hold of back-end interface
22 
23  gainConv_[1] = 1.;
24  gainConv_[2] = 2.;
25  gainConv_[3] = 12.;
26  gainConv_[0] = 12.; // saturated channels
27  barrelADCtoGeV_ = 0.035;
28  endcapADCtoGeV_ = 0.06;
29 
30  meEBDigiOccupancy_ = nullptr;
31 
32  meEBDigiMultiplicity_ = nullptr;
33 
34  meEBDigiADCGlobal_ = nullptr;
35 
36  for (int i = 0; i < 10; i++) {
37  meEBDigiADCAnalog_[i] = nullptr;
38  meEBDigiADCgS_[i] = nullptr;
39  meEBDigiADCg1_[i] = nullptr;
40  meEBDigiADCg6_[i] = nullptr;
41  meEBDigiADCg12_[i] = nullptr;
42  meEBDigiGain_[i] = nullptr;
43  }
44 
45  meEBPedestal_ = nullptr;
46 
47  meEBMaximumgt100ADC_ = nullptr;
48 
49  meEBMaximumgt10ADC_ = nullptr;
50 
51  meEBnADCafterSwitch_ = nullptr;
52 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::map< int, double, std::less< int > > gainConv_
MonitorElement * meEBDigiADCAnalog_[10]
edm::EDGetTokenT< EBDigiCollection > EBdigiCollection_
MonitorElement * meEBDigiADCg12_[10]
EcalBarrelDigisValidation::~EcalBarrelDigisValidation ( )
override

Destructor.

Definition at line 54 of file EcalBarrelDigisValidation.cc.

54 {}

Member Function Documentation

void EcalBarrelDigisValidation::analyze ( edm::Event const &  e,
edm::EventSetup const &  c 
)
overrideprotectedvirtual

Analyze.

Reimplemented from DQMEDAnalyzer.

Definition at line 105 of file EcalBarrelDigisValidation.cc.

References EcalMGPASample::adc(), barrelADCtoGeV_, EBdigiCollection_, dqm::impl::MonitorElement::Fill(), gainConv_, EcalMGPASample::gainId(), edm::Event::getByToken(), mps_fire::i, EBDataFrame::id(), EBDetId::ieta(), createfilelist::int, EBDetId::iphi(), edm::HandleBase::isValid(), LogDebug, EcalDataFrame::MAXSAMPLES, meEBDigiADCAnalog_, meEBDigiADCg12_, meEBDigiADCg1_, meEBDigiADCg6_, meEBDigiADCGlobal_, meEBDigiADCgS_, meEBDigiGain_, meEBDigiMultiplicity_, meEBDigiOccupancy_, meEBMaximumgt100ADC_, meEBMaximumgt10ADC_, meEBnADCafterSwitch_, meEBPedestal_, dataAnalyzerFineBiningParameters_cff::Pmax, edm::Handle< T >::product(), DetId::rawId(), edm::DataFrameContainer::reserve(), simplePhotonAnalyzer_cfi::sample, EcalDataFrame::size(), and edm::DataFrameContainer::size().

105  {
106  //LogInfo("EventInfo") << " Run = " << e.id().run() << " Event = " << e.id().event();
107 
108  Handle<EBDigiCollection> EcalDigiEB;
109 
110  e.getByToken(EBdigiCollection_, EcalDigiEB);
111 
112  //Return if no Barrel data
113  if (!EcalDigiEB.isValid())
114  return;
115 
116  // BARREL
117 
118  // loop over Digis
119 
120  const EBDigiCollection* barrelDigi = EcalDigiEB.product();
121 
122  std::vector<double> ebAnalogSignal;
123  std::vector<double> ebADCCounts;
124  std::vector<double> ebADCGains;
125  ebAnalogSignal.reserve(EBDataFrame::MAXSAMPLES);
126  ebADCCounts.reserve(EBDataFrame::MAXSAMPLES);
127  ebADCGains.reserve(EBDataFrame::MAXSAMPLES);
128 
129  int nDigis = 0;
130 
131  for (unsigned int digis = 0; digis < EcalDigiEB->size(); ++digis) {
132  EBDataFrame ebdf = (*barrelDigi)[digis];
133  int nrSamples = ebdf.size();
134 
135  EBDetId ebid = ebdf.id();
136 
137  nDigis++;
138  if (meEBDigiOccupancy_)
139  meEBDigiOccupancy_->Fill(ebid.iphi(), ebid.ieta());
140 
141  double Emax = 0.;
142  int Pmax = 0;
143  double pedestalPreSample = 0.;
144  double pedestalPreSampleAnalog = 0.;
145  int countsAfterGainSwitch = -1;
146  double higherGain = 1.;
147  int higherGainSample = 0;
148 
149  for (int sample = 0; sample < nrSamples; ++sample) {
150  ebAnalogSignal[sample] = 0.;
151  ebADCCounts[sample] = 0.;
152  ebADCGains[sample] = 0.;
153  }
154 
155  for (int sample = 0; sample < nrSamples; ++sample) {
156  EcalMGPASample thisSample = ebdf[sample];
157 
158  ebADCCounts[sample] = (thisSample.adc());
159  ebADCGains[sample] = (thisSample.gainId());
160  ebAnalogSignal[sample] = (ebADCCounts[sample] * gainConv_[(int)ebADCGains[sample]] * barrelADCtoGeV_);
161 
162  if (Emax < ebAnalogSignal[sample]) {
163  Emax = ebAnalogSignal[sample];
164  Pmax = sample;
165  }
166 
167  if (sample < 3) {
168  pedestalPreSample += ebADCCounts[sample];
169  pedestalPreSampleAnalog += ebADCCounts[sample] * gainConv_[(int)ebADCGains[sample]] * barrelADCtoGeV_;
170  }
171 
172  if (sample > 0 && (((ebADCGains[sample] > ebADCGains[sample - 1]) && (ebADCGains[sample - 1] != 0)) ||
173  (countsAfterGainSwitch < 0 && ebADCGains[sample] == 0))) {
174  higherGain = ebADCGains[sample];
175  higherGainSample = sample;
176  countsAfterGainSwitch = 1;
177  }
178 
179  if ((higherGain > 1 && (higherGainSample != sample) && (ebADCGains[sample] == higherGain)) ||
180  (higherGain == 3 && (higherGainSample != sample) && (ebADCGains[sample] == 0)) ||
181  (higherGain == 0 && (higherGainSample != sample) &&
182  ((ebADCGains[sample] == 3) || (ebADCGains[sample] == 0)))) {
183  countsAfterGainSwitch++;
184  }
185  }
186 
187  pedestalPreSample /= 3.;
188  pedestalPreSampleAnalog /= 3.;
189 
190  LogDebug("DigiInfo") << "Barrel Digi for EBDetId = " << ebid.rawId() << " eta,phi " << ebid.ieta() << " "
191  << ebid.iphi();
192  for (int i = 0; i < 10; i++) {
193  LogDebug("DigiInfo") << "sample " << i << " ADC = " << ebADCCounts[i] << " gain = " << ebADCGains[i]
194  << " Analog = " << ebAnalogSignal[i];
195  }
196  LogDebug("DigiInfo") << "Maximum energy = " << Emax << " in sample " << Pmax
197  << " Pedestal from pre-sample = " << pedestalPreSampleAnalog;
198  if (countsAfterGainSwitch > 0)
199  LogDebug("DigiInfo") << "Counts after switch " << countsAfterGainSwitch;
200 
201  if (countsAfterGainSwitch > 0 && countsAfterGainSwitch < 5) {
202  edm::LogWarning("DigiWarning") << "Wrong number of counts after gain switch before next switch! "
203  << countsAfterGainSwitch;
204  for (int i = 0; i < 10; i++) {
205  edm::LogWarning("DigiWarning") << "sample " << i << " ADC = " << ebADCCounts[i] << " gain = " << ebADCGains[i]
206  << " Analog = " << ebAnalogSignal[i];
207  }
208  }
209 
210  for (int i = 0; i < 10; i++) {
211  if (meEBDigiADCGlobal_ &&
212  (Emax - pedestalPreSampleAnalog * gainConv_[(int)ebADCGains[Pmax]]) > 100. * barrelADCtoGeV_)
213  meEBDigiADCGlobal_->Fill(i, ebAnalogSignal[i]);
214  if (meEBDigiADCAnalog_[i])
215  meEBDigiADCAnalog_[i]->Fill(ebAnalogSignal[i]);
216 
217  if (ebADCGains[i] == 0) {
218  if (meEBDigiADCgS_[i])
219  meEBDigiADCgS_[i]->Fill(ebADCCounts[i]);
220  } else if (ebADCGains[i] == 3) {
221  if (meEBDigiADCg1_[i])
222  meEBDigiADCg1_[i]->Fill(ebADCCounts[i]);
223  } else if (ebADCGains[i] == 2) {
224  if (meEBDigiADCg6_[i])
225  meEBDigiADCg6_[i]->Fill(ebADCCounts[i]);
226  } else if (ebADCGains[i] == 1) {
227  if (meEBDigiADCg12_[i])
228  meEBDigiADCg12_[i]->Fill(ebADCCounts[i]);
229  }
230  if (meEBDigiGain_[i])
231  meEBDigiGain_[i]->Fill(ebADCGains[i]);
232  }
233 
234  if (meEBPedestal_)
235  meEBPedestal_->Fill(pedestalPreSample);
236  if (meEBMaximumgt10ADC_ &&
237  (Emax - pedestalPreSampleAnalog * gainConv_[(int)ebADCGains[Pmax]]) > 10. * barrelADCtoGeV_)
238  meEBMaximumgt10ADC_->Fill(Pmax);
239  if (meEBMaximumgt100ADC_ &&
240  (Emax - pedestalPreSampleAnalog * gainConv_[(int)ebADCGains[Pmax]]) > 100. * barrelADCtoGeV_)
241  meEBMaximumgt100ADC_->Fill(Pmax);
243  meEBnADCafterSwitch_->Fill(countsAfterGainSwitch);
244  }
245 
247  meEBDigiMultiplicity_->Fill(nDigis);
248 }
#define LogDebug(id)
std::map< int, double, std::less< int > > gainConv_
key_type id() const
Definition: EBDataFrame.h:28
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
MonitorElement * meEBDigiADCAnalog_[10]
int gainId() const
get the gainId (2 bits)
int size() const
Definition: EcalDataFrame.h:26
int iphi() const
get the crystal iphi
Definition: EBDetId.h:51
void Fill(long long x)
edm::EDGetTokenT< EBDigiCollection > EBdigiCollection_
int ieta() const
get the crystal ieta
Definition: EBDetId.h:49
bool isValid() const
Definition: HandleBase.h:70
void reserve(size_t isize)
T const * product() const
Definition: Handle.h:69
MonitorElement * meEBDigiADCg12_[10]
static constexpr int MAXSAMPLES
Definition: EcalDataFrame.h:48
int adc() const
get the ADC sample (12 bits)
void EcalBarrelDigisValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 56 of file EcalBarrelDigisValidation.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), timingPdfMaker::histo, mps_fire::i, meEBDigiADCAnalog_, meEBDigiADCg12_, meEBDigiADCg1_, meEBDigiADCg6_, meEBDigiADCGlobal_, meEBDigiADCgS_, meEBDigiGain_, meEBDigiMultiplicity_, meEBDigiOccupancy_, meEBMaximumgt100ADC_, meEBMaximumgt10ADC_, meEBnADCafterSwitch_, meEBPedestal_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

56  {
57  Char_t histo[200];
58 
59  ibooker.setCurrentFolder("EcalDigisV/EcalDigiTask");
60 
61  sprintf(histo, "EcalDigiTask Barrel occupancy");
62  meEBDigiOccupancy_ = ibooker.book2D(histo, histo, 360, 0., 360., 170, -85., 85.);
63 
64  sprintf(histo, "EcalDigiTask Barrel digis multiplicity");
65  meEBDigiMultiplicity_ = ibooker.book1D(histo, histo, 612, 0., 61200);
66 
67  sprintf(histo, "EcalDigiTask Barrel global pulse shape");
68  meEBDigiADCGlobal_ = ibooker.bookProfile(histo, histo, 10, 0, 10, 10000, 0., 1000.);
69 
70  for (int i = 0; i < 10; i++) {
71  sprintf(histo, "EcalDigiTask Barrel analog pulse %02d", i + 1);
72  meEBDigiADCAnalog_[i] = ibooker.book1D(histo, histo, 4000, 0., 400.);
73 
74  sprintf(histo, "EcalDigiTask Barrel ADC pulse %02d Gain 0 - Saturated", i + 1);
75  meEBDigiADCgS_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
76 
77  sprintf(histo, "EcalDigiTask Barrel ADC pulse %02d Gain 1", i + 1);
78  meEBDigiADCg1_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
79 
80  sprintf(histo, "EcalDigiTask Barrel ADC pulse %02d Gain 6", i + 1);
81  meEBDigiADCg6_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
82 
83  sprintf(histo, "EcalDigiTask Barrel ADC pulse %02d Gain 12", i + 1);
84  meEBDigiADCg12_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
85 
86  sprintf(histo, "EcalDigiTask Barrel gain pulse %02d", i + 1);
87  meEBDigiGain_[i] = ibooker.book1D(histo, histo, 4, 0, 4);
88  }
89 
90  sprintf(histo, "EcalDigiTask Barrel pedestal for pre-sample");
91  meEBPedestal_ = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
92 
93  sprintf(histo, "EcalDigiTask Barrel maximum position gt 100 ADC");
94  meEBMaximumgt100ADC_ = ibooker.book1D(histo, histo, 10, 0., 10.);
95 
96  sprintf(histo, "EcalDigiTask Barrel maximum position gt 10 ADC");
97  meEBMaximumgt10ADC_ = ibooker.book1D(histo, histo, 10, 0., 10.);
98 
99  sprintf(histo, "EcalDigiTask Barrel ADC counts after gain switch");
100  meEBnADCafterSwitch_ = ibooker.book1D(histo, histo, 10, 0., 10.);
101 }
MonitorElement * meEBDigiADCAnalog_[10]
MonitorElement * meEBDigiADCg12_[10]
void EcalBarrelDigisValidation::checkCalibrations ( edm::EventSetup const &  c)
protected

Definition at line 250 of file EcalBarrelDigisValidation.cc.

References barrelADCtoGeV_, endcapADCtoGeV_, EcalMGPAGainRatio::gain12Over6(), EcalMGPAGainRatio::gain6Over1(), gainConv_, edm::EventSetup::get(), EcalADCToGeVConstant::getEBValue(), EcalADCToGeVConstant::getEEValue(), LogDebug, and edm::ESHandle< T >::product().

Referenced by dqmBeginRun().

250  {
251  // ADC -> GeV Scale
253  eventSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
254  const EcalADCToGeVConstant* agc = pAgc.product();
255 
256  EcalMGPAGainRatio* defaultRatios = new EcalMGPAGainRatio();
257 
258  gainConv_[1] = 1.;
259  gainConv_[2] = defaultRatios->gain12Over6();
260  gainConv_[3] = gainConv_[2] * (defaultRatios->gain6Over1());
261  gainConv_[0] = gainConv_[2] * (defaultRatios->gain6Over1());
262 
263  LogDebug("EcalDigi") << " Gains conversions: "
264  << "\n"
265  << " g0 = " << gainConv_[0] << "\n"
266  << " g1 = " << gainConv_[1] << "\n"
267  << " g2 = " << gainConv_[2] << "\n"
268  << " g3 = " << gainConv_[3];
269 
270  delete defaultRatios;
271 
272  const double barrelADCtoGeV_ = agc->getEBValue();
273  LogDebug("EcalDigi") << " Barrel GeV/ADC = " << barrelADCtoGeV_;
274  const double endcapADCtoGeV_ = agc->getEEValue();
275  LogDebug("EcalDigi") << " Endcap GeV/ADC = " << endcapADCtoGeV_;
276 }
#define LogDebug(id)
std::map< int, double, std::less< int > > gainConv_
float gain6Over1() const
float gain12Over6() const
T const * product() const
Definition: ESHandle.h:86
void EcalBarrelDigisValidation::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &  c 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 103 of file EcalBarrelDigisValidation.cc.

References checkCalibrations().

Member Data Documentation

double EcalBarrelDigisValidation::barrelADCtoGeV_
private
edm::EDGetTokenT<EBDigiCollection> EcalBarrelDigisValidation::EBdigiCollection_
private

Definition at line 57 of file EcalBarrelDigisValidation.h.

Referenced by analyze().

double EcalBarrelDigisValidation::endcapADCtoGeV_
private

Definition at line 62 of file EcalBarrelDigisValidation.h.

Referenced by checkCalibrations(), and EcalBarrelDigisValidation().

std::map<int, double, std::less<int> > EcalBarrelDigisValidation::gainConv_
private
MonitorElement* EcalBarrelDigisValidation::meEBDigiADCAnalog_[10]
private

Definition at line 70 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiADCg12_[10]
private

Definition at line 75 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiADCg1_[10]
private

Definition at line 73 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiADCg6_[10]
private

Definition at line 74 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiADCGlobal_
private

Definition at line 68 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiADCgS_[10]
private

Definition at line 72 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiGain_[10]
private

Definition at line 77 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiMultiplicity_
private

Definition at line 66 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBDigiOccupancy_
private

Definition at line 64 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBMaximumgt100ADC_
private

Definition at line 81 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBMaximumgt10ADC_
private

Definition at line 83 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBnADCafterSwitch_
private

Definition at line 85 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

MonitorElement* EcalBarrelDigisValidation::meEBPedestal_
private

Definition at line 79 of file EcalBarrelDigisValidation.h.

Referenced by analyze(), bookHistograms(), and EcalBarrelDigisValidation().

std::string EcalBarrelDigisValidation::outputFile_
private

Definition at line 55 of file EcalBarrelDigisValidation.h.

bool EcalBarrelDigisValidation::verbose_
private

Definition at line 53 of file EcalBarrelDigisValidation.h.

Referenced by EcalBarrelDigisValidation().