CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
ZDCDigiStudy Class Reference

#include <ZDCDigiStudy.h>

Inheritance diagram for ZDCDigiStudy:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args...> edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 ZDCDigiStudy (const edm::ParameterSet &ps)
 
 ~ZDCDigiStudy () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
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::Accumulator, Args...>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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 (const edm::Event &e, const edm::EventSetup &c) override
 
void dqmEndRun (const edm::Run &run, const edm::EventSetup &c) override
 
int FillHitValHist (int side, int section, int channel, double energy, double time)
 
- Protected Member Functions inherited from DQMOneEDAnalyzer<>
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
- 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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Private Attributes

bool checkHit_
 
MonitorElementmeZdcfCNEMvHAD
 
MonitorElementmeZdcfCNHAD
 
MonitorElementmeZdcfCNTOT
 
MonitorElementmeZdcfCPEMvHAD
 
MonitorElementmeZdcfCPHAD
 
MonitorElementmeZdcfCPTOT
 
MonitorElementmeZdcNEM1fCvsTS
 
MonitorElementmeZdcNEM2fCvsTS
 
MonitorElementmeZdcNEM3fCvsTS
 
MonitorElementmeZdcNEM4fCvsTS
 
MonitorElementmeZdcNEM5fCvsTS
 
MonitorElementmeZdcNHAD1fCvsTS
 
MonitorElementmeZdcNHAD2fCvsTS
 
MonitorElementmeZdcNHAD3fCvsTS
 
MonitorElementmeZdcNHAD4fCvsTS
 
MonitorElementmeZdcPEM1fCvsTS
 
MonitorElementmeZdcPEM2fCvsTS
 
MonitorElementmeZdcPEM3fCvsTS
 
MonitorElementmeZdcPEM4fCvsTS
 
MonitorElementmeZdcPEM5fCvsTS
 
MonitorElementmeZdcPHAD1fCvsTS
 
MonitorElementmeZdcPHAD2fCvsTS
 
MonitorElementmeZdcPHAD3fCvsTS
 
MonitorElementmeZdcPHAD4fCvsTS
 
std::string outFile_
 
edm::EDGetTokenT
< ZDCDigiCollection
tok_zdc_
 
bool verbose_
 
std::string zdcHits
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
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 DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 44 of file ZDCDigiStudy.h.

Constructor & Destructor Documentation

ZDCDigiStudy::ZDCDigiStudy ( const edm::ParameterSet ps)

Definition at line 26 of file ZDCDigiStudy.cc.

References checkHit_, edm::ParameterSet::getUntrackedParameter(), HLT_FULL_cff::InputTag, outFile_, AlCaHLTBitMon_QueryRunRegistry::string, tok_zdc_, verbose_, and zdcHits.

26  {
27  zdcHits = ps.getUntrackedParameter<std::string>("HitCollection", "ZdcHits");
28  outFile_ = ps.getUntrackedParameter<std::string>("outputFile", "zdcHitStudy.root");
29  verbose_ = ps.getUntrackedParameter<bool>("Verbose", false);
30  checkHit_ = true;
31 
32  tok_zdc_ = consumes<ZDCDigiCollection>(edm::InputTag("simHcalUnsuppressedDigis"));
33 
34  edm::LogInfo("ZDCDigiStudy")
35  //std::cout
36  << " Hits: " << zdcHits << " / " << checkHit_ << " Output: " << outFile_;
37 }
T getUntrackedParameter(std::string const &, T const &) const
std::string zdcHits
Definition: ZDCDigiStudy.h:64
std::string outFile_
Definition: ZDCDigiStudy.h:64
Log< level::Info, false > LogInfo
edm::EDGetTokenT< ZDCDigiCollection > tok_zdc_
Definition: ZDCDigiStudy.h:67
ZDCDigiStudy::~ZDCDigiStudy ( )
override

Definition at line 39 of file ZDCDigiStudy.cc.

39 {}

Member Function Documentation

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

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 194 of file ZDCDigiStudy.cc.

References HcalZDCDetId::channel(), dqm::impl::MonitorElement::Fill(), edm::Event::getByToken(), mps_fire::i, ZDCDataFrame::id(), meZdcfCNEMvHAD, meZdcfCNHAD, meZdcfCNTOT, meZdcfCPEMvHAD, meZdcfCPHAD, meZdcfCPTOT, meZdcNEM1fCvsTS, meZdcNEM2fCvsTS, meZdcNEM3fCvsTS, meZdcNEM4fCvsTS, meZdcNEM5fCvsTS, meZdcNHAD1fCvsTS, meZdcNHAD2fCvsTS, meZdcNHAD3fCvsTS, meZdcNHAD4fCvsTS, meZdcPEM1fCvsTS, meZdcPEM2fCvsTS, meZdcPEM3fCvsTS, meZdcPEM4fCvsTS, meZdcPEM5fCvsTS, meZdcPHAD1fCvsTS, meZdcPHAD2fCvsTS, meZdcPHAD3fCvsTS, meZdcPHAD4fCvsTS, HcalQIESample::nominal_fC(), ZDCDataFrame::sample(), HcalZDCDetId::section(), ZDCDataFrame::size(), tok_zdc_, and HcalZDCDetId::zside().

194  {
196 
197  using namespace edm;
198  bool gotZDCDigis = true;
199 
200  Handle<ZDCDigiCollection> zdchandle;
201  if (!(iEvent.getByToken(tok_zdc_, zdchandle))) {
202  gotZDCDigis = false; //this is a boolean set up to check if there are ZDCDigis in the input root file
203  }
204  if (!(zdchandle.isValid())) {
205  gotZDCDigis = false; //if it is not there, leave it false
206  }
207 
208  double totalPHADCharge = 0;
209  double totalNHADCharge = 0;
210  double totalPEMCharge = 0;
211  double totalNEMCharge = 0;
212  double totalPCharge = 0;
213  double totalNCharge = 0;
214 
216  if (gotZDCDigis == true) {
217  for (ZDCDigiCollection::const_iterator zdc = zdchandle->begin(); zdc != zdchandle->end(); ++zdc) {
218  const ZDCDataFrame digi = (const ZDCDataFrame)(*zdc);
219  //std::cout <<"CHANNEL = "<<zdc->id().channel()<<std::endl;
220 
222 
223  if (digi.id().section() == 2) { // require HAD
224  if (digi.id().zside() == 1) { // require POS
225  for (int i = 0; i < digi.size(); ++i) // loop over all 10 TS because each digi has 10 entries
226  {
227  if (digi.id().channel() == 1) { //here i specify PHAD1
229  i, digi.sample(i).nominal_fC()); //filling the plot name with the nominal fC value for each TS
230  if (i == 0)
231  meZdcPHAD1fCvsTS->Fill(-1, 1); // on first iteration of loop, increment underflow bin
232  } //NEW AVERAGE Thingy
233  if (digi.id().channel() == 2) {
235  if (i == 0)
236  meZdcPHAD2fCvsTS->Fill(-1, 1);
237  }
238  if (digi.id().channel() == 3) {
240  if (i == 0)
241  meZdcPHAD3fCvsTS->Fill(-1, 1);
242  }
243  if (digi.id().channel() == 4) {
245  if (i == 0)
246  meZdcPHAD4fCvsTS->Fill(-1, 1);
247  }
248  if (i == 4 || i == 5 || i == 6)
249  totalPHADCharge += digi.sample(i).nominal_fC();
250  } // loop over all (10) TS for the given digi
251  } else {
252  for (int i = 0; i < digi.size(); ++i) {
253  if (digi.id().channel() == 1) {
255  if (i == 0)
256  meZdcNHAD1fCvsTS->Fill(-1, 1);
257  }
258  if (digi.id().channel() == 2) {
260  if (i == 0)
261  meZdcNHAD2fCvsTS->Fill(-1, 1);
262  }
263  if (digi.id().channel() == 3) {
265  if (i == 0)
266  meZdcNHAD3fCvsTS->Fill(-1, 1);
267  }
268  if (digi.id().channel() == 4) {
270  if (i == 0)
271  meZdcNHAD4fCvsTS->Fill(-1, 1);
272  }
273  if (i == 4 || i == 5 || i == 6)
274  totalNHADCharge += digi.sample(i).nominal_fC();
275  } //loop over all 10 TS
276  } //Requires NHAd
277  } //Requires HAD sections
279  if (digi.id().section() ==
280  1) { //require EM....here i do the smae thing that i did above but now for P/N EM sections
281  if (digi.id().zside() == 1) { //require pos
282  for (int i = 0; i < digi.size(); ++i) {
283  if (digi.id().channel() == 1) {
285  if (i == 0)
286  meZdcPEM1fCvsTS->Fill(-1, 1);
287  }
288  if (digi.id().channel() == 2) {
290  if (i == 0)
291  meZdcPEM2fCvsTS->Fill(-1, 1);
292  }
293  if (digi.id().channel() == 3) {
295  if (i == 0)
296  meZdcPEM3fCvsTS->Fill(-1, 1);
297  }
298  if (digi.id().channel() == 4) {
300  if (i == 0)
301  meZdcPEM4fCvsTS->Fill(-1, 1);
302  }
303  if (digi.id().channel() == 5) {
305  if (i == 0)
306  meZdcPEM5fCvsTS->Fill(-1, 1);
307  }
308  if (i == 4 || i == 5 || i == 6)
309  totalPEMCharge += digi.sample(i).nominal_fC();
310  }
311  } else {
312  for (int i = 0; i < digi.size(); ++i) {
313  if (digi.id().channel() == 1) {
315  if (i == 0)
316  meZdcNEM1fCvsTS->Fill(-1, 1);
317  }
318  if (digi.id().channel() == 2) {
320  if (i == 0)
321  meZdcNEM2fCvsTS->Fill(-1, 1);
322  }
323  if (digi.id().channel() == 3) {
325  if (i == 0)
326  meZdcNEM3fCvsTS->Fill(-1, 1);
327  }
328  if (digi.id().channel() == 4) {
330  if (i == 0)
331  meZdcNEM4fCvsTS->Fill(-1, 1);
332  }
333  if (digi.id().channel() == 5) {
335  if (i == 0)
336  meZdcNEM5fCvsTS->Fill(-1, 1);
337  }
338  if (i == 4 || i == 5 || i == 6)
339  totalNEMCharge += digi.sample(i).nominal_fC();
340  }
341  }
342  }
343 
344  totalPCharge = totalPHADCharge + (0.1) * totalPEMCharge;
345  totalNCharge = totalNHADCharge + (0.1) * totalNEMCharge;
346 
347  /* std::cout <<"CHANNEL = "<<digi.id().channel()<<std::endl;
348  for (int i=0;i<digi.size();++i)
349  std::cout <<"SAMPLE = "<<i<<" ADC = "<<digi.sample(i).adc()<<" fC = "<<digi.sample(i).nominal_fC()<<std::endl;
350  */
351  // digi[i] should be the sample as digi.sample(i), I think
352  } // loop on all (22) ZDC digis
353  }
355 
356  // Now fill total charge histogram
357  meZdcfCPEMvHAD->Fill(totalPCharge, totalPEMCharge);
358  meZdcfCNEMvHAD->Fill(totalNCharge, totalNEMCharge);
359  meZdcfCPHAD->Fill(totalPHADCharge);
360  meZdcfCNHAD->Fill(totalNHADCharge);
361  meZdcfCNTOT->Fill(totalNCharge);
362  meZdcfCPTOT->Fill(totalPCharge);
363 }
int zside() const
get the z-side of the cell (1/-1)
Definition: HcalZDCDetId.h:39
std::vector< T >::const_iterator const_iterator
MonitorElement * meZdcfCPTOT
Definition: ZDCDigiStudy.h:73
MonitorElement * meZdcPEM1fCvsTS
Definition: ZDCDigiStudy.h:78
MonitorElement * meZdcfCPEMvHAD
Definition: ZDCDigiStudy.h:76
MonitorElement * meZdcPHAD2fCvsTS
Definition: ZDCDigiStudy.h:84
MonitorElement * meZdcfCNTOT
Definition: ZDCDigiStudy.h:75
MonitorElement * meZdcPHAD3fCvsTS
Definition: ZDCDigiStudy.h:85
MonitorElement * meZdcfCPHAD
Definition: ZDCDigiStudy.h:72
void Fill(long long x)
MonitorElement * meZdcNHAD2fCvsTS
Definition: ZDCDigiStudy.h:93
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meZdcPEM3fCvsTS
Definition: ZDCDigiStudy.h:80
const HcalQIESample & sample(int i) const
access a sample
Definition: ZDCDataFrame.h:39
MonitorElement * meZdcNHAD3fCvsTS
Definition: ZDCDigiStudy.h:94
MonitorElement * meZdcPEM2fCvsTS
Definition: ZDCDigiStudy.h:79
MonitorElement * meZdcNEM2fCvsTS
Definition: ZDCDigiStudy.h:88
MonitorElement * meZdcNEM4fCvsTS
Definition: ZDCDigiStudy.h:90
MonitorElement * meZdcNEM3fCvsTS
Definition: ZDCDigiStudy.h:89
constexpr double nominal_fC() const
get the nominal FC (no calibrations applied)
Definition: HcalQIESample.h:45
MonitorElement * meZdcPHAD1fCvsTS
Definition: ZDCDigiStudy.h:83
MonitorElement * meZdcNHAD4fCvsTS
Definition: ZDCDigiStudy.h:95
const HcalZDCDetId & id() const
Definition: ZDCDataFrame.h:22
int channel() const
get the channel
Definition: HcalZDCDetId.cc:63
int size() const
total number of samples in the digi
Definition: ZDCDataFrame.h:26
MonitorElement * meZdcNHAD1fCvsTS
Definition: ZDCDigiStudy.h:92
Section section() const
get the section
Definition: HcalZDCDetId.cc:44
MonitorElement * meZdcfCNHAD
Definition: ZDCDigiStudy.h:74
MonitorElement * meZdcfCNEMvHAD
Definition: ZDCDigiStudy.h:77
MonitorElement * meZdcPHAD4fCvsTS
Definition: ZDCDigiStudy.h:86
MonitorElement * meZdcPEM4fCvsTS
Definition: ZDCDigiStudy.h:81
edm::EDGetTokenT< ZDCDigiCollection > tok_zdc_
Definition: ZDCDigiStudy.h:67
MonitorElement * meZdcPEM5fCvsTS
Definition: ZDCDigiStudy.h:82
MonitorElement * meZdcNEM1fCvsTS
Definition: ZDCDigiStudy.h:87
MonitorElement * meZdcNEM5fCvsTS
Definition: ZDCDigiStudy.h:91
void ZDCDigiStudy::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMOneEDAnalyzer<>.

Definition at line 41 of file ZDCDigiStudy.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), checkHit_, meZdcfCNEMvHAD, meZdcfCNHAD, meZdcfCNTOT, meZdcfCPEMvHAD, meZdcfCPHAD, meZdcfCPTOT, meZdcNEM1fCvsTS, meZdcNEM2fCvsTS, meZdcNEM3fCvsTS, meZdcNEM4fCvsTS, meZdcNEM5fCvsTS, meZdcNHAD1fCvsTS, meZdcNHAD2fCvsTS, meZdcNHAD3fCvsTS, meZdcNHAD4fCvsTS, meZdcPEM1fCvsTS, meZdcPEM2fCvsTS, meZdcPEM3fCvsTS, meZdcPEM4fCvsTS, meZdcPEM5fCvsTS, meZdcPHAD1fCvsTS, meZdcPHAD2fCvsTS, meZdcPHAD3fCvsTS, meZdcPHAD4fCvsTS, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::impl::MonitorElement::setOption(), and dqm::implementation::IBooker::setScope().

41  {
42  ib.setCurrentFolder("ZDCDigiValidation");
43  // run histos only since there is dqmEndRun processing.
44  ib.setScope(MonitorElementData::Scope::RUN);
45 
46  //Histograms for Hits
48  //# Below we are filling the histograms made in the .h file. The syntax is as follows: #
49  //# plot_code_name = dbe_->TypeofPlot[(1,2,3)-D,(F,I,D)]("Name as it will appear","Title",axis options); #
50  //# They will be stored in the TFile subdirectory set by : dbe_->setCurrentFolder("FolderIwant") #
51  //# axis options are like (#ofbins,min,max) #
53 
54  if (checkHit_) {
56 
58  ib.setCurrentFolder("ZDCDigiValidation/ZDC_Digis/1D_fC");
59  meZdcfCPHAD = ib.book1D("PHAD_TotalfC", "PZDC_HAD_TotalfC", 1000, -50, 10000);
60  meZdcfCPHAD->setAxisTitle("Counts", 2);
61  meZdcfCPHAD->setAxisTitle("fC", 1);
63  meZdcfCPTOT = ib.book1D("PZDC_TotalfC", "PZDC_TotalfC", 1000, -50, 20000);
64  meZdcfCPTOT->setAxisTitle("Counts", 2);
65  meZdcfCPTOT->setAxisTitle("fC", 1);
67  meZdcfCNHAD = ib.book1D("NHAD_TotalfC", "NZDC_HAD_TotalfC", 1000, -50, 10000);
68  meZdcfCNHAD->setAxisTitle("Counts", 2);
69  meZdcfCNHAD->setAxisTitle("fC", 1);
71  meZdcfCNTOT = ib.book1D("NZDC_TotalfC", "NZDC_TotalfC", 1000, -50, 20000);
72  meZdcfCNTOT->setAxisTitle("Counts", 2);
73  meZdcfCNTOT->setAxisTitle("fC", 1);
75 
77  ib.setCurrentFolder("ZDCDigiValidation/ZDC_Digis/fCvsTS/PZDC");
78 
80  meZdcPEM1fCvsTS = ib.book1D("PEM1_fCvsTS", "P-EM1_AveragefC_vsTS", 10, 0, 9);
81  meZdcPEM1fCvsTS->setAxisTitle("fC", 2);
82  meZdcPEM1fCvsTS->setAxisTitle("TS", 1);
85  meZdcPEM2fCvsTS = ib.book1D("PEM2_fCvsTS", "P-EM2_AveragefC_vsTS", 10, 0, 9);
86  meZdcPEM2fCvsTS->setAxisTitle("fC", 2);
87  meZdcPEM2fCvsTS->setAxisTitle("TS", 1);
90  meZdcPEM3fCvsTS = ib.book1D("PEM3_fCvsTS", "P-EM3_AveragefC_vsTS", 10, 0, 9);
91  meZdcPEM3fCvsTS->setAxisTitle("fC", 2);
92  meZdcPEM3fCvsTS->setAxisTitle("TS", 1);
95  meZdcPEM4fCvsTS = ib.book1D("PEM4_fCvsTS", "P-EM4_AveragefC_vsTS", 10, 0, 9);
96  meZdcPEM4fCvsTS->setAxisTitle("fC", 2);
97  meZdcPEM4fCvsTS->setAxisTitle("TS", 1);
100  meZdcPEM5fCvsTS = ib.book1D("PEM5_fCvsTS", "P-EM5_AveragefC_vsTS", 10, 0, 9);
101  meZdcPEM5fCvsTS->setAxisTitle("fC", 2);
102  meZdcPEM5fCvsTS->setAxisTitle("TS", 1);
105  meZdcPHAD1fCvsTS = ib.book1D("PHAD1_fCvsTS", "P-HAD1_AveragefC_vsTS", 10, 0, 9);
106  meZdcPHAD1fCvsTS->setAxisTitle("fC", 2);
107  meZdcPHAD1fCvsTS->setAxisTitle("TS", 1);
110  meZdcPHAD2fCvsTS = ib.book1D("PHAD2_fCvsTS", "P-HAD2_AveragefC_vsTS", 10, 0, 9);
111  meZdcPHAD2fCvsTS->setAxisTitle("fC", 2);
112  meZdcPHAD2fCvsTS->setAxisTitle("TS", 1);
115  meZdcPHAD3fCvsTS = ib.book1D("PHAD3_fCvsTS", "P-HAD3_AveragefC_vsTS", 10, 0, 9);
116  meZdcPHAD3fCvsTS->setAxisTitle("fC", 2);
117  meZdcPHAD3fCvsTS->setAxisTitle("TS", 1);
120  meZdcPHAD4fCvsTS = ib.book1D("PHAD4_fCvsTS", "P-HAD4_AveragefC_vsTS", 10, 0, 9);
121  meZdcPHAD4fCvsTS->setAxisTitle("fC", 2);
122  meZdcPHAD4fCvsTS->setAxisTitle("TS", 1);
124  ib.setCurrentFolder("ZDCDigiValidation/ZDC_Digis/fCvsTS/NZDC");
125 
127  meZdcNEM1fCvsTS = ib.book1D("NEM1_fCvsTS", "N-EM1_AveragefC_vsTS", 10, 0, 9);
128  meZdcNEM1fCvsTS->setAxisTitle("fC", 2);
129  meZdcNEM1fCvsTS->setAxisTitle("TS", 1);
132  meZdcNEM2fCvsTS = ib.book1D("NEM2_fCvsTS", "N-EM2_AveragefC_vsTS", 10, 0, 9);
133  meZdcNEM2fCvsTS->setAxisTitle("fC", 2);
134  meZdcNEM2fCvsTS->setAxisTitle("TS", 1);
137  meZdcNEM3fCvsTS = ib.book1D("NEM3_fCvsTS", "N-EM3_AveragefC_vsTS", 10, 0, 9);
138  meZdcNEM3fCvsTS->setAxisTitle("fC", 2);
139  meZdcNEM3fCvsTS->setAxisTitle("TS", 1);
142  meZdcNEM4fCvsTS = ib.book1D("NEM4_fCvsTS", "N-EM4_AveragefC_vsTS", 10, 0, 9);
143  meZdcNEM4fCvsTS->setAxisTitle("fC", 2);
144  meZdcNEM4fCvsTS->setAxisTitle("TS", 1);
147  meZdcNEM5fCvsTS = ib.book1D("NEM5_fCvsTS", "N-EM5_AveragefC_vsTS", 10, 0, 9);
148  meZdcNEM5fCvsTS->setAxisTitle("fC", 2);
149  meZdcNEM5fCvsTS->setAxisTitle("TS", 1);
152  meZdcNHAD1fCvsTS = ib.book1D("NHAD1_fCvsTS", "N-HAD1_AveragefC_vsTS", 10, 0, 9);
153  meZdcNHAD1fCvsTS->setAxisTitle("fC", 2);
154  meZdcNHAD1fCvsTS->setAxisTitle("TS", 1);
157  meZdcNHAD2fCvsTS = ib.book1D("NHAD2_fCvsTS", "N-HAD2_AveragefC_vsTS", 10, 0, 9);
158  meZdcNHAD2fCvsTS->setAxisTitle("fC", 2);
159  meZdcNHAD2fCvsTS->setAxisTitle("TS", 1);
162  meZdcNHAD3fCvsTS = ib.book1D("NHAD3_fCvsTS", "N-HAD3_AveragefC_vsTS", 10, 0, 9);
163  meZdcNHAD3fCvsTS->setAxisTitle("fC", 2);
164  meZdcNHAD3fCvsTS->setAxisTitle("TS", 1);
167  meZdcNHAD4fCvsTS = ib.book1D("NHAD4_fCvsTS", "N-HAD4_AveragefC_vsTS", 10, 0, 9);
168  meZdcNHAD4fCvsTS->setAxisTitle("fC", 2);
169  meZdcNHAD4fCvsTS->setAxisTitle("TS", 1);
171 
173  ib.setCurrentFolder("ZDCDigiValidation/ZDC_Digis/2D_EMvHAD");
176  meZdcfCPEMvHAD = ib.book2D("PEMvPHAD", "PZDC_EMvHAD", 200, -25, 12000, 200, -25, 15000);
177  meZdcfCPEMvHAD->setAxisTitle("SumEM_fC", 2);
178  meZdcfCPEMvHAD->setAxisTitle("SumHAD_fC", 1);
179  meZdcfCPEMvHAD->setOption("colz");
181  meZdcfCNEMvHAD = ib.book2D("NEMvNHAD", "NZDC_EMvHAD", 1000, -25, 12000, 1000, -25, 15000);
182  meZdcfCNEMvHAD->setAxisTitle("SumEM_fC", 2);
183  meZdcfCNEMvHAD->setAxisTitle("SumHAD_fC", 1);
184  meZdcfCNEMvHAD->setOption("colz");
186  }
187 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
virtual void setOption(const char *option)
virtual MonitorElementData::Scope setScope(MonitorElementData::Scope newscope)
Definition: DQMStore.cc:46
MonitorElement * meZdcfCPTOT
Definition: ZDCDigiStudy.h:73
MonitorElement * meZdcPEM1fCvsTS
Definition: ZDCDigiStudy.h:78
MonitorElement * meZdcfCPEMvHAD
Definition: ZDCDigiStudy.h:76
MonitorElement * meZdcPHAD2fCvsTS
Definition: ZDCDigiStudy.h:84
MonitorElement * meZdcfCNTOT
Definition: ZDCDigiStudy.h:75
MonitorElement * meZdcPHAD3fCvsTS
Definition: ZDCDigiStudy.h:85
MonitorElement * meZdcfCPHAD
Definition: ZDCDigiStudy.h:72
MonitorElement * meZdcNHAD2fCvsTS
Definition: ZDCDigiStudy.h:93
MonitorElement * meZdcPEM3fCvsTS
Definition: ZDCDigiStudy.h:80
MonitorElement * meZdcNHAD3fCvsTS
Definition: ZDCDigiStudy.h:94
MonitorElement * meZdcPEM2fCvsTS
Definition: ZDCDigiStudy.h:79
MonitorElement * meZdcNEM2fCvsTS
Definition: ZDCDigiStudy.h:88
MonitorElement * meZdcNEM4fCvsTS
Definition: ZDCDigiStudy.h:90
MonitorElement * meZdcNEM3fCvsTS
Definition: ZDCDigiStudy.h:89
MonitorElement * meZdcPHAD1fCvsTS
Definition: ZDCDigiStudy.h:83
MonitorElement * meZdcNHAD4fCvsTS
Definition: ZDCDigiStudy.h:95
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
MonitorElement * meZdcNHAD1fCvsTS
Definition: ZDCDigiStudy.h:92
MonitorElement * meZdcfCNHAD
Definition: ZDCDigiStudy.h:74
MonitorElement * meZdcfCNEMvHAD
Definition: ZDCDigiStudy.h:77
MonitorElement * meZdcPHAD4fCvsTS
Definition: ZDCDigiStudy.h:86
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * meZdcPEM4fCvsTS
Definition: ZDCDigiStudy.h:81
MonitorElement * meZdcPEM5fCvsTS
Definition: ZDCDigiStudy.h:82
MonitorElement * meZdcNEM1fCvsTS
Definition: ZDCDigiStudy.h:87
MonitorElement * meZdcNEM5fCvsTS
Definition: ZDCDigiStudy.h:91
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void ZDCDigiStudy::dqmEndRun ( const edm::Run run,
const edm::EventSetup c 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 367 of file ZDCDigiStudy.cc.

References dqm::impl::MonitorElement::getTH1F(), meZdcNEM1fCvsTS, meZdcNEM2fCvsTS, meZdcNEM3fCvsTS, meZdcNEM4fCvsTS, meZdcNEM5fCvsTS, meZdcNHAD1fCvsTS, meZdcNHAD2fCvsTS, meZdcNHAD3fCvsTS, meZdcNHAD4fCvsTS, meZdcPEM1fCvsTS, meZdcPEM2fCvsTS, meZdcPEM3fCvsTS, meZdcPEM4fCvsTS, meZdcPEM5fCvsTS, meZdcPHAD1fCvsTS, meZdcPHAD2fCvsTS, meZdcPHAD3fCvsTS, meZdcPHAD4fCvsTS, and cmsHarvester::nevents.

367  {
368  int nevents =
370  ->GetBinContent(
371  0); //grab the number of digis that were read in and stored in the underflow bin, and call them Nevents
373  ->Scale(
374  1. /
375  nevents); // divide histogram by nevents thereby creating an average..it was done this way so that in DQM when everything is done in parallel and added at the end then the average will add appropriately
376 
377  int nevents1 = (meZdcPHAD2fCvsTS->getTH1F())->GetBinContent(0);
378  (meZdcPHAD2fCvsTS->getTH1F())->Scale(1. / nevents1);
379 
380  int nevents2 = (meZdcPHAD3fCvsTS->getTH1F())->GetBinContent(0);
381  (meZdcPHAD3fCvsTS->getTH1F())->Scale(1. / nevents2);
382 
383  int nevents3 = (meZdcPHAD4fCvsTS->getTH1F())->GetBinContent(0);
384  (meZdcPHAD4fCvsTS->getTH1F())->Scale(1. / nevents3);
385 
386  int nevents4 = (meZdcNHAD1fCvsTS->getTH1F())->GetBinContent(0);
387  (meZdcNHAD1fCvsTS->getTH1F())->Scale(1. / nevents4);
388 
389  int nevents5 = (meZdcNHAD2fCvsTS->getTH1F())->GetBinContent(0);
390  (meZdcNHAD2fCvsTS->getTH1F())->Scale(1. / nevents5);
391 
392  int nevents6 = (meZdcNHAD3fCvsTS->getTH1F())->GetBinContent(0);
393  (meZdcNHAD3fCvsTS->getTH1F())->Scale(1. / nevents6);
394 
395  int nevents7 = (meZdcNHAD4fCvsTS->getTH1F())->GetBinContent(0);
396  (meZdcNHAD4fCvsTS->getTH1F())->Scale(1. / nevents7);
397 
398  int nevents8 = (meZdcPEM1fCvsTS->getTH1F())->GetBinContent(0);
399  (meZdcPEM1fCvsTS->getTH1F())->Scale(1. / nevents8);
400 
401  int nevents9 = (meZdcPEM2fCvsTS->getTH1F())->GetBinContent(0);
402  (meZdcPEM2fCvsTS->getTH1F())->Scale(1. / nevents9);
403 
404  int nevents10 = (meZdcPEM3fCvsTS->getTH1F())->GetBinContent(0);
405  (meZdcPEM3fCvsTS->getTH1F())->Scale(1. / nevents10);
406 
407  int nevents11 = (meZdcPEM4fCvsTS->getTH1F())->GetBinContent(0);
408  (meZdcPEM4fCvsTS->getTH1F())->Scale(1. / nevents11);
409 
410  int nevents12 = (meZdcPEM5fCvsTS->getTH1F())->GetBinContent(0);
411  (meZdcPEM5fCvsTS->getTH1F())->Scale(1. / nevents12);
412 
413  int nevents13 = (meZdcNEM1fCvsTS->getTH1F())->GetBinContent(0);
414  (meZdcNEM1fCvsTS->getTH1F())->Scale(1. / nevents13);
415 
416  int nevents14 = (meZdcNEM2fCvsTS->getTH1F())->GetBinContent(0);
417  (meZdcNEM2fCvsTS->getTH1F())->Scale(1. / nevents14);
418 
419  int nevents15 = (meZdcNEM3fCvsTS->getTH1F())->GetBinContent(0);
420  (meZdcNEM3fCvsTS->getTH1F())->Scale(1. / nevents15);
421 
422  int nevents16 = (meZdcNEM4fCvsTS->getTH1F())->GetBinContent(0);
423  (meZdcNEM4fCvsTS->getTH1F())->Scale(1. / nevents16);
424 
425  int nevents17 = (meZdcNEM5fCvsTS->getTH1F())->GetBinContent(0);
426  (meZdcNEM5fCvsTS->getTH1F())->Scale(1. / nevents17);
427 }
MonitorElement * meZdcPEM1fCvsTS
Definition: ZDCDigiStudy.h:78
MonitorElement * meZdcPHAD2fCvsTS
Definition: ZDCDigiStudy.h:84
MonitorElement * meZdcPHAD3fCvsTS
Definition: ZDCDigiStudy.h:85
MonitorElement * meZdcNHAD2fCvsTS
Definition: ZDCDigiStudy.h:93
MonitorElement * meZdcPEM3fCvsTS
Definition: ZDCDigiStudy.h:80
MonitorElement * meZdcNHAD3fCvsTS
Definition: ZDCDigiStudy.h:94
MonitorElement * meZdcPEM2fCvsTS
Definition: ZDCDigiStudy.h:79
MonitorElement * meZdcNEM2fCvsTS
Definition: ZDCDigiStudy.h:88
MonitorElement * meZdcNEM4fCvsTS
Definition: ZDCDigiStudy.h:90
MonitorElement * meZdcNEM3fCvsTS
Definition: ZDCDigiStudy.h:89
MonitorElement * meZdcPHAD1fCvsTS
Definition: ZDCDigiStudy.h:83
MonitorElement * meZdcNHAD4fCvsTS
Definition: ZDCDigiStudy.h:95
MonitorElement * meZdcNHAD1fCvsTS
Definition: ZDCDigiStudy.h:92
MonitorElement * meZdcPHAD4fCvsTS
Definition: ZDCDigiStudy.h:86
MonitorElement * meZdcPEM4fCvsTS
Definition: ZDCDigiStudy.h:81
MonitorElement * meZdcPEM5fCvsTS
Definition: ZDCDigiStudy.h:82
MonitorElement * meZdcNEM1fCvsTS
Definition: ZDCDigiStudy.h:87
MonitorElement * meZdcNEM5fCvsTS
Definition: ZDCDigiStudy.h:91
int ZDCDigiStudy::FillHitValHist ( int  side,
int  section,
int  channel,
double  energy,
double  time 
)
protected

Member Data Documentation

bool ZDCDigiStudy::checkHit_
private

Definition at line 65 of file ZDCDigiStudy.h.

Referenced by bookHistograms(), and ZDCDigiStudy().

MonitorElement* ZDCDigiStudy::meZdcfCNEMvHAD
private

Definition at line 77 of file ZDCDigiStudy.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* ZDCDigiStudy::meZdcfCNHAD
private

Definition at line 74 of file ZDCDigiStudy.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* ZDCDigiStudy::meZdcfCNTOT
private

Definition at line 75 of file ZDCDigiStudy.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* ZDCDigiStudy::meZdcfCPEMvHAD
private

Definition at line 76 of file ZDCDigiStudy.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* ZDCDigiStudy::meZdcfCPHAD
private

Definition at line 72 of file ZDCDigiStudy.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* ZDCDigiStudy::meZdcfCPTOT
private

Definition at line 73 of file ZDCDigiStudy.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* ZDCDigiStudy::meZdcNEM1fCvsTS
private

Definition at line 87 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNEM2fCvsTS
private

Definition at line 88 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNEM3fCvsTS
private

Definition at line 89 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNEM4fCvsTS
private

Definition at line 90 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNEM5fCvsTS
private

Definition at line 91 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNHAD1fCvsTS
private

Definition at line 92 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNHAD2fCvsTS
private

Definition at line 93 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNHAD3fCvsTS
private

Definition at line 94 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcNHAD4fCvsTS
private

Definition at line 95 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPEM1fCvsTS
private

Definition at line 78 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPEM2fCvsTS
private

Definition at line 79 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPEM3fCvsTS
private

Definition at line 80 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPEM4fCvsTS
private

Definition at line 81 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPEM5fCvsTS
private

Definition at line 82 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPHAD1fCvsTS
private

Definition at line 83 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPHAD2fCvsTS
private

Definition at line 84 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPHAD3fCvsTS
private

Definition at line 85 of file ZDCDigiStudy.h.

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

MonitorElement* ZDCDigiStudy::meZdcPHAD4fCvsTS
private

Definition at line 86 of file ZDCDigiStudy.h.

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

std::string ZDCDigiStudy::outFile_
private

Definition at line 64 of file ZDCDigiStudy.h.

Referenced by ZDCDigiStudy().

edm::EDGetTokenT<ZDCDigiCollection> ZDCDigiStudy::tok_zdc_
private

Definition at line 67 of file ZDCDigiStudy.h.

Referenced by analyze(), and ZDCDigiStudy().

bool ZDCDigiStudy::verbose_
private

Definition at line 65 of file ZDCDigiStudy.h.

Referenced by ZDCDigiStudy().

std::string ZDCDigiStudy::zdcHits
private

Definition at line 64 of file ZDCDigiStudy.h.

Referenced by ZDCDigiStudy().