CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CSCCLCTDigiValidation.cc
Go to the documentation of this file.
4 
8 
9 
10 
12  const edm::InputTag & inputTag,
14 : CSCBaseValidation(dbe, inputTag),
15  theTimeBinPlots(),
16  theNDigisPerLayerPlots(),
17  theNDigisPerEventPlot( dbe_->book1D("CSCCLCTDigisPerEvent", "CSC CLCT Digis per event", 100, 0, 100) )
18 {
19  clcts_Token_ = iC.consumes<CSCCLCTDigiCollection> (inputTag);
20 
21  for(int i = 0; i < 10; ++i)
22  {
23  char title1[200], title2[200];
24  sprintf(title1, "CSCCLCTDigiTimeType%d", i+1);
25  sprintf(title2, "CSCCLCTDigisPerLayerType%d", i+1);
26  theTimeBinPlots[i] = dbe_->book1D(title1, title1, 20, 0, 20);
27  theNDigisPerLayerPlots[i] = dbe_->book1D(title2, title2, 100, 0, 20);
28  }
29 }
30 
31 
32 
34 {
35 
36 // for(int i = 0; i < 10; ++i)
37 // {
38 // edm::LogInfo("CSCDigiValidation") << "Mean of " << theTimeBinPlots[i]->getName()
39 // << " is " << theTimeBinPlots[i]->getMean()
40 // << " +/- " << theTimeBinPlots[i]->getRMS();
41 // }
42 
43 }
44 
45 
47 {
49 
50  e.getByToken(clcts_Token_, clcts);
51  if (!clcts.isValid()) {
52  edm::LogError("CSCDigiDump") << "Cannot get clcts by label " << theInputTag.encode();
53  }
54 
55  unsigned nDigisPerEvent = 0;
56 
57  for (CSCCLCTDigiCollection::DigiRangeIterator j=clcts->begin(); j!=clcts->end(); j++) {
58  std::vector<CSCCLCTDigi>::const_iterator beginDigi = (*j).second.first;
59  std::vector<CSCCLCTDigi>::const_iterator endDigi = (*j).second.second;
60  CSCDetId detId((*j).first.rawId());
61  int chamberType = detId.iChamberType();
62 
63  int nDigis = endDigi-beginDigi;
64  nDigisPerEvent += nDigis;
65  theNDigisPerLayerPlots[chamberType-1]->Fill(nDigis);
66 
67  for( std::vector<CSCCLCTDigi>::const_iterator digiItr = beginDigi;
68  digiItr != endDigi; ++digiItr)
69  {
70  theTimeBinPlots[chamberType-1]->Fill(digiItr->getBX());
71  }
72 
73  }
74 }
int i
Definition: DBlmapReader.cc:9
edm::InputTag theInputTag
MonitorElement * theNDigisPerLayerPlots[10]
void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:942
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
MonitorElement * theTimeBinPlots[10]
std::string encode() const
Definition: InputTag.cc:164
CSCCLCTDigiValidation(DQMStore *dbe, const edm::InputTag &inputTag, edm::ConsumesCollector &&iC)
void Fill(long long x)
int j
Definition: DBlmapReader.cc:9
bool isValid() const
Definition: HandleBase.h:76
DQMStore * dbe_
unsigned short iChamberType()
Definition: CSCDetId.h:120
edm::EDGetTokenT< CSCCLCTDigiCollection > clcts_Token_