CMS 3D CMS Logo

RPCMonitorDigi.cc
Go to the documentation of this file.
3 
8 
12 
13 #include <set>
14 #include <sstream>
15 
16 const std::array<std::string, 3> RPCMonitorDigi::regionNames_ = {{"Endcap-", "Barrel", "Endcap+"}};
17 
19  : counter(0),
20  muonRPCEvents_(nullptr),
21  NumberOfRecHitMuon_(nullptr),
22  NumberOfMuon_(nullptr),
23  numberOfDisks_(0),
24  numberOfInnerRings_(0) {
25  useMuonDigis_ = pset.getUntrackedParameter<bool>("UseMuon", true);
26  useRollInfo_ = pset.getUntrackedParameter<bool>("UseRollInfo", false);
27 
28  muPtCut_ = pset.getUntrackedParameter<double>("MuonPtCut", 3.0);
29  muEtaCut_ = pset.getUntrackedParameter<double>("MuonEtaCut", 1.9);
30 
31  subsystemFolder_ = pset.getUntrackedParameter<std::string>("RPCFolder", "RPC");
32  globalFolder_ = pset.getUntrackedParameter<std::string>("GlobalFolder", "SummaryHistograms");
33 
34  //Parametersets for tokens
35  muonLabel_ = consumes<reco::CandidateView>(pset.getParameter<edm::InputTag>("MuonLabel"));
36  rpcRecHitLabel_ = consumes<RPCRecHitCollection>(pset.getParameter<edm::InputTag>("RecHitLabel"));
37  scalersRawToDigiLabel_ = consumes<DcsStatusCollection>(pset.getParameter<edm::InputTag>("ScalersRawToDigiLabel"));
38 
39  noiseFolder_ = pset.getUntrackedParameter<std::string>("NoiseFolder", "AllHits");
40  muonFolder_ = pset.getUntrackedParameter<std::string>("MuonFolder", "Muon");
41 }
42 
44  edm::LogInfo("rpcmonitordigi") << "[RPCMonitorDigi]: Begin Run ";
45 
46  std::set<int> disk_set, ring_set;
47  edm::ESHandle<RPCGeometry> rpcGeoHandle;
48  iSetup.get<MuonGeometryRecord>().get(rpcGeoHandle);
49  const RPCGeometry* rpcGeo = rpcGeoHandle.product();
50 
51  //loop on geometry to book all MEs
52  edm::LogInfo("rpcmonitordigi") << "[RPCMonitorDigi]: Booking histograms per roll. ";
53  for (TrackingGeometry::DetContainer::const_iterator it = rpcGeo->dets().begin(); it < rpcGeo->dets().end(); it++) {
54  if (dynamic_cast<const RPCChamber*>(*it) != nullptr) {
55  const RPCChamber* ch = dynamic_cast<const RPCChamber*>(*it);
56  std::vector<const RPCRoll*> roles = (ch->rolls());
57  if (useRollInfo_) {
58  for (std::vector<const RPCRoll*>::const_iterator r = roles.begin(); r != roles.end(); ++r) {
59  RPCDetId rpcId = (*r)->id();
60 
61  //get station and inner ring
62  if (rpcId.region() != 0) {
63  disk_set.insert(rpcId.station());
64  ring_set.insert(rpcId.ring());
65  }
66 
67  //booking all histograms
68  RPCGeomServ rpcsrv(rpcId);
69  std::string nameID = rpcsrv.name();
70  if (useMuonDigis_)
71  bookRollME(ibooker, rpcId, rpcGeo, muonFolder_, meMuonCollection[nameID]);
72  bookRollME(ibooker, rpcId, rpcGeo, noiseFolder_, meNoiseCollection[nameID]);
73  }
74  } else {
75  RPCDetId rpcId = roles[0]->id(); //any roll would do - here I just take the first one
76  RPCGeomServ rpcsrv(rpcId);
77  std::string nameID = rpcsrv.chambername();
78  if (useMuonDigis_)
79  bookRollME(ibooker, rpcId, rpcGeo, muonFolder_, meMuonCollection[nameID]);
80  bookRollME(ibooker, rpcId, rpcGeo, noiseFolder_, meNoiseCollection[nameID]);
81  if (rpcId.region() != 0) {
82  disk_set.insert(rpcId.station());
83  ring_set.insert(rpcId.ring());
84  }
85  }
86  }
87  } //end loop on geometry to book all MEs
88 
89  numberOfDisks_ = disk_set.size();
90  numberOfInnerRings_ = (*ring_set.begin());
91 
92  //Book
96 
97  std::string currentFolder = subsystemFolder_ + "/" + noiseFolder_;
98  ibooker.setCurrentFolder(currentFolder);
99 
100  noiseRPCEvents_ = ibooker.book1D("RPCEvents", "RPCEvents", 1, 0.5, 1.5);
101 
102  if (useMuonDigis_) {
106 
107  currentFolder = subsystemFolder_ + "/" + muonFolder_;
108  ibooker.setCurrentFolder(currentFolder);
109 
110  muonRPCEvents_ = ibooker.book1D("RPCEvents", "RPCEvents", 1, 0.5, 1.5);
111  NumberOfMuon_ = ibooker.book1D("NumberOfMuons", "Number of Muons", 11, -0.5, 10.5);
112  NumberOfRecHitMuon_ = ibooker.book1D("NumberOfRecHitMuons", "Number of RPC RecHits per Muon", 8, -0.5, 7.5);
113  }
114 }
115 
117  counter++;
118  edm::LogInfo("rpcmonitordigi") << "[RPCMonitorDigi]: Beginning analyzing event " << counter;
119 
120  //Muons
122  event.getByToken(muonLabel_, muonCands);
123 
124  std::map<RPCDetId, std::vector<RPCRecHit> > rechitMuon;
125 
126  int numMuons = 0;
127  int numRPCRecHit = 0;
128 
129  if (muonCands.isValid()) {
130  int nStaMuons = muonCands->size();
131 
132  for (int i = 0; i < nStaMuons; i++) {
133  const reco::Candidate& goodMuon = (*muonCands)[i];
134  const reco::Muon* muCand = dynamic_cast<const reco::Muon*>(&goodMuon);
135 
136  if (!muCand->isGlobalMuon())
137  continue;
138  if (muCand->pt() < muPtCut_ || fabs(muCand->eta()) > muEtaCut_)
139  continue;
140  numMuons++;
141  reco::Track muTrack = (*(muCand->outerTrack()));
142  std::vector<TrackingRecHitRef> rpcTrackRecHits;
143  //loop on mu rechits
144  for (trackingRecHit_iterator it = muTrack.recHitsBegin(); it != muTrack.recHitsEnd(); it++) {
145  if (!(*it)->isValid())
146  continue;
147  int muSubDetId = (*it)->geographicalId().subdetId();
148  if (muSubDetId == MuonSubdetId::RPC) {
149  numRPCRecHit++;
150  TrackingRecHit* tkRecHit = (*it)->clone();
151  RPCRecHit* rpcRecHit = dynamic_cast<RPCRecHit*>(tkRecHit);
152  int detId = (int)rpcRecHit->rpcId();
153  if (rechitMuon.find(detId) == rechitMuon.end() || rechitMuon[detId].empty()) {
154  std::vector<RPCRecHit> myVect(1, *rpcRecHit);
155  rechitMuon[detId] = myVect;
156  } else {
157  rechitMuon[detId].push_back(*rpcRecHit);
158  }
159  }
160  } // end loop on mu rechits
161  }
162 
163  //Fill muon counter
164  if (NumberOfMuon_) {
166  }
167 
168  //Fill rechit counter for muons
169  if (NumberOfRecHitMuon_ && numMuons > 0) {
170  NumberOfRecHitMuon_->Fill(numRPCRecHit);
171  }
172 
173  //Fill counter of RPC events with rechits associated in with a muon
174  if (muonRPCEvents_ != nullptr && numRPCRecHit > 0) {
175  muonRPCEvents_->Fill(1);
176  }
177 
178  //Perform client operation
179  this->performSourceOperation(rechitMuon, muonFolder_);
180 
181  } else {
182  edm::LogError("rpcmonitordigi") << "[RPCMonitorDigi]: Muons - Product not valid for event" << counter;
183  }
184 
185  //RecHits
187  event.getByToken(rpcRecHitLabel_, rpcHits);
188  std::map<RPCDetId, std::vector<RPCRecHit> > rechitNoise;
189 
190  if (rpcHits.isValid()) {
191  // RPC rec hits NOT associated to a muon
192  for (auto rpcRecHitIter = rpcHits->begin(); rpcRecHitIter != rpcHits->end(); rpcRecHitIter++) {
193  RPCRecHit rpcRecHit = (*rpcRecHitIter);
194  int detId = (int)rpcRecHit.rpcId();
195  if (rechitNoise.find(detId) == rechitNoise.end() || rechitNoise[detId].empty()) {
196  std::vector<RPCRecHit> myVect(1, rpcRecHit);
197  rechitNoise[detId] = myVect;
198  } else {
199  rechitNoise[detId].push_back(rpcRecHit);
200  }
201  }
202  } else {
203  edm::LogError("rpcmonitordigi") << "[RPCMonitorDigi]: RPCRecHits - Product not valid for event" << counter;
204  }
205 
206  //Fill counter for all RPC events
207  if (noiseRPCEvents_ != nullptr && !rechitNoise.empty()) {
208  noiseRPCEvents_->Fill(1);
209  }
210  //Perform client operation
211  this->performSourceOperation(rechitNoise, noiseFolder_);
212 }
213 
214 void RPCMonitorDigi::performSourceOperation(std::map<RPCDetId, std::vector<RPCRecHit> >& recHitMap,
215  std::string recHittype) {
216  edm::LogInfo("rpcmonitordigi") << "[RPCMonitorDigi]: Performing DQM source operations for ";
217 
218  if (recHitMap.empty())
219  return;
220 
221  std::map<std::string, std::map<std::string, MonitorElement*> > meRollCollection;
222  std::map<std::string, MonitorElement*> meWheelDisk;
223  std::map<std::string, MonitorElement*> meRegion;
224  std::map<std::string, MonitorElement*> meSectorRing;
225 
226  if (recHittype == muonFolder_) {
227  meRollCollection = meMuonCollection;
228  meWheelDisk = wheelDiskMuonCollection;
229  meRegion = regionMuonCollection;
230  meSectorRing = sectorRingMuonCollection;
231  } else if (recHittype == noiseFolder_) {
232  meRollCollection = meNoiseCollection;
233  meWheelDisk = wheelDiskNoiseCollection;
234  meRegion = regionNoiseCollection;
235  meSectorRing = sectorRingNoiseCollection;
236  } else {
237  edm::LogWarning("rpcmonitordigi") << "[RPCMonitorDigi]: RecHit type not valid.";
238  return;
239  }
240 
241  int totalNumberOfRecHits[3] = {0, 0, 0};
242  std::stringstream os;
243 
244  //Loop on Rolls
245  for (std::map<RPCDetId, std::vector<RPCRecHit> >::const_iterator detIdIter = recHitMap.begin();
246  detIdIter != recHitMap.end();
247  detIdIter++) {
248  RPCDetId detId = (*detIdIter).first;
249 
250  //get roll number
251  rpcdqm::utils rpcUtils;
252  int nr = rpcUtils.detId2RollNr(detId);
253 
254  RPCGeomServ geoServ(detId);
255  std::string nameRoll = "";
256 
257  if (useRollInfo_)
258  nameRoll = geoServ.name();
259  else
260  nameRoll = geoServ.chambername();
261 
262  int region = (int)detId.region();
263  int wheelOrDiskNumber;
264  std::string wheelOrDiskType;
265  int ring = 0;
266  int sector = detId.sector();
267  int layer = 0;
268  int totalRolls = 3;
269  int roll = detId.roll();
270  if (region == 0) {
271  wheelOrDiskType = "Wheel";
272  wheelOrDiskNumber = (int)detId.ring();
273  int station = detId.station();
274 
275  if (station == 1) {
276  if (detId.layer() == 1) {
277  layer = 1; //RB1in
278  totalRolls = 2;
279  } else {
280  layer = 2; //RB1out
281  totalRolls = 2;
282  }
283  if (roll == 3)
284  roll = 2; // roll=3 is Forward
285  } else if (station == 2) {
286  if (detId.layer() == 1) {
287  layer = 3; //RB2in
288  if (abs(wheelOrDiskNumber) == 2 && roll == 3) {
289  roll = 2; //W -2, +2 RB2in has only 2 rolls
290  totalRolls = 2;
291  }
292  } else {
293  layer = 4; //RB2out
294  if (abs(wheelOrDiskNumber) != 2 && roll == 3) {
295  roll = 2; //W -1, 0, +1 RB2out has only 2 rolls
296  totalRolls = 2;
297  }
298  }
299  } else if (station == 3) {
300  layer = 5; //RB3
301  totalRolls = 2;
302  if (roll == 3)
303  roll = 2;
304  } else {
305  layer = 6; //RB4
306  totalRolls = 2;
307  if (roll == 3)
308  roll = 2;
309  }
310 
311  } else {
312  wheelOrDiskType = "Disk";
313  wheelOrDiskNumber = region * (int)detId.station();
314  ring = detId.ring();
315  }
316 
317  std::vector<RPCRecHit> recHits = (*detIdIter).second;
318  int numberOfRecHits = recHits.size();
319  totalNumberOfRecHits[region + 1] += numberOfRecHits;
320 
321  std::set<int> bxSet;
322  int numDigi = 0;
323 
324  std::map<std::string, MonitorElement*> meMap = meRollCollection[nameRoll];
325 
326  //Loop on recHits
327  for (std::vector<RPCRecHit>::const_iterator recHitIter = recHits.begin(); recHitIter != recHits.end();
328  recHitIter++) {
329  RPCRecHit recHit = (*recHitIter);
330 
331  int bx = recHit.BunchX();
332  bxSet.insert(bx);
333  int clusterSize = (int)recHit.clusterSize();
334  numDigi += clusterSize;
335  int firstStrip = recHit.firstClusterStrip();
336  int lastStrip = clusterSize + firstStrip - 1;
337 
338  // ###################### Roll Level #################################
339 
340  os.str("");
341  os << "Occupancy_" << nameRoll;
342  if (meMap[os.str()]) {
343  for (int s = firstStrip; s <= lastStrip; s++) {
344  if (useRollInfo_) {
345  meMap[os.str()]->Fill(s);
346  } else {
347  int nstrips = meMap[os.str()]->getNbinsX() / totalRolls;
348  meMap[os.str()]->Fill(s + nstrips * (roll - 1));
349  }
350  }
351  }
352 
353  os.str("");
354  os << "BXDistribution_" << nameRoll;
355  if (meMap[os.str()])
356  meMap[os.str()]->Fill(bx);
357 
358  os.str("");
359  os << "ClusterSize_" << nameRoll;
360  if (meMap[os.str()])
361  meMap[os.str()]->Fill(clusterSize);
362 
363  // ###################### Sector- Ring Level #################################
364 
365  os.str("");
366  os << "Occupancy_" << wheelOrDiskType << "_" << wheelOrDiskNumber << "_Sector_" << sector;
367  if (meSectorRing[os.str()]) {
368  for (int s = firstStrip; s <= lastStrip; s++) { //Loop on digis
369  meSectorRing[os.str()]->Fill(s, nr);
370  }
371  }
372 
373  os.str("");
374  if (geoServ.segment() > 0 && geoServ.segment() < 19) {
375  os << "Occupancy_" << wheelOrDiskType << "_" << wheelOrDiskNumber << "_Ring_" << ring << "_CH01-CH18";
376  } else if (geoServ.segment() > 18) {
377  os << "Occupancy_" << wheelOrDiskType << "_" << wheelOrDiskNumber << "_Ring_" << ring << "_CH19-CH36";
378  }
379 
380  if (meSectorRing[os.str()]) {
381  for (int s = firstStrip; s <= lastStrip; s++) { //Loop on digis
382  meSectorRing[os.str()]->Fill(s + 32 * (detId.roll() - 1), geoServ.segment());
383  }
384  }
385 
386  // ###################### Wheel/Disk Level #########################
387  if (region == 0) {
388  os.str("");
389  os << "1DOccupancy_Wheel_" << wheelOrDiskNumber;
390  if (meWheelDisk[os.str()])
391  meWheelDisk[os.str()]->Fill(sector, clusterSize);
392 
393  os.str("");
394  os << "Occupancy_Roll_vs_Sector_" << wheelOrDiskType << "_" << wheelOrDiskNumber;
395  if (meWheelDisk[os.str()])
396  meWheelDisk[os.str()]->Fill(sector, nr, clusterSize);
397 
398  } else {
399  os.str("");
400  os << "1DOccupancy_Ring_" << ring;
401  if ((meWheelDisk[os.str()])) {
402  if (wheelOrDiskNumber > 0) {
403  meWheelDisk[os.str()]->Fill(wheelOrDiskNumber + numberOfDisks_, clusterSize);
404  } else {
405  meWheelDisk[os.str()]->Fill(wheelOrDiskNumber + numberOfDisks_ + 1, clusterSize);
406  }
407  }
408 
409  os.str("");
410  os << "Occupancy_Ring_vs_Segment_" << wheelOrDiskType << "_" << wheelOrDiskNumber;
411  if (meWheelDisk[os.str()])
412  meWheelDisk[os.str()]->Fill(geoServ.segment(), (ring - 1) * 3 - detId.roll() + 1, clusterSize);
413  }
414 
415  os.str("");
416  os << "BxDistribution_" << wheelOrDiskType << "_" << wheelOrDiskNumber;
417  if (meWheelDisk[os.str()])
418  meWheelDisk[os.str()]->Fill(bx);
419 
420  os.str("");
421  os << "ClusterSize_" << wheelOrDiskType << "_" << wheelOrDiskNumber << "_Layer" << layer;
422  if (meWheelDisk[os.str()])
423  meWheelDisk[os.str()]->Fill(clusterSize);
424 
425  os.str("");
426  os << "ClusterSize_" << wheelOrDiskType << "_" << wheelOrDiskNumber << "_Ring" << ring;
427  if (meWheelDisk[os.str()])
428  meWheelDisk[os.str()]->Fill(clusterSize);
429 
430  // ###################### Global ##################################
431 
432  os.str("");
433  os << "ClusterSize_" << RPCMonitorDigi::regionNames_[region + 1];
434  if (meRegion[os.str()])
435  meRegion[os.str()]->Fill(clusterSize);
436 
437  os.str("");
438  os << "ClusterSize_";
439  if (region == 0) {
440  os << "Layer" << layer;
441  } else {
442  os << "Ring" << ring;
443  }
444  if (meRegion[os.str()])
445  meRegion[os.str()]->Fill(clusterSize);
446 
447  } //end loop on recHits
448 
449  os.str("");
450  os << "BXWithData_" << nameRoll;
451  if (meMap[os.str()])
452  meMap[os.str()]->Fill(bxSet.size());
453 
454  os.str("");
455  os << "NumberOfClusters_" << nameRoll;
456  if (meMap[os.str()])
457  meMap[os.str()]->Fill(numberOfRecHits);
458 
459  os.str("");
460  os << "Multiplicity_" << RPCMonitorDigi::regionNames_[region + 1];
461  if (meRegion[os.str()])
462  meRegion[os.str()]->Fill(numDigi);
463 
464  os.str("");
465  if (region == 0) {
466  os << "Occupancy_for_Barrel";
467  if (meRegion[os.str()])
468  meRegion[os.str()]->Fill(sector, wheelOrDiskNumber, numDigi);
469  } else {
470  os << "Occupancy_for_Endcap";
471  int xbin = wheelOrDiskNumber + numberOfDisks_;
472  if (region == -1) {
473  xbin = wheelOrDiskNumber + numberOfDisks_ + 1;
474  }
475  if (meRegion[os.str()]) {
476  meRegion[os.str()]->Fill(xbin, ring, numDigi);
477  }
478  }
479 
480  os.str("");
481  os << "Multiplicity_" << nameRoll;
482  if (meMap[os.str()])
483  meMap[os.str()]->Fill(numDigi);
484 
485  } //end loop on rolls
486 
487  for (int i = 0; i < 3; i++) {
488  os.str("");
489  os << "NumberOfClusters_" << RPCMonitorDigi::regionNames_[i];
490  if (meRegion[os.str()])
491  meRegion[os.str()]->Fill(totalNumberOfRecHits[i]);
492  }
493 }
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
counter
Definition: counter.py:1
Handle.h
RPCMonitorDigi::counter
int counter
Definition: RPCMonitorDigi.h:51
mps_fire.i
i
Definition: mps_fire.py:428
RPCGeomServ
Definition: RPCGeomServ.h:8
RPCGeomServ::chambername
virtual std::string chambername()
Definition: RPCGeomServ.cc:89
MessageLogger.h
RPCDetId::station
int station() const
Definition: RPCDetId.h:78
RPCDetId::region
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
Definition: RPCDetId.h:53
RPCMonitorDigi::NumberOfRecHitMuon_
MonitorElement * NumberOfRecHitMuon_
Definition: RPCMonitorDigi.h:58
ESHandle.h
reco::Track::recHitsBegin
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:88
RPCMonitorDigi::muEtaCut_
float muEtaCut_
Definition: RPCMonitorDigi.h:53
edm::Run
Definition: Run.h:45
relativeConstraints.station
station
Definition: relativeConstraints.py:67
RPCMonitorDigi::performSourceOperation
void performSourceOperation(std::map< RPCDetId, std::vector< RPCRecHit > > &, std::string)
Definition: RPCMonitorDigi.cc:214
RPCDetId
Definition: RPCDetId.h:16
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
RPCMonitorDigi::NumberOfMuon_
MonitorElement * NumberOfMuon_
Definition: RPCMonitorDigi.h:59
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
RPCMonitorDigi::sectorRingNoiseCollection
std::map< std::string, MonitorElement * > sectorRingNoiseCollection
Definition: RPCMonitorDigi.h:71
RPCMonitorDigi::subsystemFolder_
std::string subsystemFolder_
Definition: RPCMonitorDigi.h:74
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
RPCChamber::rolls
const std::vector< const RPCRoll * > & rolls() const
Return the Rolls.
Definition: RPCChamber.cc:40
RPCMonitorDigi::numberOfDisks_
int numberOfDisks_
Definition: RPCMonitorDigi.h:61
edm::Handle
Definition: AssociativeIterator.h:50
RPCMonitorDigi::noiseFolder_
std::string noiseFolder_
Definition: RPCMonitorDigi.h:50
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
RPCChamber
Definition: RPCChamber.h:19
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
RPCMonitorDigi::meMuonCollection
std::map< std::string, std::map< std::string, MonitorElement * > > meMuonCollection
Definition: RPCMonitorDigi.h:63
reco::Muon
Definition: Muon.h:27
RPCMonitorDigi::RPCMonitorDigi
RPCMonitorDigi(const edm::ParameterSet &)
Definition: RPCMonitorDigi.cc:18
RPCMonitorDigi::bookRollME
void bookRollME(DQMStore::IBooker &, const RPCDetId &, const RPCGeometry *rpcGeo, const std::string &, std::map< std::string, MonitorElement * > &)
Booking of MonitoringElement for one RPCDetId (= roll)
Definition: RPCBookDetUnitME.cc:8
RPCGeomServ.h
alignCSCRings.s
s
Definition: alignCSCRings.py:92
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
RPCMonitorDigi::wheelDiskNoiseCollection
std::map< std::string, MonitorElement * > wheelDiskNoiseCollection
Definition: RPCMonitorDigi.h:69
RPCMonitorDigi::regionMuonCollection
std::map< std::string, MonitorElement * > regionMuonCollection
Definition: RPCMonitorDigi.h:65
rpcdqm::utils
Definition: utils.h:29
RPCMonitorDigi::muonLabel_
edm::EDGetTokenT< reco::CandidateView > muonLabel_
Definition: RPCMonitorDigi.h:76
RPCRecHit
Definition: RPCRecHit.h:14
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
reco::Track::recHitsEnd
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:91
reco::Track
Definition: Track.h:27
reco::Muon::outerTrack
virtual TrackRef outerTrack() const
reference to Track reconstructed in the muon detector only
Definition: Muon.h:48
edm::ESHandle< RPCGeometry >
RPCMonitorDigi::muPtCut_
float muPtCut_
Definition: RPCMonitorDigi.h:53
RPCGeomServ::name
virtual std::string name()
Definition: RPCGeomServ.cc:11
RPCGeometry::dets
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Definition: RPCGeometry.cc:24
RPCMonitorDigi::scalersRawToDigiLabel_
edm::EDGetTokenT< DcsStatusCollection > scalersRawToDigiLabel_
Definition: RPCMonitorDigi.h:78
edm::OwnVector::const_iterator
Definition: OwnVector.h:41
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::View::size
size_type size() const
RPCMonitorDigi::regionNames_
static const std::array< std::string, 3 > regionNames_
Definition: RPCMonitorDigi.h:48
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
reco::Muon::isGlobalMuon
bool isGlobalMuon() const override
Definition: Muon.h:299
RPCDetId::roll
int roll() const
Definition: RPCDetId.h:92
RPCMonitorDigi::bookWheelDiskME
void bookWheelDiskME(DQMStore::IBooker &, const std::string &, std::map< std::string, MonitorElement * > &)
Booking of MonitoringElemnt at Wheel/Disk level.
Definition: RPCBookDetUnitME.cc:197
edm::ParameterSet
Definition: ParameterSet.h:47
EgHLTOffHistBins_cfi.nr
nr
Definition: EgHLTOffHistBins_cfi.py:4
RPCMonitorDigi::useMuonDigis_
bool useMuonDigis_
Definition: RPCMonitorDigi.h:43
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
RPCMonitorDigi::meNoiseCollection
std::map< std::string, std::map< std::string, MonitorElement * > > meNoiseCollection
Definition: RPCMonitorDigi.h:68
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
createfilelist.int
int
Definition: createfilelist.py:10
RPCMonitorDigi::numberOfInnerRings_
int numberOfInnerRings_
Definition: RPCMonitorDigi.h:61
RPCMonitorDigi::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: RPCMonitorDigi.cc:43
edm::EventSetup
Definition: EventSetup.h:58
RPCMonitorDigi::noiseRPCEvents_
MonitorElement * noiseRPCEvents_
Definition: RPCMonitorDigi.h:55
RPCMonitorDigi::bookRegionME
void bookRegionME(DQMStore::IBooker &, const std::string &, std::map< std::string, MonitorElement * > &)
Booking of MonitoringElemnt at region (Barrel/Endcap) level.
Definition: RPCBookDetUnitME.cc:287
rpcdqm::utils::detId2RollNr
int detId2RollNr(const RPCDetId &_id)
Definition: utils.h:31
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
TrackingRecHit::clone
virtual TrackingRecHit * clone() const =0
utils.h
reco::Candidate
Definition: Candidate.h:27
RPCDetId::ring
int ring() const
Definition: RPCDetId.h:59
TrackingRecHit
Definition: TrackingRecHit.h:21
RPCMonitorDigi::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: RPCMonitorDigi.cc:116
RPCMonitorDigi::sectorRingMuonCollection
std::map< std::string, MonitorElement * > sectorRingMuonCollection
Definition: RPCMonitorDigi.h:66
alignCSCRings.r
r
Definition: alignCSCRings.py:93
RPCGeomServ::segment
virtual int segment()
Definition: RPCGeomServ.cc:361
GeomDet.h
RPCMonitorDigi::globalFolder_
std::string globalFolder_
Definition: RPCMonitorDigi.h:73
RPCMonitorDigi::regionNoiseCollection
std::map< std::string, MonitorElement * > regionNoiseCollection
Definition: RPCMonitorDigi.h:70
RPCMonitorDigi::bookSectorRingME
void bookSectorRingME(DQMStore::IBooker &, const std::string &, std::map< std::string, MonitorElement * > &)
Booking of MonitoringElement at Sector/Ring level.
Definition: RPCBookDetUnitME.cc:76
MuonSubdetId::RPC
static constexpr int RPC
Definition: MuonSubdetId.h:13
RPCMonitorDigi::useRollInfo_
bool useRollInfo_
Definition: RPCMonitorDigi.h:54
RPCDetId::sector
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
Definition: RPCDetId.h:81
RPCMonitorDigi::muonFolder_
std::string muonFolder_
Definition: RPCMonitorDigi.h:49
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
dqm::implementation::IBooker
Definition: DQMStore.h:43
RPCMonitorDigi::wheelDiskMuonCollection
std::map< std::string, MonitorElement * > wheelDiskMuonCollection
Definition: RPCMonitorDigi.h:64
RPCGeometry
Definition: RPCGeometry.h:20
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
genParticles_cff.map
map
Definition: genParticles_cff.py:11
RPCMonitorDigi::rpcRecHitLabel_
edm::EDGetTokenT< RPCRecHitCollection > rpcRecHitLabel_
Definition: RPCMonitorDigi.h:77
RPCRecHit::rpcId
RPCDetId rpcId() const
Return the rpcId.
Definition: RPCRecHit.h:71
MuonGeometryRecord.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
RPCDetId::layer
int layer() const
Definition: RPCDetId.h:85
patZpeak.numMuons
numMuons
Definition: patZpeak.py:41
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
RPCGeometry.h
edm::InputTag
Definition: InputTag.h:15
RPCMonitorDigi.h
RPCMonitorDigi::muonRPCEvents_
MonitorElement * muonRPCEvents_
Definition: RPCMonitorDigi.h:56
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
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