CMS 3D CMS Logo

L1TCSCTPG.cc
Go to the documentation of this file.
1 /*
2  * \file L1TCSCTPG.cc
3  *
4  * \author J. Berryhill
5  *
6  */
7 
9 
10 using namespace std;
11 using namespace edm;
12 
14  : csctpgSource_(ps.getParameter<InputTag>("csctpgSource")),
15  csctpgSource_token_(consumes<CSCCorrelatedLCTDigiCollection>(ps.getParameter<InputTag>("csctpgSource"))) {
16  // verbosity switch
17  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
18 
19  if (verbose_)
20  cout << "L1TCSCTPG: constructor...." << endl;
21 
22  outputFile_ = ps.getUntrackedParameter<string>("outputFile", "");
23  if (!outputFile_.empty()) {
24  cout << "L1T Monitoring histograms will be saved to " << outputFile_.c_str() << endl;
25  }
26 
27  bool disable = ps.getUntrackedParameter<bool>("disableROOToutput", false);
28  if (disable) {
29  outputFile_ = "";
30  }
31 }
32 
34 
35 void L1TCSCTPG::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) {
36  nev_ = 0;
37  ibooker.setCurrentFolder("L1T/L1TCSCTPG");
38 
39  csctpgpattern = ibooker.book1D("CSC TPG hit pattern", "CSC TPG hit pattern", 8, -0.5, 7.5);
40  csctpgquality = ibooker.book1D("CSC TPG quality", "CSC TPG quality", 16, 0.5, 16.5);
41  csctpgwg = ibooker.book1D("CSC TPG wire group", "CSC TPG wire group", 116, -0.5, 115.5);
42  csctpgstrip = ibooker.book1D("CSC TPG strip", "CSC TPG strip", 160, -0.5, 159.5);
43  csctpgstriptype = ibooker.book1D("CSC TPG strip type", "CSC TPG strip type", 2, 0.5, 1.5);
44  csctpgbend = ibooker.book1D("CSC TPG bend", "CSC TPG bend", 3, 0.5, 2.5);
45  csctpgbx = ibooker.book1D("CSC TPG bx", "CSC TPG bx", 20, -0.5, 19.5);
46 }
47 
48 void L1TCSCTPG::analyze(const Event& e, const EventSetup& c) {
49  nev_++;
50  if (verbose_)
51  cout << "L1TCSCTPG: analyze...." << endl;
52 
54  e.getByToken(csctpgSource_token_, pCSCTPGcorrlcts);
55 
56  if (!pCSCTPGcorrlcts.isValid()) {
57  edm::LogInfo("DataNotFound") << "can't find CSCCorrelatedLCTDigiCollection with label " << csctpgSource_.label();
58  return;
59  }
60 
61  for (CSCCorrelatedLCTDigiCollection::DigiRangeIterator cscItr1 = pCSCTPGcorrlcts->begin();
62  cscItr1 != pCSCTPGcorrlcts->end();
63  cscItr1++) {
64  CSCCorrelatedLCTDigiCollection::Range range1 = pCSCTPGcorrlcts->get((*cscItr1).first);
65  for (CSCCorrelatedLCTDigiCollection::const_iterator lctItr1 = range1.first; lctItr1 != range1.second; lctItr1++) {
66  csctpgpattern->Fill(lctItr1->getCLCTPattern());
67  if (verbose_) {
68  std::cout << "CSC TPG CLCT pattern " << lctItr1->getCLCTPattern() << std::endl;
69  }
70 
71  csctpgquality->Fill(lctItr1->getQuality());
72  if (verbose_) {
73  std::cout << "CSC LCT quality " << lctItr1->getQuality() << std::endl;
74  }
75 
76  csctpgwg->Fill(lctItr1->getKeyWG());
77  if (verbose_) {
78  std::cout << "CSC LCT wire group " << lctItr1->getKeyWG() << std::endl;
79  }
80 
81  csctpgstrip->Fill(lctItr1->getStrip());
82  if (verbose_) {
83  std::cout << "CSC LCT strip " << lctItr1->getStrip() << std::endl;
84  }
85 
86  csctpgstriptype->Fill(lctItr1->getStripType());
87  if (verbose_) {
88  std::cout << "CSC LCT strip type" << lctItr1->getStripType() << std::endl;
89  }
90 
91  csctpgbend->Fill(lctItr1->getBend());
92  if (verbose_) {
93  std::cout << "CSC LCT bend " << lctItr1->getBend() << std::endl;
94  }
95 
96  csctpgbx->Fill(lctItr1->getBX());
97  if (verbose_) {
98  std::cout << "CSC LCT bx " << lctItr1->getBX() << std::endl;
99  }
100  }
101  }
102 }
MonitorElement * csctpgwg
Definition: L1TCSCTPG.h:58
L1TCSCTPG(const edm::ParameterSet &ps)
Definition: L1TCSCTPG.cc:13
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * csctpgstrip
Definition: L1TCSCTPG.h:59
~L1TCSCTPG() override
Definition: L1TCSCTPG.cc:33
std::string const & label() const
Definition: InputTag.h:36
T getUntrackedParameter(std::string const &, T const &) const
void Fill(long long x)
edm::InputTag csctpgSource_
Definition: L1TCSCTPG.h:69
MonitorElement * csctpgbend
Definition: L1TCSCTPG.h:61
MonitorElement * csctpgbx
Definition: L1TCSCTPG.h:62
int nev_
Definition: L1TCSCTPG.h:64
Log< level::Info, false > LogInfo
MonitorElement * csctpgquality
Definition: L1TCSCTPG.h:57
std::pair< const_iterator, const_iterator > Range
std::vector< DigiType >::const_iterator const_iterator
bool isValid() const
Definition: HandleBase.h:70
HLT enums.
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: L1TCSCTPG.cc:48
bool verbose_
Definition: L1TCSCTPG.h:66
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
Definition: L1TCSCTPG.cc:35
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > csctpgSource_token_
Definition: L1TCSCTPG.h:70
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 * csctpgstriptype
Definition: L1TCSCTPG.h:60
std::string outputFile_
Definition: L1TCSCTPG.h:65
MonitorElement * csctpgpattern
Definition: L1TCSCTPG.h:56
Definition: Run.h:45