CMS 3D CMS Logo

DQMScalInfo.cc
Go to the documentation of this file.
1 /*
2  * \file DQMDcsInfo.cc
3  * \author A.Meyer - DESY
4  * Last Update:
5  *
6  */
7 
8 #include "DQMScalInfo.h"
13 
19 
20 using namespace std;
21 using namespace edm;
22 
23 
24 // Framework
25 
26 
28 {
29  parameters_ = ps;
30 
31  scalfolder_ = parameters_.getUntrackedParameter<std::string>("dqmScalFolder", "Scal") ;
32  gtCollection_ = consumes<L1GlobalTriggerReadoutRecord>(parameters_.getUntrackedParameter<edm::InputTag>("gtCollection", edm::InputTag("gtDigis")));
33  dcsStatusCollection_ = consumes<DcsStatusCollection>(parameters_.getUntrackedParameter<edm::InputTag>("dcsStatusCollection", edm::InputTag("scalersRawToDigi")));
34  l1tscollectionToken_ = consumes<Level1TriggerScalersCollection>(parameters_.getUntrackedParameter<edm::InputTag>("l1TSCollection", edm::InputTag("scalersRawToDigi")));
35  lumicollectionToken_ = consumes<LumiScalersCollection>(parameters_.getUntrackedParameter<edm::InputTag>("lumiCollection", edm::InputTag("scalersRawToDigi")));
36 }
37 
38 DQMScalInfo::~DQMScalInfo() = default;
39 
41  edm::Run const & /* iRun */,
42  edm::EventSetup const & /* iSetup */) {
43 
44  const int maxNbins = 2001;
45 
46  // Fetch GlobalTag information and fill the string/ME.
47  ibooker.cd();
48  ibooker.setCurrentFolder(scalfolder_ +"/L1TriggerScalers/");
49  const int fracLS = 16;
50  const int maxLS = 250;
51  hlresync_ = ibooker.book1D("lresync","Orbit of last resync",fracLS*maxLS,0,maxLS*262144);
52  hlOC0_ = ibooker.book1D("lOC0","Orbit of last OC0",fracLS*maxLS,0,maxLS*262144);
53  hlTE_ = ibooker.book1D("lTE","Orbit of last TestEnable",fracLS*maxLS,0,maxLS*262144);
54  hlstart_ = ibooker.book1D("lstart","Orbit of last Start",fracLS*maxLS,0,maxLS*262144);
55  hlEC0_ = ibooker.book1D("lEC0","Orbit of last EC0",fracLS*maxLS,0,maxLS*262144);
56  hlHR_ = ibooker.book1D("lHR","Orbit of last HardReset",fracLS*maxLS,0,maxLS*262144);
57 
58  hphysTrig_ = ibooker.book1D("Physics_Triggers", "Physics Triggers", maxNbins, -0.5, double(maxNbins)-0.5);
59  hphysTrig_->setAxisTitle("Lumi Section", 1);
60 
61  ibooker.cd();
62  ibooker.setCurrentFolder(scalfolder_ +"/LumiScalers/");
63  hinstLumi_ = ibooker.book1D("Instant_Lumi", "Instant Lumi", maxNbins, -0.5, double(maxNbins)-0.5);
64 }
65 
67  makeL1Scalars(e);
68  makeLumiScalars(e);
69  return;
70 }
71 
72 void
74 {
76  e.getByToken(l1tscollectionToken_,l1ts);
78  e.getByToken(lumicollectionToken_,lumiScalers);
79 
80  auto it = l1ts->begin();
81 
82  if(l1ts->empty()) return;
83  hlresync_->Fill((*l1ts)[0].lastResync());
84  hlOC0_->Fill((*l1ts)[0].lastOrbitCounter0());
85  hlTE_->Fill((*l1ts)[0].lastTestEnable());
86  hlstart_->Fill((*l1ts)[0].lastStart());
87  hlEC0_->Fill((*l1ts)[0].lastEventCounter0());
88  hlHR_->Fill((*l1ts)[0].lastHardReset());
89 
90  unsigned int lumisection = it->lumiSegmentNr();
91  if(lumisection){
92  hphysTrig_->setBinContent(lumisection + 1, it->l1AsPhysics());
93  }
94 
95  return ;
96 }
97 
98 void
100 {
102  e.getByToken(lumicollectionToken_,lumiScalers);
103 
104  auto it = lumiScalers->begin();
105 
106  if(!lumiScalers->empty()){
107  unsigned int lumisection = it->sectionNumber();
108  if(lumisection){
109  hinstLumi_->setBinContent(lumisection + 1, it->instantLumi());
110  }
111  }
112 
113  return;
114 }
T getUntrackedParameter(std::string const &, T const &) const
~DQMScalInfo() override
Destructor.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
void makeL1Scalars(const edm::Event &e)
Definition: DQMScalInfo.cc:73
return((rh^lh)&mask)
void makeLumiScalars(const edm::Event &e)
Definition: DQMScalInfo.cc:99
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DQMScalInfo.cc:40
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
DQMScalInfo(const edm::ParameterSet &ps)
Constructor.
Definition: DQMScalInfo.cc:27
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Analyze.
Definition: DQMScalInfo.cc:66
HLT enums.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: Run.h:44