CMS 3D CMS Logo

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