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