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 }
L1TCSCTPG::nev_
int nev_
Definition: L1TCSCTPG.h:65
L1TCSCTPG::~L1TCSCTPG
~L1TCSCTPG() override
Definition: L1TCSCTPG.cc:33
L1TCSCTPG::csctpgbx
MonitorElement * csctpgbx
Definition: L1TCSCTPG.h:63
L1TCSCTPG::csctpgpattern
MonitorElement * csctpgpattern
Definition: L1TCSCTPG.h:57
edm::Run
Definition: Run.h:45
L1TCSCTPG::verbose_
bool verbose_
Definition: L1TCSCTPG.h:67
edm
HLT enums.
Definition: AlignableModifier.h:19
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::LogInfo
Definition: MessageLogger.h:254
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::Handle< CSCCorrelatedLCTDigiCollection >
L1TCSCTPG::csctpgstriptype
MonitorElement * csctpgstriptype
Definition: L1TCSCTPG.h:61
MuonDigiCollection::const_iterator
std::vector< DigiType >::const_iterator const_iterator
Definition: MuonDigiCollection.h:94
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
L1TCSCTPG::outputFile_
std::string outputFile_
Definition: L1TCSCTPG.h:66
L1TCSCTPG::csctpgSource_
edm::InputTag csctpgSource_
Definition: L1TCSCTPG.h:70
L1TCSCTPG.h
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
edm::ParameterSet
Definition: ParameterSet.h:36
L1TCSCTPG::csctpgstrip
MonitorElement * csctpgstrip
Definition: L1TCSCTPG.h:60
L1TCSCTPG::csctpgquality
MonitorElement * csctpgquality
Definition: L1TCSCTPG.h:58
edm::EventSetup
Definition: EventSetup.h:57
CSCCorrelatedLCTDigiCollection
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
L1TCSCTPG::L1TCSCTPG
L1TCSCTPG(const edm::ParameterSet &ps)
Definition: L1TCSCTPG.cc:13
std
Definition: JetResolutionObject.h:76
L1TCSCTPG::csctpgSource_token_
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > csctpgSource_token_
Definition: L1TCSCTPG.h:71
L1TCSCTPG::csctpgwg
MonitorElement * csctpgwg
Definition: L1TCSCTPG.h:59
L1TCSCTPG::analyze
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: L1TCSCTPG.cc:48
MuonDigiCollection::Range
std::pair< const_iterator, const_iterator > Range
Definition: MuonDigiCollection.h:95
dqm::implementation::IBooker
Definition: DQMStore.h:43
L1TCSCTPG::bookHistograms
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
Definition: L1TCSCTPG.cc:35
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
DigiContainerIterator
Definition: MuonDigiCollection.h:30
edm::Event
Definition: Event.h:73
L1TCSCTPG::csctpgbend
MonitorElement * csctpgbend
Definition: L1TCSCTPG.h:62
edm::InputTag
Definition: InputTag.h:15
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37