CMS 3D CMS Logo

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

#include <EcalEndcapDigisValidation.h>

Inheritance diagram for EcalEndcapDigisValidation:
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
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
 EcalEndcapDigisValidation (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~EcalEndcapDigisValidation () 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)
 
- 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< EEDigiCollectionEEdigiCollectionToken_
 
double endcapADCtoGeV_
 
std::map< int, double, std::less< int > > gainConv_
 
MonitorElementmeEEDigiADCAnalog_ [10]
 
MonitorElementmeEEDigiADCg12_ [10]
 
MonitorElementmeEEDigiADCg1_ [10]
 
MonitorElementmeEEDigiADCg6_ [10]
 
MonitorElementmeEEDigiADCGlobal_
 
MonitorElementmeEEDigiADCgS_ [10]
 
MonitorElementmeEEDigiGain_ [10]
 
MonitorElementmeEEDigiMultiplicityzm_
 
MonitorElementmeEEDigiMultiplicityzp_
 
MonitorElementmeEEDigiOccupancyzm_
 
MonitorElementmeEEDigiOccupancyzp_
 
MonitorElementmeEEMaximumgt100ADC_
 
MonitorElementmeEEMaximumgt20ADC_
 
MonitorElementmeEEnADCafterSwitch_
 
MonitorElementmeEEPedestal_
 
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 EcalEndcapDigisValidation.h.

Member Typedef Documentation

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

Definition at line 35 of file EcalEndcapDigisValidation.h.

Constructor & Destructor Documentation

EcalEndcapDigisValidation::EcalEndcapDigisValidation ( const edm::ParameterSet ps)

Constructor.

Definition at line 15 of file EcalEndcapDigisValidation.cc.

References barrelADCtoGeV_, endcapADCtoGeV_, gainConv_, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, meEEDigiADCAnalog_, meEEDigiADCg12_, meEEDigiADCg1_, meEEDigiADCg6_, meEEDigiADCGlobal_, meEEDigiADCgS_, meEEDigiGain_, meEEDigiMultiplicityzm_, meEEDigiMultiplicityzp_, meEEDigiOccupancyzm_, meEEDigiOccupancyzp_, meEEMaximumgt100ADC_, meEEMaximumgt20ADC_, meEEnADCafterSwitch_, meEEPedestal_, and verbose_.

16  : EEdigiCollectionToken_(consumes<EEDigiCollection>(ps.getParameter<edm::InputTag>("EEdigiCollection"))) {
17  // verbosity switch
18  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
19 
20  gainConv_[1] = 1.;
21  gainConv_[2] = 2.;
22  gainConv_[3] = 12.;
23  gainConv_[0] = 12.; // saturated channels
24  barrelADCtoGeV_ = 0.035;
25  endcapADCtoGeV_ = 0.06;
26 
27  meEEDigiOccupancyzp_ = nullptr;
28  meEEDigiOccupancyzm_ = nullptr;
29 
30  meEEDigiMultiplicityzp_ = nullptr;
31  meEEDigiMultiplicityzm_ = nullptr;
32 
33  meEEDigiADCGlobal_ = nullptr;
34 
35  for (int i = 0; i < 10; i++) {
36  meEEDigiADCAnalog_[i] = nullptr;
37  meEEDigiADCgS_[i] = nullptr;
38  meEEDigiADCg1_[i] = nullptr;
39  meEEDigiADCg6_[i] = nullptr;
40  meEEDigiADCg12_[i] = nullptr;
41  meEEDigiGain_[i] = nullptr;
42  }
43 
44  meEEPedestal_ = nullptr;
45 
46  meEEMaximumgt100ADC_ = nullptr;
47 
48  meEEMaximumgt20ADC_ = nullptr;
49 
50  meEEnADCafterSwitch_ = nullptr;
51 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meEEDigiADCAnalog_[10]
edm::EDGetTokenT< EEDigiCollection > EEdigiCollectionToken_
MonitorElement * meEEDigiADCg12_[10]
std::map< int, double, std::less< int > > gainConv_
EcalEndcapDigisValidation::~EcalEndcapDigisValidation ( )
override

Destructor.

Definition at line 53 of file EcalEndcapDigisValidation.cc.

53 {}

Member Function Documentation

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

Analyze.

Reimplemented from DQMEDAnalyzer.

Definition at line 110 of file EcalEndcapDigisValidation.cc.

References EcalMGPASample::adc(), EEdigiCollectionToken_, endcapADCtoGeV_, dqm::impl::MonitorElement::Fill(), gainConv_, EcalMGPASample::gainId(), edm::Event::getByToken(), mps_fire::i, EEDataFrame::id(), createfilelist::int, edm::HandleBase::isValid(), EEDetId::ix(), EEDetId::iy(), LogDebug, EcalDataFrame::MAXSAMPLES, meEEDigiADCAnalog_, meEEDigiADCg12_, meEEDigiADCg1_, meEEDigiADCg6_, meEEDigiADCGlobal_, meEEDigiADCgS_, meEEDigiGain_, meEEDigiMultiplicityzm_, meEEDigiMultiplicityzp_, meEEDigiOccupancyzm_, meEEDigiOccupancyzp_, meEEMaximumgt100ADC_, meEEMaximumgt20ADC_, meEEnADCafterSwitch_, meEEPedestal_, ecalTB2006H4_GenSimDigiReco_cfg::mySample, dataAnalyzerFineBiningParameters_cff::Pmax, edm::Handle< T >::product(), DetId::rawId(), edm::DataFrameContainer::reserve(), simplePhotonAnalyzer_cfi::sample, EcalDataFrame::size(), edm::DataFrameContainer::size(), and EEDetId::zside().

110  {
111  //LogInfo("EventInfo") << " Run = " << e.id().run() << " Event = " << e.id().event();
112 
113  Handle<EEDigiCollection> EcalDigiEE;
114 
115  e.getByToken(EEdigiCollectionToken_, EcalDigiEE);
116 
117  // Return if no Endcap data available
118  if (!EcalDigiEE.isValid())
119  return;
120 
121  // ENDCAP
122 
123  // loop over Digis
124 
125  const EEDigiCollection* endcapDigi = EcalDigiEE.product();
126 
127  std::vector<double> eeAnalogSignal;
128  std::vector<double> eeADCCounts;
129  std::vector<double> eeADCGains;
130  eeAnalogSignal.reserve(EEDataFrame::MAXSAMPLES);
131  eeADCCounts.reserve(EEDataFrame::MAXSAMPLES);
132  eeADCGains.reserve(EEDataFrame::MAXSAMPLES);
133 
134  int nDigiszp = 0;
135  int nDigiszm = 0;
136 
137  for (unsigned int digis = 0; digis < EcalDigiEE->size(); ++digis) {
138  EEDataFrame eedf = (*endcapDigi)[digis];
139  int nrSamples = eedf.size();
140 
141  EEDetId eeid = eedf.id();
142 
143  if (eeid.zside() > 0) {
145  meEEDigiOccupancyzp_->Fill(eeid.ix(), eeid.iy());
146  nDigiszp++;
147  } else if (eeid.zside() < 0) {
149  meEEDigiOccupancyzm_->Fill(eeid.ix(), eeid.iy());
150  nDigiszm++;
151  }
152 
153  double Emax = 0.;
154  int Pmax = 0;
155  double pedestalPreSample = 0.;
156  double pedestalPreSampleAnalog = 0.;
157  int countsAfterGainSwitch = -1;
158  double higherGain = 1.;
159  int higherGainSample = 0;
160 
161  for (int sample = 0; sample < nrSamples; ++sample) {
162  eeAnalogSignal[sample] = 0.;
163  eeADCCounts[sample] = 0.;
164  eeADCGains[sample] = 0.;
165  }
166 
167  for (int sample = 0; sample < nrSamples; ++sample) {
169 
170  eeADCCounts[sample] = (mySample.adc());
171  eeADCGains[sample] = (mySample.gainId());
172  eeAnalogSignal[sample] = (eeADCCounts[sample] * gainConv_[(int)eeADCGains[sample]] * endcapADCtoGeV_);
173 
174  if (Emax < eeAnalogSignal[sample]) {
175  Emax = eeAnalogSignal[sample];
176  Pmax = sample;
177  }
178 
179  if (sample < 3) {
180  pedestalPreSample += eeADCCounts[sample];
181  pedestalPreSampleAnalog += eeADCCounts[sample] * gainConv_[(int)eeADCGains[sample]] * endcapADCtoGeV_;
182  }
183 
184  if (sample > 0 && (((eeADCGains[sample] > eeADCGains[sample - 1]) && (eeADCGains[sample - 1] != 0)) ||
185  (countsAfterGainSwitch < 0 && eeADCGains[sample] == 0))) {
186  higherGain = eeADCGains[sample];
187  higherGainSample = sample;
188  countsAfterGainSwitch = 1;
189  }
190 
191  if ((higherGain > 1 && (higherGainSample != sample) && (eeADCGains[sample] == higherGain)) ||
192  (higherGain == 3 && (higherGainSample != sample) && (eeADCGains[sample] == 0)) ||
193  (higherGain == 0 && (higherGainSample != sample) && ((eeADCGains[sample] == 0) || (eeADCGains[sample] == 3))))
194  countsAfterGainSwitch++;
195  }
196  pedestalPreSample /= 3.;
197  pedestalPreSampleAnalog /= 3.;
198 
199  LogDebug("DigiInfo") << "Endcap Digi for EEDetId = " << eeid.rawId() << " x,y " << eeid.ix() << " " << eeid.iy();
200  for (int i = 0; i < 10; i++) {
201  LogDebug("DigiInfo") << "sample " << i << " ADC = " << eeADCCounts[i] << " gain = " << eeADCGains[i]
202  << " Analog = " << eeAnalogSignal[i];
203  }
204  LogDebug("DigiInfo") << "Maximum energy = " << Emax << " in sample " << Pmax
205  << " Pedestal from pre-sample = " << pedestalPreSampleAnalog;
206  if (countsAfterGainSwitch > 0)
207  LogDebug("DigiInfo") << "Counts after switch " << countsAfterGainSwitch;
208 
209  if (countsAfterGainSwitch > 0 && countsAfterGainSwitch < 5) {
210  edm::LogWarning("DigiWarning") << "Wrong number of counts after gain switch before next switch! "
211  << countsAfterGainSwitch;
212  for (int i = 0; i < 10; i++) {
213  edm::LogWarning("DigiWarning") << "sample " << i << " ADC = " << eeADCCounts[i] << " gain = " << eeADCGains[i]
214  << " Analog = " << eeAnalogSignal[i];
215  }
216  }
217 
218  for (int i = 0; i < 10; i++) {
219  if (meEEDigiADCGlobal_ &&
220  (Emax - pedestalPreSampleAnalog * gainConv_[(int)eeADCGains[Pmax]]) > 100. * endcapADCtoGeV_)
221  meEEDigiADCGlobal_->Fill(i, eeAnalogSignal[i]);
222  if (meEEDigiADCAnalog_[i])
223  meEEDigiADCAnalog_[i]->Fill(eeAnalogSignal[i]);
224  if (eeADCGains[i] == 0) {
225  if (meEEDigiADCgS_[i])
226  meEEDigiADCgS_[i]->Fill(eeADCCounts[i]);
227  } else if (eeADCGains[i] == 3) {
228  if (meEEDigiADCg1_[i])
229  meEEDigiADCg1_[i]->Fill(eeADCCounts[i]);
230  } else if (eeADCGains[i] == 2) {
231  if (meEEDigiADCg6_[i])
232  meEEDigiADCg6_[i]->Fill(eeADCCounts[i]);
233  } else if (eeADCGains[i] == 1) {
234  if (meEEDigiADCg12_[i])
235  meEEDigiADCg12_[i]->Fill(eeADCCounts[i]);
236  }
237  if (meEEDigiGain_[i])
238  meEEDigiGain_[i]->Fill(eeADCGains[i]);
239  }
240 
241  if (meEEPedestal_)
242  meEEPedestal_->Fill(pedestalPreSample);
243  if (meEEMaximumgt20ADC_ &&
244  (Emax - pedestalPreSampleAnalog * gainConv_[(int)eeADCGains[Pmax]]) > 20. * endcapADCtoGeV_)
245  meEEMaximumgt20ADC_->Fill(Pmax);
246  if (meEEMaximumgt100ADC_ &&
247  (Emax - pedestalPreSampleAnalog * gainConv_[(int)eeADCGains[Pmax]]) > 100. * endcapADCtoGeV_)
248  meEEMaximumgt100ADC_->Fill(Pmax);
250  meEEnADCafterSwitch_->Fill(countsAfterGainSwitch);
251  }
252 
254  meEEDigiMultiplicityzp_->Fill(nDigiszp);
256  meEEDigiMultiplicityzm_->Fill(nDigiszm);
257 }
#define LogDebug(id)
int ix() const
Definition: EEDetId.h:77
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
int gainId() const
get the gainId (2 bits)
int size() const
Definition: EcalDataFrame.h:26
void Fill(long long x)
MonitorElement * meEEDigiADCAnalog_[10]
int zside() const
Definition: EEDetId.h:71
int iy() const
Definition: EEDetId.h:83
edm::EDGetTokenT< EEDigiCollection > EEdigiCollectionToken_
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * meEEDigiADCg12_[10]
key_type id() const
Definition: EEDataFrame.h:24
void reserve(size_t isize)
T const * product() const
Definition: Handle.h:69
std::map< int, double, std::less< int > > gainConv_
static constexpr int MAXSAMPLES
Definition: EcalDataFrame.h:48
int adc() const
get the ADC sample (12 bits)
void EcalEndcapDigisValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 55 of file EcalEndcapDigisValidation.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), timingPdfMaker::histo, mps_fire::i, meEEDigiADCAnalog_, meEEDigiADCg12_, meEEDigiADCg1_, meEEDigiADCg6_, meEEDigiADCGlobal_, meEEDigiADCgS_, meEEDigiGain_, meEEDigiMultiplicityzm_, meEEDigiMultiplicityzp_, meEEDigiOccupancyzm_, meEEDigiOccupancyzp_, meEEMaximumgt100ADC_, meEEMaximumgt20ADC_, meEEnADCafterSwitch_, meEEPedestal_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

55  {
56  Char_t histo[200];
57 
58  ibooker.setCurrentFolder("EcalDigisV/EcalDigiTask");
59 
60  sprintf(histo, "EcalDigiTask Endcap occupancy z+");
61  meEEDigiOccupancyzp_ = ibooker.book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
62 
63  sprintf(histo, "EcalDigiTask Endcap occupancy z-");
64  meEEDigiOccupancyzm_ = ibooker.book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
65 
66  sprintf(histo, "EcalDigiTask Endcap multiplicity z+");
67  meEEDigiMultiplicityzp_ = ibooker.book1D(histo, histo, 100, 0., 7324.);
68 
69  sprintf(histo, "EcalDigiTask Endcap multiplicity z-");
70  meEEDigiMultiplicityzm_ = ibooker.book1D(histo, histo, 100, 0., 7324.);
71 
72  sprintf(histo, "EcalDigiTask Endcap global pulse shape");
73  meEEDigiADCGlobal_ = ibooker.bookProfile(histo, histo, 10, 0, 10, 10000, 0., 1000.);
74 
75  for (int i = 0; i < 10; i++) {
76  sprintf(histo, "EcalDigiTask Endcap analog pulse %02d", i + 1);
77  meEEDigiADCAnalog_[i] = ibooker.book1D(histo, histo, 4000, 0., 400.);
78 
79  sprintf(histo, "EcalDigiTask Endcap ADC pulse %02d Gain 0 - Saturated", i + 1);
80  meEEDigiADCgS_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
81 
82  sprintf(histo, "EcalDigiTask Endcap ADC pulse %02d Gain 1", i + 1);
83  meEEDigiADCg1_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
84 
85  sprintf(histo, "EcalDigiTask Endcap ADC pulse %02d Gain 6", i + 1);
86  meEEDigiADCg6_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
87 
88  sprintf(histo, "EcalDigiTask Endcap ADC pulse %02d Gain 12", i + 1);
89  meEEDigiADCg12_[i] = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
90 
91  sprintf(histo, "EcalDigiTask Endcap gain pulse %02d", i + 1);
92  meEEDigiGain_[i] = ibooker.book1D(histo, histo, 4, 0, 4);
93  }
94 
95  sprintf(histo, "EcalDigiTask Endcap pedestal for pre-sample");
96  meEEPedestal_ = ibooker.book1D(histo, histo, 4096, -0.5, 4095.5);
97 
98  sprintf(histo, "EcalDigiTask Endcap maximum position gt 100 ADC");
99  meEEMaximumgt100ADC_ = ibooker.book1D(histo, histo, 10, 0., 10.);
100 
101  sprintf(histo, "EcalDigiTask Endcap maximum position gt 20 ADC");
102  meEEMaximumgt20ADC_ = ibooker.book1D(histo, histo, 10, 0., 10.);
103 
104  sprintf(histo, "EcalDigiTask Endcap ADC counts after gain switch");
105  meEEnADCafterSwitch_ = ibooker.book1D(histo, histo, 10, 0., 10.);
106 }
MonitorElement * meEEDigiADCAnalog_[10]
MonitorElement * meEEDigiADCg12_[10]
void EcalEndcapDigisValidation::checkCalibrations ( edm::EventSetup const &  c)
protected

Definition at line 259 of file EcalEndcapDigisValidation.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().

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

Reimplemented from DQMEDAnalyzer.

Definition at line 108 of file EcalEndcapDigisValidation.cc.

References checkCalibrations().

Member Data Documentation

double EcalEndcapDigisValidation::barrelADCtoGeV_
private

Definition at line 62 of file EcalEndcapDigisValidation.h.

Referenced by checkCalibrations(), and EcalEndcapDigisValidation().

edm::EDGetTokenT<EEDigiCollection> EcalEndcapDigisValidation::EEdigiCollectionToken_
private

Definition at line 58 of file EcalEndcapDigisValidation.h.

Referenced by analyze().

double EcalEndcapDigisValidation::endcapADCtoGeV_
private
std::map<int, double, std::less<int> > EcalEndcapDigisValidation::gainConv_
private
MonitorElement* EcalEndcapDigisValidation::meEEDigiADCAnalog_[10]
private

Definition at line 73 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiADCg12_[10]
private

Definition at line 78 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiADCg1_[10]
private

Definition at line 76 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiADCg6_[10]
private

Definition at line 77 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiADCGlobal_
private

Definition at line 71 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiADCgS_[10]
private

Definition at line 75 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiGain_[10]
private

Definition at line 80 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiMultiplicityzm_
private

Definition at line 69 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiMultiplicityzp_
private

Definition at line 68 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiOccupancyzm_
private

Definition at line 66 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEDigiOccupancyzp_
private

Definition at line 65 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEMaximumgt100ADC_
private

Definition at line 84 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEMaximumgt20ADC_
private

Definition at line 86 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEnADCafterSwitch_
private

Definition at line 88 of file EcalEndcapDigisValidation.h.

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

MonitorElement* EcalEndcapDigisValidation::meEEPedestal_
private

Definition at line 82 of file EcalEndcapDigisValidation.h.

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

std::string EcalEndcapDigisValidation::outputFile_
private

Definition at line 56 of file EcalEndcapDigisValidation.h.

bool EcalEndcapDigisValidation::verbose_
private

Definition at line 54 of file EcalEndcapDigisValidation.h.

Referenced by EcalEndcapDigisValidation().