CMS 3D CMS Logo

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

#include <MuonIdDQM.h>

Inheritance diagram for MuonIdDQM:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 MuonIdDQM (const edm::ParameterSet &)
 
 ~MuonIdDQM () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

virtual void Fill (MonitorElement *, float)
 

Private Attributes

std::string baseFolder_
 
edm::Handle< CSCSegmentCollectioncscSegmentCollectionH_
 
edm::Handle< DTRecSegment4DCollectiondtSegmentCollectionH_
 
edm::ESHandle< GlobalTrackingGeometrygeometry_
 
MonitorElementhCSCDdXdZ [4][4]
 
MonitorElementhCSCDdYdZ [4][4]
 
MonitorElementhCSCDx [4][4]
 
MonitorElementhCSCDy [4][4]
 
MonitorElementhCSCNumSegments [4][4]
 
MonitorElementhCSCPulldXdZ [4][4]
 
MonitorElementhCSCPulldYdZ [4][4]
 
MonitorElementhCSCPullx [4][4]
 
MonitorElementhCSCPully [4][4]
 
MonitorElementhDTDdXdZ [4][4]
 
MonitorElementhDTDdYdZ [4][3]
 
MonitorElementhDTDx [4][4]
 
MonitorElementhDTDy [4][3]
 
MonitorElementhDTNumSegments [4][4]
 
MonitorElementhDTPulldXdZ [4][4]
 
MonitorElementhDTPulldYdZ [4][3]
 
MonitorElementhDTPullx [4][4]
 
MonitorElementhDTPully [4][3]
 
MonitorElementhNumChambers [4]
 
MonitorElementhNumChambersNoRPC [4]
 
MonitorElementhNumMatches [4]
 
MonitorElementhSegmentIsAssociatedBool
 
edm::EDGetTokenT< CSCSegmentCollectioninputCSCSegmentCollection_
 
edm::EDGetTokenT< DTRecSegment4DCollectioninputDTRecSegment4DCollection_
 
edm::EDGetTokenT< reco::MuonCollectioninputMuonCollection_
 
edm::Handle< reco::MuonCollectionmuonCollectionH_
 
bool useGlobalMuons_
 
bool useGlobalMuonsNotTrackerMuons_
 
bool useTrackerMuons_
 
bool useTrackerMuonsNotGlobalMuons_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 49 of file MuonIdDQM.h.

Constructor & Destructor Documentation

MuonIdDQM::MuonIdDQM ( const edm::ParameterSet iConfig)
explicit

Definition at line 3 of file MuonIdDQM.cc.

References baseFolder_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputCSCSegmentCollection_, inputDTRecSegment4DCollection_, inputMuonCollection_, AlCaHLTBitMon_QueryRunRegistry::string, useGlobalMuons_, useGlobalMuonsNotTrackerMuons_, useTrackerMuons_, and useTrackerMuonsNotGlobalMuons_.

3  {
4  inputMuonCollection_ = consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("inputMuonCollection"));
6  consumes<DTRecSegment4DCollection>(iConfig.getParameter<edm::InputTag>("inputDTRecSegment4DCollection"));
8  consumes<CSCSegmentCollection>(iConfig.getParameter<edm::InputTag>("inputCSCSegmentCollection"));
9  useTrackerMuons_ = iConfig.getUntrackedParameter<bool>("useTrackerMuons");
10  useGlobalMuons_ = iConfig.getUntrackedParameter<bool>("useGlobalMuons");
11  useTrackerMuonsNotGlobalMuons_ = iConfig.getUntrackedParameter<bool>("useTrackerMuonsNotGlobalMuons");
12  useGlobalMuonsNotTrackerMuons_ = iConfig.getUntrackedParameter<bool>("useGlobalMuonsNotTrackerMuons");
13  baseFolder_ = iConfig.getUntrackedParameter<std::string>("baseFolder");
14 }
bool useTrackerMuons_
Definition: MuonIdDQM.h:65
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< DTRecSegment4DCollection > inputDTRecSegment4DCollection_
Definition: MuonIdDQM.h:63
bool useGlobalMuonsNotTrackerMuons_
Definition: MuonIdDQM.h:68
bool useTrackerMuonsNotGlobalMuons_
Definition: MuonIdDQM.h:67
bool useGlobalMuons_
Definition: MuonIdDQM.h:66
edm::EDGetTokenT< reco::MuonCollection > inputMuonCollection_
Definition: MuonIdDQM.h:62
edm::EDGetTokenT< CSCSegmentCollection > inputCSCSegmentCollection_
Definition: MuonIdDQM.h:64
std::string baseFolder_
Definition: MuonIdDQM.h:69
MuonIdDQM::~MuonIdDQM ( )
override

Definition at line 16 of file MuonIdDQM.cc.

16 {}

Member Function Documentation

void MuonIdDQM::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 126 of file MuonIdDQM.cc.

References MuonSubdetId::CSC, cscSegmentCollectionH_, MuonSubdetId::DT, dtSegmentCollectionH_, Fill(), dqm::impl::MonitorElement::Fill(), geometry_, edm::EventSetup::get(), edm::Event::getByToken(), hCSCDdXdZ, hCSCDdYdZ, hCSCDx, hCSCDy, hCSCNumSegments, hCSCPulldXdZ, hCSCPulldYdZ, hCSCPullx, hCSCPully, hDTDdXdZ, hDTDdYdZ, hDTDx, hDTDy, hDTNumSegments, hDTPulldXdZ, hDTPulldYdZ, hDTPullx, hDTPully, hNumChambers, hNumChambersNoRPC, hNumMatches, hSegmentIsAssociatedBool, mps_fire::i, inputCSCSegmentCollection_, inputDTRecSegment4DCollection_, inputMuonCollection_, HLT_2018_cff::muon, muonCollectionH_, mathSSE::sqrt(), relativeConstraints::station, useGlobalMuons_, useGlobalMuonsNotTrackerMuons_, useTrackerMuons_, useTrackerMuonsNotGlobalMuons_, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

126  {
127  using namespace edm;
128  using namespace reco;
129 
134 
135  for (MuonCollection::const_iterator muon = muonCollectionH_->begin(); muon != muonCollectionH_->end(); ++muon) {
136  // trackerMuon == 0; globalMuon == 1; trackerMuon && !globalMuon == 2; globalMuon && !trackerMuon == 3
137  for (unsigned int i = 0; i < 4; i++) {
138  if (i == 0 && (!useTrackerMuons_ || !muon->isTrackerMuon()))
139  continue;
140  if (i == 1 && (!useGlobalMuons_ || !muon->isGlobalMuon()))
141  continue;
142  if (i == 2 && (!useTrackerMuonsNotGlobalMuons_ || (!(muon->isTrackerMuon() && !muon->isGlobalMuon()))))
143  continue;
144  if (i == 3 && (!useGlobalMuonsNotTrackerMuons_ || (!(muon->isGlobalMuon() && !muon->isTrackerMuon()))))
145  continue;
146 
147  hNumChambers[i]->Fill(muon->numberOfChambers());
148  hNumMatches[i]->Fill(muon->numberOfMatches(Muon::SegmentAndTrackArbitration));
149  hNumChambersNoRPC[i]->Fill(muon->numberOfChambersCSCorDT());
150 
151  // by station
152  for (int station = 0; station < 4; ++station) {
153  // only fill num segments if we crossed (or nearly crossed) a chamber
154  if (muon->trackX(station + 1, MuonSubdetId::DT, Muon::NoArbitration) < 900000)
155  hDTNumSegments[i][station]->Fill(muon->numberOfSegments(station + 1, MuonSubdetId::DT, Muon::NoArbitration));
156  Fill(hDTDx[i][station], muon->dX(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration));
157  Fill(hDTPullx[i][station], muon->pullX(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration, true));
158  Fill(hDTDdXdZ[i][station], muon->dDxDz(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration));
159  Fill(hDTPulldXdZ[i][station],
160  muon->pullDxDz(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration, true));
161 
162  if (station < 3) {
163  Fill(hDTDy[i][station], muon->dY(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration));
164  Fill(hDTPully[i][station],
165  muon->pullY(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration, true));
166  Fill(hDTDdYdZ[i][station], muon->dDyDz(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration));
167  Fill(hDTPulldYdZ[i][station],
168  muon->pullDyDz(station + 1, MuonSubdetId::DT, Muon::SegmentAndTrackArbitration, true));
169  }
170 
171  // only fill num segments if we crossed (or nearly crossed) a chamber
172  if (muon->trackX(station + 1, MuonSubdetId::CSC, Muon::NoArbitration) < 900000)
173  hCSCNumSegments[i][station]->Fill(
174  muon->numberOfSegments(station + 1, MuonSubdetId::CSC, Muon::NoArbitration));
175  Fill(hCSCDx[i][station], muon->dX(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration));
176  Fill(hCSCPullx[i][station],
177  muon->pullX(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration, true));
178  Fill(hCSCDdXdZ[i][station], muon->dDxDz(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration));
179  Fill(hCSCPulldXdZ[i][station],
180  muon->pullDxDz(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration, true));
181  Fill(hCSCDy[i][station], muon->dY(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration));
182  Fill(hCSCPully[i][station],
183  muon->pullY(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration, true));
184  Fill(hCSCDdYdZ[i][station], muon->dDyDz(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration));
185  Fill(hCSCPulldYdZ[i][station],
186  muon->pullDyDz(station + 1, MuonSubdetId::CSC, Muon::SegmentAndTrackArbitration, true));
187  }
188  }
189  } // muon
190 
192  segment != dtSegmentCollectionH_->end();
193  ++segment) {
194  LocalPoint segmentLocalPosition = segment->localPosition();
195  LocalVector segmentLocalDirection = segment->localDirection();
196  LocalError segmentLocalPositionError = segment->localPositionError();
197  LocalError segmentLocalDirectionError = segment->localDirectionError();
198  bool segmentFound = false;
199 
200  for (MuonCollection::const_iterator muon = muonCollectionH_->begin(); muon != muonCollectionH_->end(); ++muon) {
201  if (!muon->isMatchesValid())
202  continue;
203 
204  for (std::vector<MuonChamberMatch>::const_iterator chamberMatch = muon->matches().begin();
205  chamberMatch != muon->matches().end();
206  ++chamberMatch) {
207  for (std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
208  segmentMatch != chamberMatch->segmentMatches.end();
209  ++segmentMatch) {
210  if (fabs(segmentMatch->x - segmentLocalPosition.x()) < 1E-6 &&
211  fabs(segmentMatch->y - segmentLocalPosition.y()) < 1E-6 &&
212  fabs(segmentMatch->dXdZ - segmentLocalDirection.x() / segmentLocalDirection.z()) < 1E-6 &&
213  fabs(segmentMatch->dYdZ - segmentLocalDirection.y() / segmentLocalDirection.z()) < 1E-6 &&
214  fabs(segmentMatch->xErr - sqrt(segmentLocalPositionError.xx())) < 1E-6 &&
215  fabs(segmentMatch->yErr - sqrt(segmentLocalPositionError.yy())) < 1E-6 &&
216  fabs(segmentMatch->dXdZErr - sqrt(segmentLocalDirectionError.xx())) < 1E-6 &&
217  fabs(segmentMatch->dYdZErr - sqrt(segmentLocalDirectionError.yy())) < 1E-6) {
218  segmentFound = true;
219  break;
220  }
221  } // segmentMatch
222  if (segmentFound)
223  break;
224  } // chamberMatch
225  if (segmentFound)
226  break;
227  } // muon
228 
229  if (segmentFound)
231  else
233  } // dt segment
234 
236  segment != cscSegmentCollectionH_->end();
237  ++segment) {
238  LocalPoint segmentLocalPosition = segment->localPosition();
239  LocalVector segmentLocalDirection = segment->localDirection();
240  LocalError segmentLocalPositionError = segment->localPositionError();
241  LocalError segmentLocalDirectionError = segment->localDirectionError();
242  bool segmentFound = false;
243 
244  for (MuonCollection::const_iterator muon = muonCollectionH_->begin(); muon != muonCollectionH_->end(); ++muon) {
245  if (!muon->isMatchesValid())
246  continue;
247 
248  for (std::vector<MuonChamberMatch>::const_iterator chamberMatch = muon->matches().begin();
249  chamberMatch != muon->matches().end();
250  ++chamberMatch) {
251  for (std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
252  segmentMatch != chamberMatch->segmentMatches.end();
253  ++segmentMatch) {
254  if (fabs(segmentMatch->x - segmentLocalPosition.x()) < 1E-6 &&
255  fabs(segmentMatch->y - segmentLocalPosition.y()) < 1E-6 &&
256  fabs(segmentMatch->dXdZ - segmentLocalDirection.x() / segmentLocalDirection.z()) < 1E-6 &&
257  fabs(segmentMatch->dYdZ - segmentLocalDirection.y() / segmentLocalDirection.z()) < 1E-6 &&
258  fabs(segmentMatch->xErr - sqrt(segmentLocalPositionError.xx())) < 1E-6 &&
259  fabs(segmentMatch->yErr - sqrt(segmentLocalPositionError.yy())) < 1E-6 &&
260  fabs(segmentMatch->dXdZErr - sqrt(segmentLocalDirectionError.xx())) < 1E-6 &&
261  fabs(segmentMatch->dYdZErr - sqrt(segmentLocalDirectionError.yy())) < 1E-6) {
262  segmentFound = true;
263  break;
264  }
265  } // segmentMatch
266  if (segmentFound)
267  break;
268  } // chamberMatch
269  if (segmentFound)
270  break;
271  } // muon
272 
273  if (segmentFound)
275  else
277  } // csc segment
278 }
bool useTrackerMuons_
Definition: MuonIdDQM.h:65
MonitorElement * hCSCDx[4][4]
Definition: MuonIdDQM.h:92
float xx() const
Definition: LocalError.h:22
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MonitorElement * hCSCDdYdZ[4][4]
Definition: MuonIdDQM.h:98
MonitorElement * hCSCDdXdZ[4][4]
Definition: MuonIdDQM.h:94
MonitorElement * hCSCPulldXdZ[4][4]
Definition: MuonIdDQM.h:95
T y() const
Definition: PV3DBase.h:60
edm::EDGetTokenT< DTRecSegment4DCollection > inputDTRecSegment4DCollection_
Definition: MuonIdDQM.h:63
bool useGlobalMuonsNotTrackerMuons_
Definition: MuonIdDQM.h:68
bool useTrackerMuonsNotGlobalMuons_
Definition: MuonIdDQM.h:67
MonitorElement * hDTDdYdZ[4][3]
Definition: MuonIdDQM.h:89
void Fill(long long x)
MonitorElement * hDTPully[4][3]
Definition: MuonIdDQM.h:88
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
MonitorElement * hCSCDy[4][4]
Definition: MuonIdDQM.h:96
edm::Handle< DTRecSegment4DCollection > dtSegmentCollectionH_
Definition: MuonIdDQM.h:72
MonitorElement * hCSCPully[4][4]
Definition: MuonIdDQM.h:97
MonitorElement * hSegmentIsAssociatedBool
Definition: MuonIdDQM.h:102
float yy() const
Definition: LocalError.h:24
MonitorElement * hDTPullx[4][4]
Definition: MuonIdDQM.h:84
MonitorElement * hCSCPullx[4][4]
Definition: MuonIdDQM.h:93
T sqrt(T t)
Definition: SSEVec.h:19
T z() const
Definition: PV3DBase.h:61
bool useGlobalMuons_
Definition: MuonIdDQM.h:66
MonitorElement * hNumMatches[4]
Definition: MuonIdDQM.h:78
MonitorElement * hDTDdXdZ[4][4]
Definition: MuonIdDQM.h:85
edm::Handle< reco::MuonCollection > muonCollectionH_
Definition: MuonIdDQM.h:71
edm::EDGetTokenT< reco::MuonCollection > inputMuonCollection_
Definition: MuonIdDQM.h:62
MonitorElement * hDTDx[4][4]
Definition: MuonIdDQM.h:83
MonitorElement * hDTPulldYdZ[4][3]
Definition: MuonIdDQM.h:90
MonitorElement * hDTDy[4][3]
Definition: MuonIdDQM.h:87
MonitorElement * hCSCPulldYdZ[4][4]
Definition: MuonIdDQM.h:99
virtual void Fill(MonitorElement *, float)
Definition: MuonIdDQM.cc:280
MonitorElement * hDTNumSegments[4][4]
Definition: MuonIdDQM.h:82
MonitorElement * hCSCNumSegments[4][4]
Definition: MuonIdDQM.h:91
MonitorElement * hNumChambersNoRPC[4]
Definition: MuonIdDQM.h:79
edm::ESHandle< GlobalTrackingGeometry > geometry_
Definition: MuonIdDQM.h:74
fixed size matrix
HLT enums.
T get() const
Definition: EventSetup.h:73
edm::EDGetTokenT< CSCSegmentCollection > inputCSCSegmentCollection_
Definition: MuonIdDQM.h:64
static constexpr int DT
Definition: MuonSubdetId.h:11
static constexpr int CSC
Definition: MuonSubdetId.h:12
T x() const
Definition: PV3DBase.h:59
MonitorElement * hDTPulldXdZ[4][4]
Definition: MuonIdDQM.h:86
MonitorElement * hNumChambers[4]
Definition: MuonIdDQM.h:77
edm::Handle< CSCSegmentCollection > cscSegmentCollectionH_
Definition: MuonIdDQM.h:73
void MuonIdDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 18 of file MuonIdDQM.cc.

References baseFolder_, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), hCSCDdXdZ, hCSCDdYdZ, hCSCDx, hCSCDy, hCSCNumSegments, hCSCPulldXdZ, hCSCPulldYdZ, hCSCPullx, hCSCPully, hDTDdXdZ, hDTDdYdZ, hDTDx, hDTDy, hDTNumSegments, hDTPulldXdZ, hDTPulldYdZ, hDTPullx, hDTPully, hNumChambers, hNumChambersNoRPC, hNumMatches, hSegmentIsAssociatedBool, mps_fire::i, Skims_PA_cff::name, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), relativeConstraints::station, overlapproblemtsosanalyzer_cfi::title, useGlobalMuons_, useGlobalMuonsNotTrackerMuons_, useTrackerMuons_, and useTrackerMuonsNotGlobalMuons_.

20  {
21  char name[100], title[200];
22 
23  ibooker.cd();
24  ibooker.setCurrentFolder(baseFolder_);
25  // trackerMuon == 0; globalMuon == 1; trackerMuon && !globalMuon == 2; globalMuon && !trackerMuon == 3
26 
27  hSegmentIsAssociatedBool = ibooker.book1D("hSegmentIsAssociatedBool", "Segment Is Associated Boolean", 2, -0.5, 1.5);
28 
29  for (unsigned int i = 0; i < 4; i++) {
30  if ((i == 0 && !useTrackerMuons_) || (i == 1 && !useGlobalMuons_))
31  continue;
33  continue;
34  if (i == 0)
35  ibooker.setCurrentFolder(baseFolder_ + "/TrackerMuons");
36  if (i == 1)
37  ibooker.setCurrentFolder(baseFolder_ + "/GlobalMuons");
38  if (i == 2)
39  ibooker.setCurrentFolder(baseFolder_ + "/TrackerMuonsNotGlobalMuons");
40  if (i == 3)
41  ibooker.setCurrentFolder(baseFolder_ + "/GlobalMuonsNotTrackerMuons");
42 
43  hNumChambers[i] = ibooker.book1D("hNumChambers", "Number of Chambers", 17, -0.5, 16.5);
44  hNumMatches[i] = ibooker.book1D("hNumMatches", "Number of Matches", 11, -0.5, 10.5);
45  hNumChambersNoRPC[i] = ibooker.book1D("hNumChambersNoRPC", "Number of Chambers No RPC", 11, -0.5, 10.5);
46 
47  // by station
48  for (int station = 0; station < 4; ++station) {
49  sprintf(name, "hDT%iNumSegments", station + 1);
50  sprintf(title, "DT Station %i Number of Segments (No Arbitration)", station + 1);
51  hDTNumSegments[i][station] = ibooker.book1D(name, title, 11, -0.5, 10.5);
52 
53  sprintf(name, "hDT%iDx", station + 1);
54  sprintf(title, "DT Station %i Delta X", station + 1);
55  hDTDx[i][station] = ibooker.book1D(name, title, 100, -100., 100.);
56 
57  sprintf(name, "hDT%iPullx", station + 1);
58  sprintf(title, "DT Station %i Pull X", station + 1);
59  hDTPullx[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
60 
61  sprintf(name, "hDT%iDdXdZ", station + 1);
62  sprintf(title, "DT Station %i Delta DxDz", station + 1);
63  hDTDdXdZ[i][station] = ibooker.book1D(name, title, 100, -1., 1.);
64 
65  sprintf(name, "hDT%iPulldXdZ", station + 1);
66  sprintf(title, "DT Station %i Pull DxDz", station + 1);
67  hDTPulldXdZ[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
68 
69  if (station < 3) {
70  sprintf(name, "hDT%iDy", station + 1);
71  sprintf(title, "DT Station %i Delta Y", station + 1);
72  hDTDy[i][station] = ibooker.book1D(name, title, 100, -150., 150.);
73 
74  sprintf(name, "hDT%iPully", station + 1);
75  sprintf(title, "DT Station %i Pull Y", station + 1);
76  hDTPully[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
77 
78  sprintf(name, "hDT%iDdYdZ", station + 1);
79  sprintf(title, "DT Station %i Delta DyDz", station + 1);
80  hDTDdYdZ[i][station] = ibooker.book1D(name, title, 100, -2., 2.);
81 
82  sprintf(name, "hDT%iPulldYdZ", station + 1);
83  sprintf(title, "DT Station %i Pull DyDz", station + 1);
84  hDTPulldYdZ[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
85  }
86 
87  sprintf(name, "hCSC%iNumSegments", station + 1);
88  sprintf(title, "CSC Station %i Number of Segments (No Arbitration)", station + 1);
89  hCSCNumSegments[i][station] = ibooker.book1D(name, title, 11, -0.5, 10.5);
90 
91  sprintf(name, "hCSC%iDx", station + 1);
92  sprintf(title, "CSC Station %i Delta X", station + 1);
93  hCSCDx[i][station] = ibooker.book1D(name, title, 100, -50., 50.);
94 
95  sprintf(name, "hCSC%iPullx", station + 1);
96  sprintf(title, "CSC Station %i Pull X", station + 1);
97  hCSCPullx[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
98 
99  sprintf(name, "hCSC%iDdXdZ", station + 1);
100  sprintf(title, "CSC Station %i Delta DxDz", station + 1);
101  hCSCDdXdZ[i][station] = ibooker.book1D(name, title, 100, -1., 1.);
102 
103  sprintf(name, "hCSC%iPulldXdZ", station + 1);
104  sprintf(title, "CSC Station %i Pull DxDz", station + 1);
105  hCSCPulldXdZ[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
106 
107  sprintf(name, "hCSC%iDy", station + 1);
108  sprintf(title, "CSC Station %i Delta Y", station + 1);
109  hCSCDy[i][station] = ibooker.book1D(name, title, 100, -50., 50.);
110 
111  sprintf(name, "hCSC%iPully", station + 1);
112  sprintf(title, "CSC Station %i Pull Y", station + 1);
113  hCSCPully[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
114 
115  sprintf(name, "hCSC%iDdYdZ", station + 1);
116  sprintf(title, "CSC Station %i Delta DyDz", station + 1);
117  hCSCDdYdZ[i][station] = ibooker.book1D(name, title, 100, -1., 1.);
118 
119  sprintf(name, "hCSC%iPulldYdZ", station + 1);
120  sprintf(title, "CSC Station %i Pull DyDz", station + 1);
121  hCSCPulldYdZ[i][station] = ibooker.book1D(name, title, 100, -20., 20.);
122  } // station
123  }
124 }
bool useTrackerMuons_
Definition: MuonIdDQM.h:65
MonitorElement * hCSCDx[4][4]
Definition: MuonIdDQM.h:92
MonitorElement * hCSCDdYdZ[4][4]
Definition: MuonIdDQM.h:98
MonitorElement * hCSCDdXdZ[4][4]
Definition: MuonIdDQM.h:94
MonitorElement * hCSCPulldXdZ[4][4]
Definition: MuonIdDQM.h:95
bool useGlobalMuonsNotTrackerMuons_
Definition: MuonIdDQM.h:68
bool useTrackerMuonsNotGlobalMuons_
Definition: MuonIdDQM.h:67
MonitorElement * hDTDdYdZ[4][3]
Definition: MuonIdDQM.h:89
MonitorElement * hDTPully[4][3]
Definition: MuonIdDQM.h:88
MonitorElement * hCSCDy[4][4]
Definition: MuonIdDQM.h:96
MonitorElement * hCSCPully[4][4]
Definition: MuonIdDQM.h:97
MonitorElement * hSegmentIsAssociatedBool
Definition: MuonIdDQM.h:102
MonitorElement * hDTPullx[4][4]
Definition: MuonIdDQM.h:84
MonitorElement * hCSCPullx[4][4]
Definition: MuonIdDQM.h:93
bool useGlobalMuons_
Definition: MuonIdDQM.h:66
MonitorElement * hNumMatches[4]
Definition: MuonIdDQM.h:78
MonitorElement * hDTDdXdZ[4][4]
Definition: MuonIdDQM.h:85
MonitorElement * hDTDx[4][4]
Definition: MuonIdDQM.h:83
MonitorElement * hDTPulldYdZ[4][3]
Definition: MuonIdDQM.h:90
MonitorElement * hDTDy[4][3]
Definition: MuonIdDQM.h:87
MonitorElement * hCSCPulldYdZ[4][4]
Definition: MuonIdDQM.h:99
MonitorElement * hDTNumSegments[4][4]
Definition: MuonIdDQM.h:82
MonitorElement * hCSCNumSegments[4][4]
Definition: MuonIdDQM.h:91
MonitorElement * hNumChambersNoRPC[4]
Definition: MuonIdDQM.h:79
std::string baseFolder_
Definition: MuonIdDQM.h:69
MonitorElement * hDTPulldXdZ[4][4]
Definition: MuonIdDQM.h:86
MonitorElement * hNumChambers[4]
Definition: MuonIdDQM.h:77
void MuonIdDQM::Fill ( MonitorElement ,
float   
)
privatevirtual

Definition at line 280 of file MuonIdDQM.cc.

References DEFINE_FWK_MODULE, and dqm::impl::MonitorElement::Fill().

Referenced by analyze().

280  {
281  if (fabs(f) > 900000)
282  return;
283  //if (fabs(f) < 1E-8) return;
284  me->Fill(f);
285 }
double f[11][100]

Member Data Documentation

std::string MuonIdDQM::baseFolder_
private

Definition at line 69 of file MuonIdDQM.h.

Referenced by bookHistograms(), and MuonIdDQM().

edm::Handle<CSCSegmentCollection> MuonIdDQM::cscSegmentCollectionH_
private

Definition at line 73 of file MuonIdDQM.h.

Referenced by analyze().

edm::Handle<DTRecSegment4DCollection> MuonIdDQM::dtSegmentCollectionH_
private

Definition at line 72 of file MuonIdDQM.h.

Referenced by analyze().

edm::ESHandle<GlobalTrackingGeometry> MuonIdDQM::geometry_
private

Definition at line 74 of file MuonIdDQM.h.

Referenced by analyze().

MonitorElement* MuonIdDQM::hCSCDdXdZ[4][4]
private

Definition at line 94 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCDdYdZ[4][4]
private

Definition at line 98 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCDx[4][4]
private

Definition at line 92 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCDy[4][4]
private

Definition at line 96 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCNumSegments[4][4]
private

Definition at line 91 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCPulldXdZ[4][4]
private

Definition at line 95 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCPulldYdZ[4][4]
private

Definition at line 99 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCPullx[4][4]
private

Definition at line 93 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hCSCPully[4][4]
private

Definition at line 97 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTDdXdZ[4][4]
private

Definition at line 85 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTDdYdZ[4][3]
private

Definition at line 89 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTDx[4][4]
private

Definition at line 83 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTDy[4][3]
private

Definition at line 87 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTNumSegments[4][4]
private

Definition at line 82 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTPulldXdZ[4][4]
private

Definition at line 86 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTPulldYdZ[4][3]
private

Definition at line 90 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTPullx[4][4]
private

Definition at line 84 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hDTPully[4][3]
private

Definition at line 88 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hNumChambers[4]
private

Definition at line 77 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hNumChambersNoRPC[4]
private

Definition at line 79 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hNumMatches[4]
private

Definition at line 78 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* MuonIdDQM::hSegmentIsAssociatedBool
private

Definition at line 102 of file MuonIdDQM.h.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<CSCSegmentCollection> MuonIdDQM::inputCSCSegmentCollection_
private

Definition at line 64 of file MuonIdDQM.h.

Referenced by analyze(), and MuonIdDQM().

edm::EDGetTokenT<DTRecSegment4DCollection> MuonIdDQM::inputDTRecSegment4DCollection_
private

Definition at line 63 of file MuonIdDQM.h.

Referenced by analyze(), and MuonIdDQM().

edm::EDGetTokenT<reco::MuonCollection> MuonIdDQM::inputMuonCollection_
private

Definition at line 62 of file MuonIdDQM.h.

Referenced by analyze(), and MuonIdDQM().

edm::Handle<reco::MuonCollection> MuonIdDQM::muonCollectionH_
private

Definition at line 71 of file MuonIdDQM.h.

Referenced by analyze().

bool MuonIdDQM::useGlobalMuons_
private

Definition at line 66 of file MuonIdDQM.h.

Referenced by analyze(), bookHistograms(), and MuonIdDQM().

bool MuonIdDQM::useGlobalMuonsNotTrackerMuons_
private

Definition at line 68 of file MuonIdDQM.h.

Referenced by analyze(), bookHistograms(), and MuonIdDQM().

bool MuonIdDQM::useTrackerMuons_
private

Definition at line 65 of file MuonIdDQM.h.

Referenced by analyze(), bookHistograms(), and MuonIdDQM().

bool MuonIdDQM::useTrackerMuonsNotGlobalMuons_
private

Definition at line 67 of file MuonIdDQM.h.

Referenced by analyze(), bookHistograms(), and MuonIdDQM().