CMS 3D CMS Logo

CTPPSCommonDQMSource.cc
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * This is a part of TotemDQM and TOTEM offline software.
4  * Authors:
5  * Jan Kašpar (jan.kaspar@gmail.com)
6  *
7  ****************************************************************************/
8 
16 
19 
24 
25 #include <string>
26 
27 //----------------------------------------------------------------------------------------------------
28 
29 class CTPPSCommonDQMSource : public DQMOneEDAnalyzer<edm::LuminosityBlockCache<std::vector<int>>> {
30 public:
32  ~CTPPSCommonDQMSource() override;
33 
34 protected:
35  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
36  void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override;
37  std::shared_ptr<std::vector<int>> globalBeginLuminosityBlock(const edm::LuminosityBlock &iLumi,
38  const edm::EventSetup &c) const override;
39  void globalEndLuminosityBlock(const edm::LuminosityBlock &iLumi, const edm::EventSetup &c) override;
40 
41  void analyzeCTPPSRecord(edm::Event const &event, edm::EventSetup const &eventSetup);
42  void analyzeTracks(edm::Event const &event, edm::EventSetup const &eventSetup);
43  void analyzeProtons(edm::Event const &event, edm::EventSetup const &eventSetup);
44 
45 private:
46  const unsigned int verbosity;
47  constexpr static int MAX_LUMIS = 6000;
48  constexpr static int MAX_VBINS = 18;
49 
53 
55 
56  int currentLS;
57  int endLS;
58 
59  std::vector<int> rpstate;
60 
62  struct GlobalPlots {
63  MonitorElement *RPState = nullptr;
64  MonitorElement *events_per_bx = nullptr, *events_per_bx_short = nullptr;
65  MonitorElement *h_trackCorr_hor = nullptr, *h_trackCorr_vert = nullptr;
66 
67  void Init(DQMStore::IBooker &ibooker);
68  };
69 
71 
73  struct ArmPlots {
74  int id;
75 
78 
79  MonitorElement *h_proton_xi = nullptr, *h_proton_th_x = nullptr, *h_proton_th_y = nullptr, *h_proton_t = nullptr,
80  *h_proton_time = nullptr;
81 
82  struct TrackingRPPlots {
84  };
85 
86  std::map<unsigned int, TrackingRPPlots> trackingRPPlots;
87 
88  struct TimingRPPlots {
90  };
91 
92  std::map<unsigned int, TimingRPPlots> timingRPPlots;
93 
94  ArmPlots() {}
95 
97  };
98 
99  std::map<unsigned int, ArmPlots> armPlots;
100 };
101 
102 //----------------------------------------------------------------------------------------------------
103 //----------------------------------------------------------------------------------------------------
104 
105 using namespace std;
106 using namespace edm;
107 
110 
111 //----------------------------------------------------------------------------------------------------
112 
114  ibooker.setCurrentFolder("CTPPS/common");
115 
116  events_per_bx = ibooker.book1D("events per BX", "rp;Event.BX", 4002, -1.5, 4000. + 0.5);
117  events_per_bx_short = ibooker.book1D("events per BX (short)", "rp;Event.BX", 102, -1.5, 100. + 0.5);
118 
119  /*
120  RP State (HV & LV & Insertion):
121  0 -> not used
122  1 -> bad
123  2 -> warning
124  3 -> ok
125  */
126  RPState = ibooker.book2D("rpstate per LS",
127  "RP State per Lumisection;Luminosity Section;",
128  MAX_LUMIS,
129  0,
130  MAX_LUMIS,
131  MAX_VBINS,
132  0.,
133  MAX_VBINS);
134  {
135  TH2F *hist = RPState->getTH2F();
136  hist->SetCanExtend(TH1::kAllAxes);
137  TAxis *ya = hist->GetYaxis();
138  ya->SetBinLabel(1, "45, 210, FR-BT");
139  ya->SetBinLabel(2, "45, 210, FR-HR");
140  ya->SetBinLabel(3, "45, 210, FR-TP");
141  ya->SetBinLabel(4, "45, 220, C1");
142  ya->SetBinLabel(5, "45, 220, FR-BT");
143  ya->SetBinLabel(6, "45, 220, FR-HR");
144  ya->SetBinLabel(7, "45, 220, FR-TP");
145  ya->SetBinLabel(8, "45, 220, NR-BP");
146  ya->SetBinLabel(9, "45, 220, NR-TP");
147  ya->SetBinLabel(10, "56, 210, FR-BT");
148  ya->SetBinLabel(11, "56, 210, FR-HR");
149  ya->SetBinLabel(12, "56, 210, FR-TP");
150  ya->SetBinLabel(13, "56, 220, C1");
151  ya->SetBinLabel(14, "56, 220, FR-BT");
152  ya->SetBinLabel(15, "56, 220, FR-HR");
153  ya->SetBinLabel(16, "56, 220, FR-TP");
154  ya->SetBinLabel(17, "56, 220, NR-BP");
155  ya->SetBinLabel(18, "56, 220, NR-TP");
156  }
157 
158  h_trackCorr_hor = ibooker.book2D("track correlation hor", "ctpps_common_rp_hor", 6, -0.5, 5.5, 6, -0.5, 5.5);
159  {
160  TH2F *hist = h_trackCorr_hor->getTH2F();
161  TAxis *xa = hist->GetXaxis(), *ya = hist->GetYaxis();
162  xa->SetBinLabel(1, "45, 210, far");
163  ya->SetBinLabel(1, "45, 210, far");
164  xa->SetBinLabel(2, "45, 220, far");
165  ya->SetBinLabel(2, "45, 220, far");
166  xa->SetBinLabel(3, "45, 220, cyl");
167  ya->SetBinLabel(3, "45, 220, cyl");
168  xa->SetBinLabel(4, "56, 210, far");
169  ya->SetBinLabel(4, "56, 210, far");
170  xa->SetBinLabel(5, "56, 220, far");
171  ya->SetBinLabel(5, "56, 220, far");
172  xa->SetBinLabel(6, "56, 220, cyl");
173  ya->SetBinLabel(6, "56, 220, cyl");
174  }
175 
176  h_trackCorr_vert = ibooker.book2D("track correlation vert", "ctpps_common_rp_vert", 8, -0.5, 7.5, 8, -0.5, 7.5);
177  {
178  TH2F *hist = h_trackCorr_vert->getTH2F();
179  TAxis *xa = hist->GetXaxis(), *ya = hist->GetYaxis();
180  xa->SetBinLabel(1, "45, 210, far, top");
181  ya->SetBinLabel(1, "45, 210, far, top");
182  xa->SetBinLabel(2, "45, 210, far, bot");
183  ya->SetBinLabel(2, "45, 210, far, bot");
184  xa->SetBinLabel(3, "45, 220, far, top");
185  ya->SetBinLabel(3, "45, 220, far, top");
186  xa->SetBinLabel(4, "45, 220, far, bot");
187  ya->SetBinLabel(4, "45, 220, far, bot");
188  xa->SetBinLabel(5, "56, 210, far, top");
189  ya->SetBinLabel(5, "56, 210, far, top");
190  xa->SetBinLabel(6, "56, 210, far, bot");
191  ya->SetBinLabel(6, "56, 210, far, bot");
192  xa->SetBinLabel(7, "56, 220, far, top");
193  ya->SetBinLabel(7, "56, 220, far, top");
194  xa->SetBinLabel(8, "56, 220, far, bot");
195  ya->SetBinLabel(8, "56, 220, far, bot");
196  }
197 }
198 
199 //----------------------------------------------------------------------------------------------------
200 
202  string name;
204 
205  ibooker.setCurrentFolder("CTPPS/common/sector " + name);
206 
207  string title = "ctpps_common_sector_" + name;
208 
210  ibooker.book1D("number of top RPs with tracks", title + ";number of top RPs with tracks", 5, -0.5, 4.5);
212  ibooker.book1D("number of hor RPs with tracks", title + ";number of hor RPs with tracks", 5, -0.5, 4.5);
214  ibooker.book1D("number of bot RPs with tracks", title + ";number of bot RPs with tracks", 5, -0.5, 4.5);
215 
216  h_trackCorr = ibooker.book2D("track correlation", title, 7, -0.5, 6.5, 7, -0.5, 6.5);
217  TH2F *h_trackCorr_h = h_trackCorr->getTH2F();
218  TAxis *xa = h_trackCorr_h->GetXaxis(), *ya = h_trackCorr_h->GetYaxis();
219  xa->SetBinLabel(1, "210, far, hor");
220  ya->SetBinLabel(1, "210, far, hor");
221  xa->SetBinLabel(2, "210, far, top");
222  ya->SetBinLabel(2, "210, far, top");
223  xa->SetBinLabel(3, "210, far, bot");
224  ya->SetBinLabel(3, "210, far, bot");
225  xa->SetBinLabel(4, "220, cyl");
226  ya->SetBinLabel(4, "220, cyl");
227  xa->SetBinLabel(5, "220, far, hor");
228  ya->SetBinLabel(5, "220, far, hor");
229  xa->SetBinLabel(6, "220, far, top");
230  ya->SetBinLabel(6, "220, far, top");
231  xa->SetBinLabel(7, "220, far, bot");
232  ya->SetBinLabel(7, "220, far, bot");
233 
234  h_trackCorr_overlap = ibooker.book2D("track correlation hor-vert overlaps", title, 7, -0.5, 6.5, 7, -0.5, 6.5);
235  h_trackCorr_h = h_trackCorr_overlap->getTH2F();
236  xa = h_trackCorr_h->GetXaxis();
237  ya = h_trackCorr_h->GetYaxis();
238  xa->SetBinLabel(1, "210, far, hor");
239  ya->SetBinLabel(1, "210, far, hor");
240  xa->SetBinLabel(2, "210, far, top");
241  ya->SetBinLabel(2, "210, far, top");
242  xa->SetBinLabel(3, "210, far, bot");
243  ya->SetBinLabel(3, "210, far, bot");
244  xa->SetBinLabel(4, "220, cyl");
245  ya->SetBinLabel(4, "220, cyl");
246  xa->SetBinLabel(5, "220, far, hor");
247  ya->SetBinLabel(5, "220, far, hor");
248  xa->SetBinLabel(6, "220, far, top");
249  ya->SetBinLabel(6, "220, far, top");
250  xa->SetBinLabel(7, "220, far, bot");
251  ya->SetBinLabel(7, "220, far, bot");
252 
253  if (makeProtonRecoPlots) {
254  h_proton_xi = ibooker.book1D("proton xi", title + ";xi", 100, 0., 0.3);
255  h_proton_th_x = ibooker.book1D("proton theta st x", ";#theta^{*}_{x} (rad)", 250, -500E-6, +500E-6);
256  h_proton_th_y = ibooker.book1D("proton theta st y", ";#theta^{*}_{y} (rad)", 250, -500E-6, +500E-6);
257  h_proton_t = ibooker.book1D("proton t", title + ";|t| GeV^{2}", 100, 0., 5.);
258  h_proton_time = ibooker.book1D("proton time", title + ";time (ns)", 100, -1., 1.);
259  }
260 
261  for (const unsigned int rpDecId : {2, 3, 16, 23}) {
262  unsigned int st = rpDecId / 10, rp = rpDecId % 10, rpFullDecId = id * 100 + rpDecId;
264  string stName, rpName;
265  rpId.stationName(stName, CTPPSDetId::nShort);
266  rpId.rpName(rpName, CTPPSDetId::nShort);
267  rpName = stName + "_" + rpName;
268 
269  if (rp == 6) {
270  timingRPPlots[rpFullDecId] = {
271  ibooker.book1D(rpName + " - track x histogram", title + "/" + rpName + ";track x (mm)", 200, 0., 40.),
272  ibooker.book1D(
273  rpName + " - track time histogram", title + "/" + rpName + ";track time (ns)", 100, -25., +50.)};
274  } else {
275  trackingRPPlots[rpFullDecId] = {
276  ibooker.book1D(rpName + " - track x histogram", title + "/" + rpName + ";track x (mm)", 200, 0., 40.),
277  ibooker.book1D(rpName + " - track y histogram", title + "/" + rpName + ";track y (mm)", 200, -20., +20.)};
278  }
279  }
280 }
281 
282 //----------------------------------------------------------------------------------------------------
283 //----------------------------------------------------------------------------------------------------
284 
286  : verbosity(ps.getUntrackedParameter<unsigned int>("verbosity", 0)),
287  ctppsRecordToken(consumes<CTPPSRecord>(ps.getUntrackedParameter<edm::InputTag>("ctppsmetadata"))),
288  tokenLocalTrackLite(consumes<vector<CTPPSLocalTrackLite>>(ps.getParameter<edm::InputTag>("tagLocalTrackLite"))),
289  tokenRecoProtons(consumes<std::vector<reco::ForwardProton>>(ps.getParameter<InputTag>("tagRecoProtons"))),
290  makeProtonRecoPlots_(ps.getParameter<bool>("makeProtonRecoPlots")) {
291  currentLS = 0;
292  endLS = 0;
293  rpstate.clear();
294 }
295 
296 //----------------------------------------------------------------------------------------------------
297 
299 
300 //----------------------------------------------------------------------------------------------------
301 
303  // global plots
304  globalPlots.Init(ibooker);
305 
306  // loop over arms
307  for (unsigned int arm = 0; arm < 2; arm++) {
308  armPlots[arm] = ArmPlots(ibooker, arm, makeProtonRecoPlots_);
309  }
310 }
311 
312 //----------------------------------------------------------------------------------------------------
313 
314 void CTPPSCommonDQMSource::analyze(edm::Event const &event, edm::EventSetup const &eventSetup) {
315  analyzeCTPPSRecord(event, eventSetup);
316  analyzeTracks(event, eventSetup);
317 
319  analyzeProtons(event, eventSetup);
320 }
321 
322 //----------------------------------------------------------------------------------------------------
323 
325  Handle<CTPPSRecord> hCTPPSRecord;
326  event.getByToken(ctppsRecordToken, hCTPPSRecord);
327 
328  if (!hCTPPSRecord.isValid()) {
329  if (verbosity)
330  LogProblem("CTPPSCommonDQMSource") << "ERROR in CTPPSCommonDQMSource::analyzeCTPPSRecord > input not available.";
331 
332  return;
333  }
334 
335  auto &rpstate = *luminosityBlockCache(event.getLuminosityBlock().index());
336  if (rpstate.empty()) {
337  rpstate.reserve(CTPPSRecord::RomanPot::Last);
338  for (uint8_t i = 0; i < CTPPSRecord::RomanPot::Last; ++i)
339  rpstate.push_back(hCTPPSRecord->status(i));
340  }
341 }
342 
343 //----------------------------------------------------------------------------------------------------
344 
346  // get event data
348  event.getByToken(tokenLocalTrackLite, hTracks);
349 
350  // check validity
351  if (!hTracks.isValid()) {
352  if (verbosity)
353  LogProblem("CTPPSCommonDQMSource") << "ERROR in CTPPSCommonDQMSource::analyzeTracks > input not available.";
354 
355  return;
356  }
357 
358  //------------------------------
359  // collect indeces of RP with tracks, for each correlation plot
360  set<signed int> s_rp_idx_global_hor, s_rp_idx_global_vert;
361  map<unsigned int, set<signed int>> ms_rp_idx_arm;
362 
363  for (auto &tr : *hTracks) {
364  const CTPPSDetId rpId(tr.rpId());
365  const unsigned int arm = rpId.arm();
366  const unsigned int stNum = rpId.station();
367  const unsigned int rpNum = rpId.rp();
368  const unsigned int stRPNum = stNum * 10 + rpNum;
369 
370  {
371  signed int idx = -1;
372  if (stRPNum == 3)
373  idx = 0;
374  if (stRPNum == 23)
375  idx = 1;
376  if (stRPNum == 16)
377  idx = 2;
378 
379  if (idx >= 0)
380  s_rp_idx_global_hor.insert(3 * arm + idx);
381  }
382 
383  {
384  signed int idx = -1;
385  if (stRPNum == 4)
386  idx = 0;
387  if (stRPNum == 5)
388  idx = 1;
389  if (stRPNum == 24)
390  idx = 2;
391  if (stRPNum == 25)
392  idx = 3;
393 
394  if (idx >= 0)
395  s_rp_idx_global_vert.insert(4 * arm + idx);
396  }
397 
398  {
399  signed int idx = -1;
400  if (stRPNum == 3)
401  idx = 0;
402  if (stRPNum == 4)
403  idx = 1;
404  if (stRPNum == 5)
405  idx = 2;
406  if (stRPNum == 16)
407  idx = 3;
408  if (stRPNum == 23)
409  idx = 4;
410  if (stRPNum == 24)
411  idx = 5;
412  if (stRPNum == 25)
413  idx = 6;
414 
415  const signed int hor = ((rpNum == 2) || (rpNum == 3) || (rpNum == 6)) ? 1 : 0;
416 
417  if (idx >= 0)
418  ms_rp_idx_arm[arm].insert(idx * 10 + hor);
419  }
420  }
421 
422  //------------------------------
423  // Global Plots
424 
425  globalPlots.events_per_bx->Fill(event.bunchCrossing());
426  globalPlots.events_per_bx_short->Fill(event.bunchCrossing());
427 
428  for (const auto &idx1 : s_rp_idx_global_hor)
429  for (const auto &idx2 : s_rp_idx_global_hor)
430  globalPlots.h_trackCorr_hor->Fill(idx1, idx2);
431 
432  for (const auto &idx1 : s_rp_idx_global_vert)
433  for (const auto &idx2 : s_rp_idx_global_vert)
434  globalPlots.h_trackCorr_vert->Fill(idx1, idx2);
435 
436  //------------------------------
437  // Arm Plots
438 
439  map<unsigned int, set<unsigned int>> mTop, mHor, mBot;
440 
441  for (auto &tr : *hTracks) {
442  CTPPSDetId rpId(tr.rpId());
443  const unsigned int rpNum = rpId.rp();
444  const unsigned int armIdx = rpId.arm();
445 
446  if (rpNum == 0 || rpNum == 4)
447  mTop[armIdx].insert(rpId);
448  if (rpNum == 2 || rpNum == 3 || rpNum == 6)
449  mHor[armIdx].insert(rpId);
450  if (rpNum == 1 || rpNum == 5)
451  mBot[armIdx].insert(rpId);
452 
453  auto &ap = armPlots[rpId.arm()];
454  unsigned int rpDecId = rpId.arm() * 100 + rpId.station() * 10 + rpId.rp();
455 
456  // fill in reference tracking-RP plots
457  {
458  auto it = ap.trackingRPPlots.find(rpDecId);
459  if (it != ap.trackingRPPlots.end()) {
460  it->second.h_x->Fill(tr.x());
461  it->second.h_y->Fill(tr.y());
462  }
463  }
464 
465  // fill in reference timing-RP plots
466  {
467  auto it = ap.timingRPPlots.find(rpDecId);
468  if (it != ap.timingRPPlots.end()) {
469  it->second.h_x->Fill(tr.x());
470  it->second.h_time->Fill(tr.time());
471  }
472  }
473  }
474 
475  for (auto &p : armPlots) {
476  p.second.h_numRPWithTrack_top->Fill(mTop[p.first].size());
477  p.second.h_numRPWithTrack_hor->Fill(mHor[p.first].size());
478  p.second.h_numRPWithTrack_bot->Fill(mBot[p.first].size());
479  }
480 
481  //------------------------------
482  // Correlation plots
483 
484  for (const auto &ap : ms_rp_idx_arm) {
485  auto &plots = armPlots[ap.first];
486 
487  for (const auto &idx1 : ap.second) {
488  for (const auto &idx2 : ap.second) {
489  plots.h_trackCorr->Fill(idx1 / 10, idx2 / 10);
490 
491  if ((idx1 % 10) != (idx2 % 10))
492  plots.h_trackCorr_overlap->Fill(idx1 / 10, idx2 / 10);
493  }
494  }
495  }
496 }
497 
498 //----------------------------------------------------------------------------------------------------
499 
501  // get event data
503  event.getByToken(tokenRecoProtons, hRecoProtons);
504 
505  // check validity
506  if (!hRecoProtons.isValid()) {
507  if (verbosity)
508  LogProblem("CTPPSCommonDQMSource") << "ERROR in CTPPSCommonDQMSource::analyzeProtons > input not available.";
509 
510  return;
511  }
512 
513  // loop over protons
514  for (auto &p : *hRecoProtons) {
515  if (!p.validFit())
516  continue;
517 
518  signed int armIndex = -1;
519  if (p.lhcSector() == reco::ForwardProton::LHCSector::sector45)
520  armIndex = 0;
521  if (p.lhcSector() == reco::ForwardProton::LHCSector::sector56)
522  armIndex = 1;
523  if (armIndex < 0)
524  continue;
525 
526  auto &plots = armPlots[armIndex];
527 
528  plots.h_proton_xi->Fill(p.xi());
529  plots.h_proton_th_x->Fill(p.thetaX());
530  plots.h_proton_th_y->Fill(p.thetaY());
531  plots.h_proton_t->Fill(fabs(p.t()));
532  plots.h_proton_time->Fill(p.time());
533  }
534 }
535 
536 //----------------------------------------------------------------------------------------------------
537 
538 std::shared_ptr<std::vector<int>> CTPPSCommonDQMSource::globalBeginLuminosityBlock(const edm::LuminosityBlock &,
539  const edm::EventSetup &) const {
540  return std::make_shared<std::vector<int>>();
541 }
542 
543 //----------------------------------------------------------------------------------------------------
544 
546  auto const &rpstate = *luminosityBlockCache(iLumi.index());
547  auto currentLS = iLumi.id().luminosityBlock();
548  for (std::vector<int>::size_type i = 0; i < rpstate.size(); i++)
550 }
551 
552 //----------------------------------------------------------------------------------------------------
553 
CTPPSCommonDQMSource::analyzeTracks
void analyzeTracks(edm::Event const &event, edm::EventSetup const &eventSetup)
Definition: CTPPSCommonDQMSource.cc:344
ctppsCommonDQMSource_cfi.makeProtonRecoPlots
makeProtonRecoPlots
Definition: ctppsCommonDQMSource_cfi.py:10
CTPPSLocalTrackLite
Local (=single RP) track with essential information only.
Definition: CTPPSLocalTrackLite.h:18
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
CTPPSCommonDQMSource::tokenRecoProtons
const edm::EDGetTokenT< std::vector< reco::ForwardProton > > tokenRecoProtons
Definition: CTPPSCommonDQMSource.cc:56
CTPPSRecord::status
Status status(const uint8_t rp) const
Return the status of the given roman pot.
Definition: CTPPSRecord.h:61
CTPPSCommonDQMSource::ArmPlots::h_proton_xi
MonitorElement * h_proton_xi
Definition: CTPPSCommonDQMSource.cc:83
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
CTPPSCommonDQMSource::ArmPlots::h_proton_time
MonitorElement * h_proton_time
Definition: CTPPSCommonDQMSource.cc:84
CTPPSCommonDQMSource::ArmPlots::TimingRPPlots
Definition: CTPPSCommonDQMSource.cc:92
ESHandle.h
CTPPSCommonDQMSource::GlobalPlots::Init
void Init(DQMStore::IBooker &ibooker)
Definition: CTPPSCommonDQMSource.cc:112
CTPPSCommonDQMSource::ArmPlots::TrackingRPPlots::h_y
MonitorElement * h_y
Definition: CTPPSCommonDQMSource.cc:87
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
CTPPSCommonDQMSource::analyze
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
Definition: CTPPSCommonDQMSource.cc:313
edm::Run
Definition: Run.h:45
edm::EDGetTokenT< CTPPSRecord >
LuminosityBlock.h
edm::LuminosityBlock::index
LuminosityBlockIndex index() const
Definition: LuminosityBlock.cc:27
CTPPSCommonDQMSource::ArmPlots::trackingRPPlots
std::map< unsigned int, TrackingRPPlots > trackingRPPlots
Definition: CTPPSCommonDQMSource.cc:90
edm
HLT enums.
Definition: AlignableModifier.h:19
CTPPSCommonDQMSource::CTPPSCommonDQMSource
CTPPSCommonDQMSource(const edm::ParameterSet &ps)
Definition: CTPPSCommonDQMSource.cc:284
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CTPPSCommonDQMSource::rpstate
std::vector< int > rpstate
Definition: CTPPSCommonDQMSource.cc:63
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
CTPPSCommonDQMSource::ArmPlots::h_proton_th_y
MonitorElement * h_proton_th_y
Definition: CTPPSCommonDQMSource.cc:83
DQMOneEDAnalyzer
Definition: DQMOneEDAnalyzer.h:20
CTPPSCommonDQMSource::ArmPlots::TimingRPPlots::h_time
MonitorElement * h_time
Definition: CTPPSCommonDQMSource.cc:93
DQMStore.h
CTPPSDetId::nShort
Definition: CTPPSDetId.h:87
CTPPSLocalTrackLite.h
CTPPSCommonDQMSource::GlobalPlots::h_trackCorr_hor
MonitorElement * h_trackCorr_hor
Definition: CTPPSCommonDQMSource.cc:69
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
year_2016_postTS2_cff.rpId
rpId
Definition: year_2016_postTS2_cff.py:23
CTPPSCommonDQMSource::GlobalPlots::events_per_bx_short
MonitorElement * events_per_bx_short
Definition: CTPPSCommonDQMSource.cc:68
edm::Handle
Definition: AssociativeIterator.h:50
DQMOneEDAnalyzer.h
CTPPSRecord
Class to contain CTPPS information from soft FED 1022.
Definition: CTPPSRecord.h:20
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
CTPPSDetId::sdTrackingStrip
Definition: CTPPSDetId.h:44
dqm::impl::MonitorElement::getTH2F
virtual TH2F * getTH2F()
Definition: MonitorElement.cc:992
MakerMacros.h
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
CTPPSCommonDQMSource::ArmPlots::ArmPlots
ArmPlots()
Definition: CTPPSCommonDQMSource.cc:98
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
CTPPSCommonDQMSource::globalBeginLuminosityBlock
std::shared_ptr< std::vector< int > > globalBeginLuminosityBlock(const edm::LuminosityBlock &iLumi, const edm::EventSetup &c) const override
Definition: CTPPSCommonDQMSource.cc:537
compare.hist
hist
Definition: compare.py:376
CTPPSCommonDQMSource::analyzeCTPPSRecord
void analyzeCTPPSRecord(edm::Event const &event, edm::EventSetup const &eventSetup)
Definition: CTPPSCommonDQMSource.cc:323
CTPPSCommonDQMSource::tokenLocalTrackLite
const edm::EDGetTokenT< std::vector< CTPPSLocalTrackLite > > tokenLocalTrackLite
Definition: CTPPSCommonDQMSource.cc:55
TtSemiLepHitFitProducer_Electrons_cfi.mTop
mTop
Definition: TtSemiLepHitFitProducer_Electrons_cfi.py:36
edm::LogProblem
Log< level::Error, true > LogProblem
Definition: MessageLogger.h:131
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
CTPPSCommonDQMSource::MAX_LUMIS
constexpr static int MAX_LUMIS
Definition: CTPPSCommonDQMSource.cc:51
CTPPSCommonDQMSource::ctppsRecordToken
const edm::EDGetTokenT< CTPPSRecord > ctppsRecordToken
Definition: CTPPSCommonDQMSource.cc:54
CTPPSCommonDQMSource::GlobalPlots::h_trackCorr_vert
MonitorElement * h_trackCorr_vert
Definition: CTPPSCommonDQMSource.cc:69
CTPPSCommonDQMSource::ArmPlots::h_trackCorr_overlap
MonitorElement * h_trackCorr_overlap
Definition: CTPPSCommonDQMSource.cc:81
CTPPSCommonDQMSource::ArmPlots::TimingRPPlots::h_x
MonitorElement * h_x
Definition: CTPPSCommonDQMSource.cc:93
CTPPSCommonDQMSource::analyzeProtons
void analyzeProtons(edm::Event const &event, edm::EventSetup const &eventSetup)
Definition: CTPPSCommonDQMSource.cc:499
CTPPSCommonDQMSource::ArmPlots::h_numRPWithTrack_bot
MonitorElement * h_numRPWithTrack_bot
Definition: CTPPSCommonDQMSource.cc:80
CTPPSRecord.h
CTPPSCommonDQMSource::currentLS
int currentLS
Definition: CTPPSCommonDQMSource.cc:60
edm::ParameterSet
Definition: ParameterSet.h:47
HLTObjectsMonitor_cfi.plots
plots
Definition: HLTObjectsMonitor_cfi.py:17
Event.h
CTPPSCommonDQMSource::MAX_VBINS
constexpr static int MAX_VBINS
Definition: CTPPSCommonDQMSource.cc:52
CTPPSCommonDQMSource::GlobalPlots
plots related to the whole system
Definition: CTPPSCommonDQMSource.cc:66
CTPPSCommonDQMSource::ArmPlots::h_proton_t
MonitorElement * h_proton_t
Definition: CTPPSCommonDQMSource.cc:83
ForwardProton.h
reco::ForwardProton::LHCSector::sector56
CTPPSCommonDQMSource::ArmPlots::h_proton_th_x
MonitorElement * h_proton_th_x
Definition: CTPPSCommonDQMSource.cc:83
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
createfilelist.int
int
Definition: createfilelist.py:10
edm::LuminosityBlockID::luminosityBlock
LuminosityBlockNumber_t luminosityBlock() const
Definition: LuminosityBlockID.h:42
edm::LuminosityBlockBase::id
LuminosityBlockID id() const
Definition: LuminosityBlockBase.h:44
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
CTPPSCommonDQMSource::globalPlots
GlobalPlots globalPlots
Definition: CTPPSCommonDQMSource.cc:74
edm::EventSetup
Definition: EventSetup.h:57
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
CTPPSCommonDQMSource::ArmPlots::h_trackCorr
MonitorElement * h_trackCorr
Definition: CTPPSCommonDQMSource.cc:81
InputTag.h
CTPPSCommonDQMSource::ArmPlots::h_numRPWithTrack_hor
MonitorElement * h_numRPWithTrack_hor
Definition: CTPPSCommonDQMSource.cc:80
dqm::impl::MonitorElement::setBinContent
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: MonitorElement.cc:691
std
Definition: JetResolutionObject.h:76
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
reco::ForwardProton::LHCSector::sector45
dqm::implementation::IBooker::book2D
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
CTPPSCommonDQMSource
Definition: CTPPSCommonDQMSource.cc:28
CTPPSCommonDQMSource::globalEndLuminosityBlock
void globalEndLuminosityBlock(const edm::LuminosityBlock &iLumi, const edm::EventSetup &c) override
Definition: CTPPSCommonDQMSource.cc:544
CTPPSCommonDQMSource::~CTPPSCommonDQMSource
~CTPPSCommonDQMSource() override
Definition: CTPPSCommonDQMSource.cc:297
CTPPSCommonDQMSource::endLS
int endLS
Definition: CTPPSCommonDQMSource.cc:61
CTPPSCommonDQMSource::GlobalPlots::RPState
MonitorElement * RPState
Definition: CTPPSCommonDQMSource.cc:67
CTPPSCommonDQMSource::ArmPlots::TrackingRPPlots
Definition: CTPPSCommonDQMSource.cc:86
CTPPSCommonDQMSource::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: CTPPSCommonDQMSource.cc:301
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EventSetup.h
CTPPSDetId.h
dqm::implementation::IBooker
Definition: DQMStore.h:43
CTPPSCommonDQMSource::makeProtonRecoPlots_
bool makeProtonRecoPlots_
Definition: CTPPSCommonDQMSource.cc:58
ParameterSet.h
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:153
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
CTPPSCommonDQMSource::GlobalPlots::events_per_bx
MonitorElement * events_per_bx
Definition: CTPPSCommonDQMSource.cc:68
edm::InputTag
Definition: InputTag.h:15
CTPPSCommonDQMSource::verbosity
const unsigned int verbosity
Definition: CTPPSCommonDQMSource.cc:50
CTPPSCommonDQMSource::ArmPlots::id
int id
Definition: CTPPSCommonDQMSource.cc:78
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
CTPPSCommonDQMSource::ArmPlots::TrackingRPPlots::h_x
MonitorElement * h_x
Definition: CTPPSCommonDQMSource.cc:87
CTPPSCommonDQMSource::armPlots
std::map< unsigned int, ArmPlots > armPlots
Definition: CTPPSCommonDQMSource.cc:103
CTPPSCommonDQMSource::ArmPlots::timingRPPlots
std::map< unsigned int, TimingRPPlots > timingRPPlots
Definition: CTPPSCommonDQMSource.cc:96
CTPPSCommonDQMSource::ArmPlots
plots related to one arm
Definition: CTPPSCommonDQMSource.cc:77
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
CTPPSDetId::armName
void armName(std::string &name, NameFlag flag=nFull) const
Definition: CTPPSDetId.h:96
CTPPSCommonDQMSource::ArmPlots::h_numRPWithTrack_top
MonitorElement * h_numRPWithTrack_top
Definition: CTPPSCommonDQMSource.cc:80