CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
DTSegmentAnalysisTask Class Reference

#include <DTSegmentAnalysisTask.h>

Inheritance diagram for DTSegmentAnalysisTask:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &setup) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 BeginRun. More...
 
 DTSegmentAnalysisTask (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~DTSegmentAnalysisTask () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

void bookHistos (DQMStore::IBooker &ibooker, DTChamberId chamberId)
 
void fillHistos (DTChamberId chamberId, int nHits, float chi2)
 

Private Attributes

bool checkNoisyChannels
 
bool detailedAnalysis
 
edm::ESHandle< DTGeometrydtGeom
 
std::map< DTChamberId, std::vector< MonitorElement * > > histosPerCh
 
bool hltDQMMode
 
MonitorElementnEventMonitor
 
int nevents
 
int nhitsCut
 
double phiSegmCut
 
edm::EDGetTokenT< DTRecSegment4DCollectionrecHits4DToken_
 
std::map< int, MonitorElement * > summaryHistos
 
std::string topHistoFolder
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

DQM Analysis of 4D DT segments, it produces plots about:

Author
G. Cerminara - INFN Torino

Definition at line 38 of file DTSegmentAnalysisTask.h.

Constructor & Destructor Documentation

◆ DTSegmentAnalysisTask()

DTSegmentAnalysisTask::DTSegmentAnalysisTask ( const edm::ParameterSet pset)

Constructor.

Definition at line 35 of file DTSegmentAnalysisTask.cc.

35  : nevents(0) {
36  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask") << "[DTSegmentAnalysisTask] Constructor called!";
37 
38  // switch for detailed analysis
39  detailedAnalysis = pset.getUntrackedParameter<bool>("detailedAnalysis", false);
40  // the name of the 4D rec hits collection
41  recHits4DToken_ = consumes<DTRecSegment4DCollection>(edm::InputTag(pset.getParameter<string>("recHits4DLabel")));
42  // Get the map of noisy channels
43  checkNoisyChannels = pset.getUntrackedParameter<bool>("checkNoisyChannels", false);
44  phiSegmCut = pset.getUntrackedParameter<double>("phiSegmCut", 30.);
45  nhitsCut = pset.getUntrackedParameter<int>("nhitsCut", 12);
46 
47  // top folder for the histograms in DQMStore
48  topHistoFolder = pset.getUntrackedParameter<string>("topHistoFolder", "DT/02-Segments");
49  // hlt DQM mode
50  hltDQMMode = pset.getUntrackedParameter<bool>("hltDQMMode", false);
51 }

References checkNoisyChannels, detailedAnalysis, hltDQMMode, nhitsCut, phiSegmCut, muonDTDigis_cfi::pset, recHits4DToken_, and topHistoFolder.

◆ ~DTSegmentAnalysisTask()

DTSegmentAnalysisTask::~DTSegmentAnalysisTask ( )
override

Destructor.

Definition at line 53 of file DTSegmentAnalysisTask.cc.

53  {
54  //FR moved fron endjob
55  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask") << "[DTSegmentAnalysisTask] Destructor called!";
56 }

Member Function Documentation

◆ analyze()

void DTSegmentAnalysisTask::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 106 of file DTSegmentAnalysisTask.cc.

106  {
107  nevents++;
109 
110  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask")
111  << "[DTSegmentAnalysisTask] Analyze #Run: " << event.id().run() << " #Event: " << event.id().event();
112  if (!(event.id().event() % 1000))
113  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask")
114  << "[DTSegmentAnalysisTask] Analyze #Run: " << event.id().run() << " #Event: " << event.id().event();
115 
116  ESHandle<DTStatusFlag> statusMap;
117  if (checkNoisyChannels) {
118  setup.get<DTStatusFlagRcd>().get(statusMap);
119  }
120 
121  // -- 4D segment analysis -----------------------------------------------------
122 
123  // Get the 4D segment collection from the event
125  event.getByToken(recHits4DToken_, all4DSegments);
126 
127  if (!all4DSegments.isValid())
128  return;
129 
130  // Loop over all chambers containing a segment
132  for (chamberId = all4DSegments->id_begin(); chamberId != all4DSegments->id_end(); ++chamberId) {
133  // Get the range for the corresponding ChamerId
134  DTRecSegment4DCollection::range range = all4DSegments->get(*chamberId);
135 
136  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask")
137  << " Chamber: " << *chamberId << " has " << distance(range.first, range.second) << " 4D segments";
138 
139  // Loop over the rechits of this ChamerId
140  for (DTRecSegment4DCollection::const_iterator segment4D = range.first; segment4D != range.second; ++segment4D) {
141  //FOR NOISY CHANNELS////////////////////////////////
142  bool segmNoisy = false;
143  if (checkNoisyChannels) {
144  if ((*segment4D).hasPhi()) {
145  const DTChamberRecSegment2D* phiSeg = (*segment4D).phiSegment();
146  vector<DTRecHit1D> phiHits = phiSeg->specificRecHits();
147  map<DTSuperLayerId, vector<DTRecHit1D> > hitsBySLMap;
148  for (vector<DTRecHit1D>::const_iterator hit = phiHits.begin(); hit != phiHits.end(); ++hit) {
149  DTWireId wireId = (*hit).wireId();
150 
151  // Check for noisy channels to skip them
152  bool isNoisy = false;
153  bool isFEMasked = false;
154  bool isTDCMasked = false;
155  bool isTrigMask = false;
156  bool isDead = false;
157  bool isNohv = false;
158  statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
159  if (isNoisy) {
160  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask")
161  << "Wire: " << wireId << " is noisy, skipping!";
162  segmNoisy = true;
163  }
164  }
165  }
166 
167  if ((*segment4D).hasZed()) {
168  const DTSLRecSegment2D* zSeg = (*segment4D).zSegment(); // zSeg lives in the SL RF
169  // Check for noisy channels to skip them
170  vector<DTRecHit1D> zHits = zSeg->specificRecHits();
171  for (vector<DTRecHit1D>::const_iterator hit = zHits.begin(); hit != zHits.end(); ++hit) {
172  DTWireId wireId = (*hit).wireId();
173  bool isNoisy = false;
174  bool isFEMasked = false;
175  bool isTDCMasked = false;
176  bool isTrigMask = false;
177  bool isDead = false;
178  bool isNohv = false;
179  statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
180  if (isNoisy) {
181  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask")
182  << "Wire: " << wireId << " is noisy, skipping!";
183  segmNoisy = true;
184  }
185  }
186  }
187 
188  } // end of switch on noisy channels
189  if (segmNoisy) {
190  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask")
191  << "skipping the segment: it contains noisy cells";
192  continue;
193  }
194  //END FOR NOISY CHANNELS////////////////////////////////
195 
196  int nHits = 0;
197  if ((*segment4D).hasPhi())
198  nHits = (((*segment4D).phiSegment())->specificRecHits()).size();
199  if ((*segment4D).hasZed())
200  nHits = nHits + ((((*segment4D).zSegment())->specificRecHits()).size());
201 
202  double anglePhiSegm(0.);
203  if ((*segment4D).hasPhi()) {
204  double xdir = (*segment4D).phiSegment()->localDirection().x();
205  double zdir = (*segment4D).phiSegment()->localDirection().z();
206 
207  anglePhiSegm = atan(xdir / zdir) * 180. / TMath::Pi();
208  }
209  if (fabs(anglePhiSegm) > phiSegmCut)
210  continue;
211  // If the segment is in Wh+-2/SecX/MB1, get the DT chambers just above and check if there is a segment
212  // to validate the segment present in MB1
213  if (fabs((*chamberId).wheel()) == 2 && (*chamberId).station() == 1) {
214  bool segmOk = false;
215  int mb(2);
216  while (mb < 4) {
217  DTChamberId checkMB((*chamberId).wheel(), mb, (*chamberId).sector());
218  DTRecSegment4DCollection::range ckrange = all4DSegments->get(checkMB);
219 
220  for (DTRecSegment4DCollection::const_iterator cksegment4D = ckrange.first; cksegment4D != ckrange.second;
221  ++cksegment4D) {
222  int nHits = 0;
223  if ((*cksegment4D).hasPhi())
224  nHits = (((*cksegment4D).phiSegment())->specificRecHits()).size();
225  if ((*cksegment4D).hasZed())
226  nHits = nHits + ((((*cksegment4D).zSegment())->specificRecHits()).size());
227 
228  if (nHits >= nhitsCut)
229  segmOk = true;
230  }
231  mb++;
232  }
233 
234  if (!segmOk)
235  continue;
236  }
237  fillHistos(*chamberId, nHits, (*segment4D).chi2() / (*segment4D).degreesOfFreedom());
238  }
239  }
240 
241  // -----------------------------------------------------------------------------
242 }

References DTStatusFlag::cellStatus(), checkNoisyChannels, HLT_2018_cff::distance, dqm::impl::MonitorElement::Fill(), fillHistos(), get, edm::HandleBase::isValid(), nEventMonitor, nevents, nhitsCut, phiSegmCut, Pi, FastTimerService_cff::range, recHits4DToken_, singleTopDQM_cfi::setup, findQualityFiles::size, DTRecSegment2D::specificRecHits(), and xdir.

◆ bookHistograms()

void DTSegmentAnalysisTask::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  context 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 63 of file DTSegmentAnalysisTask.cc.

65  {
66  if (!hltDQMMode) {
67  ibooker.setCurrentFolder("DT/EventInfo/Counters");
68  nEventMonitor = ibooker.bookFloat("nProcessedEventsSegment");
69  }
70 
71  for (int wh = -2; wh <= 2; wh++) {
72  stringstream wheel;
73  wheel << wh;
74  ibooker.setCurrentFolder(topHistoFolder + "/Wheel" + wheel.str());
75  string histoName = "numberOfSegments_W" + wheel.str();
76 
77  summaryHistos[wh] = ibooker.book2D(histoName.c_str(), histoName.c_str(), 12, 1, 13, 4, 1, 5);
78  summaryHistos[wh]->setAxisTitle("Sector", 1);
79  summaryHistos[wh]->setBinLabel(1, "1", 1);
80  summaryHistos[wh]->setBinLabel(2, "2", 1);
81  summaryHistos[wh]->setBinLabel(3, "3", 1);
82  summaryHistos[wh]->setBinLabel(4, "4", 1);
83  summaryHistos[wh]->setBinLabel(5, "5", 1);
84  summaryHistos[wh]->setBinLabel(6, "6", 1);
85  summaryHistos[wh]->setBinLabel(7, "7", 1);
86  summaryHistos[wh]->setBinLabel(8, "8", 1);
87  summaryHistos[wh]->setBinLabel(9, "9", 1);
88  summaryHistos[wh]->setBinLabel(10, "10", 1);
89  summaryHistos[wh]->setBinLabel(11, "11", 1);
90  summaryHistos[wh]->setBinLabel(12, "12", 1);
91  summaryHistos[wh]->setBinLabel(1, "MB1", 2);
92  summaryHistos[wh]->setBinLabel(2, "MB2", 2);
93  summaryHistos[wh]->setBinLabel(3, "MB3", 2);
94  summaryHistos[wh]->setBinLabel(4, "MB4", 2);
95  }
96 
97  // loop over all the DT chambers & book the histos
98  const vector<const DTChamber*>& chambers = dtGeom->chambers();
99  vector<const DTChamber*>::const_iterator ch_it = chambers.begin();
100  vector<const DTChamber*>::const_iterator ch_end = chambers.end();
101  for (; ch_it != ch_end; ++ch_it) {
102  bookHistos(ibooker, (*ch_it)->id());
103  }
104 }

References dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookFloat(), bookHistos(), DTGeometry::chambers(), chambers, dtGeom, HltBtagPostValidation_cff::histoName, hltDQMMode, nEventMonitor, dqm::implementation::NavigatorBase::setCurrentFolder(), summaryHistos, topHistoFolder, and makeMuonMisalignmentScenario::wheel.

◆ bookHistos()

void DTSegmentAnalysisTask::bookHistos ( DQMStore::IBooker ibooker,
DTChamberId  chamberId 
)
private

Definition at line 245 of file DTSegmentAnalysisTask.cc.

245  {
246  edm::LogVerbatim("DTDQM|DTMonitorModule|DTSegmentAnalysisTask") << " Booking histos for chamber: " << chamberId;
247 
248  // Compose the chamber name
249  stringstream wheel;
250  wheel << chamberId.wheel();
251  stringstream station;
252  station << chamberId.station();
253  stringstream sector;
254  sector << chamberId.sector();
255 
256  string chamberHistoName = "_W" + wheel.str() + "_St" + station.str() + "_Sec" + sector.str();
257 
258  ibooker.setCurrentFolder(topHistoFolder + "/Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" +
259  station.str());
260 
261  // Create the monitor elements
262  vector<MonitorElement*> histos;
263  histos.push_back(ibooker.book1D("h4DSegmNHits" + chamberHistoName, "# of hits per segment", 16, 0.5, 16.5));
264  if (detailedAnalysis) {
265  histos.push_back(ibooker.book1D("h4DChi2" + chamberHistoName, "4D Segment reduced Chi2", 20, 0, 20));
266  }
267  histosPerCh[chamberId] = histos;
268 }

References dqm::implementation::IBooker::book1D(), detailedAnalysis, combine::histos, histosPerCh, DTChamberId::sector(), dqm::implementation::NavigatorBase::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, topHistoFolder, DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

Referenced by bookHistograms().

◆ dqmBeginRun()

void DTSegmentAnalysisTask::dqmBeginRun ( const edm::Run run,
const edm::EventSetup context 
)
overridevirtual

BeginRun.

Reimplemented from DQMEDAnalyzer.

Definition at line 58 of file DTSegmentAnalysisTask.cc.

58  {
59  // Get the DT Geometry
60  context.get<MuonGeometryRecord>().get(dtGeom);
61 }

References dtGeom, edm::EventSetup::get(), and get.

◆ fillHistos()

void DTSegmentAnalysisTask::fillHistos ( DTChamberId  chamberId,
int  nHits,
float  chi2 
)
private

Definition at line 271 of file DTSegmentAnalysisTask.cc.

271  {
272  int sector = chamberId.sector();
273  if (chamberId.sector() == 13) {
274  sector = 4;
275  } else if (chamberId.sector() == 14) {
276  sector = 10;
277  }
278 
279  summaryHistos[chamberId.wheel()]->Fill(sector, chamberId.station());
280 
281  vector<MonitorElement*> histos = histosPerCh[chamberId];
282  histos[0]->Fill(nHits);
283  if (detailedAnalysis) {
284  histos[1]->Fill(chi2);
285  }
286 }

References hltPixelTracks_cff::chi2, detailedAnalysis, combine::histos, histosPerCh, DTChamberId::sector(), DTChamberId::station(), summaryHistos, and DTChamberId::wheel().

Referenced by analyze().

Member Data Documentation

◆ checkNoisyChannels

bool DTSegmentAnalysisTask::checkNoisyChannels
private

Definition at line 67 of file DTSegmentAnalysisTask.h.

Referenced by analyze(), and DTSegmentAnalysisTask().

◆ detailedAnalysis

bool DTSegmentAnalysisTask::detailedAnalysis
private

Definition at line 58 of file DTSegmentAnalysisTask.h.

Referenced by bookHistos(), DTSegmentAnalysisTask(), and fillHistos().

◆ dtGeom

edm::ESHandle<DTGeometry> DTSegmentAnalysisTask::dtGeom
private

Definition at line 61 of file DTSegmentAnalysisTask.h.

Referenced by bookHistograms(), and dqmBeginRun().

◆ histosPerCh

std::map<DTChamberId, std::vector<MonitorElement*> > DTSegmentAnalysisTask::histosPerCh
private

Definition at line 75 of file DTSegmentAnalysisTask.h.

Referenced by bookHistos(), and fillHistos().

◆ hltDQMMode

bool DTSegmentAnalysisTask::hltDQMMode
private

Definition at line 82 of file DTSegmentAnalysisTask.h.

Referenced by bookHistograms(), and DTSegmentAnalysisTask().

◆ nEventMonitor

MonitorElement* DTSegmentAnalysisTask::nEventMonitor
private

Definition at line 88 of file DTSegmentAnalysisTask.h.

Referenced by analyze(), and bookHistograms().

◆ nevents

int DTSegmentAnalysisTask::nevents
private

Definition at line 78 of file DTSegmentAnalysisTask.h.

Referenced by analyze().

◆ nhitsCut

int DTSegmentAnalysisTask::nhitsCut
private

Definition at line 86 of file DTSegmentAnalysisTask.h.

Referenced by analyze(), and DTSegmentAnalysisTask().

◆ phiSegmCut

double DTSegmentAnalysisTask::phiSegmCut
private

Definition at line 84 of file DTSegmentAnalysisTask.h.

Referenced by analyze(), and DTSegmentAnalysisTask().

◆ recHits4DToken_

edm::EDGetTokenT<DTRecSegment4DCollection> DTSegmentAnalysisTask::recHits4DToken_
private

Definition at line 64 of file DTSegmentAnalysisTask.h.

Referenced by analyze(), and DTSegmentAnalysisTask().

◆ summaryHistos

std::map<int, MonitorElement*> DTSegmentAnalysisTask::summaryHistos
private

Definition at line 76 of file DTSegmentAnalysisTask.h.

Referenced by bookHistograms(), and fillHistos().

◆ topHistoFolder

std::string DTSegmentAnalysisTask::topHistoFolder
private

Definition at line 80 of file DTSegmentAnalysisTask.h.

Referenced by bookHistograms(), bookHistos(), and DTSegmentAnalysisTask().

DTSegmentAnalysisTask::dtGeom
edm::ESHandle< DTGeometry > dtGeom
Definition: DTSegmentAnalysisTask.h:61
DTSegmentAnalysisTask::topHistoFolder
std::string topHistoFolder
Definition: DTSegmentAnalysisTask.h:80
DTSLRecSegment2D
Definition: DTSLRecSegment2D.h:15
DTSegmentAnalysisTask::nhitsCut
int nhitsCut
Definition: DTSegmentAnalysisTask.h:86
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
DTSegmentAnalysisTask::checkNoisyChannels
bool checkNoisyChannels
Definition: DTSegmentAnalysisTask.h:67
DTStatusFlag::cellStatus
int cellStatus(int wheelId, int stationId, int sectorId, int slId, int layerId, int cellId, bool &noiseFlag, bool &feMask, bool &tdcMask, bool &trigMask, bool &deadFlag, bool &nohvFlag) const
get content
Definition: DTStatusFlag.h:88
relativeConstraints.station
station
Definition: relativeConstraints.py:67
HLT_2018_cff.distance
distance
Definition: HLT_2018_cff.py:6417
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
edm::Handle< DTRecSegment4DCollection >
edm::RangeMap::id_iterator
identifier iterator
Definition: RangeMap.h:130
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
DTWireId
Definition: DTWireId.h:12
DTGeometry::chambers
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
edm::ESHandle
Definition: DTSurvey.h:22
DTStatusFlagRcd
Definition: DTStatusFlagRcd.h:5
DTSegmentAnalysisTask::fillHistos
void fillHistos(DTChamberId chamberId, int nHits, float chi2)
Definition: DTSegmentAnalysisTask.cc:271
edm::RangeMap::const_iterator
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
DTChamberRecSegment2D
Definition: DTChamberRecSegment2D.h:31
edm::LogVerbatim
Definition: MessageLogger.h:297
chambers
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
xdir
Definition: DeviationsFromFileSensor2D.cc:15
get
#define get
combine.histos
histos
Definition: combine.py:4
DTSegmentAnalysisTask::nEventMonitor
MonitorElement * nEventMonitor
Definition: DTSegmentAnalysisTask.h:88
DTChamberId::sector
int sector() const
Definition: DTChamberId.h:49
edm::RangeMap::range
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:50
DTSegmentAnalysisTask::hltDQMMode
bool hltDQMMode
Definition: DTSegmentAnalysisTask.h:82
DTSegmentAnalysisTask::histosPerCh
std::map< DTChamberId, std::vector< MonitorElement * > > histosPerCh
Definition: DTSegmentAnalysisTask.h:75
DTSegmentAnalysisTask::detailedAnalysis
bool detailedAnalysis
Definition: DTSegmentAnalysisTask.h:58
DTRecSegment2D::specificRecHits
std::vector< DTRecHit1D > specificRecHits() const
Access to specific components.
Definition: DTRecSegment2D.cc:104
HltBtagPostValidation_cff.histoName
histoName
Definition: HltBtagPostValidation_cff.py:17
DTSegmentAnalysisTask::summaryHistos
std::map< int, MonitorElement * > summaryHistos
Definition: DTSegmentAnalysisTask.h:76
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
DTSegmentAnalysisTask::recHits4DToken_
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
Definition: DTSegmentAnalysisTask.h:64
DTSegmentAnalysisTask::bookHistos
void bookHistos(DQMStore::IBooker &ibooker, DTChamberId chamberId)
Definition: DTSegmentAnalysisTask.cc:245
DTChamberId
Definition: DTChamberId.h:14
DTSegmentAnalysisTask::nevents
int nevents
Definition: DTSegmentAnalysisTask.h:78
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
event
Definition: event.py:1
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
DTSegmentAnalysisTask::phiSegmCut
double phiSegmCut
Definition: DTSegmentAnalysisTask.h:84
DTChamberId::wheel
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
edm::InputTag
Definition: InputTag.h:15
DTChamberId::station
int station() const
Return the station number.
Definition: DTChamberId.h:42
hit
Definition: SiStripHitEffFromCalibTree.cc:88
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443