CMS 3D CMS Logo

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

#include <BPhysicsOniaDQM.h>

Inheritance diagram for BPhysicsOniaDQM:
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
 Get the analysis. More...
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 BPhysicsOniaDQM (const edm::ParameterSet &)
 Constructor. More...
 
 ~BPhysicsOniaDQM () override
 Destructor. More...
 
- 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

float computeMass (const math::XYZVector &vec1, const math::XYZVector &vec2)
 
bool isMuonInAccept (const reco::Muon &recoMu)
 
bool selGlobalMuon (const reco::Muon &recoMu)
 
bool selTrackerMuon (const reco::Muon &recoMu)
 

Private Attributes

MonitorElementdiMuonMass_global
 
MonitorElementdiMuonMass_standalone
 
MonitorElementdiMuonMass_tracker
 
MonitorElementglbBkgNoCut
 
MonitorElementglbSigCut
 
MonitorElementglbSigNoCut
 
MonitorElementglobal_background
 
edm::EDGetTokenT< LumiSummarylumiSummaryToken_
 
std::string metname
 
math::XYZPoint RefVtx
 
MonitorElementstaBkgNoCut
 
MonitorElementstandalone_background
 
MonitorElementstaSigCut
 
MonitorElementstaSigNoCut
 
edm::EDGetTokenT< reco::MuonCollectiontheMuonCollectionLabel_
 
MonitorElementtracker_background
 
MonitorElementtrkBkgNoCut
 
MonitorElementtrkSigCut
 
MonitorElementtrkSigNoCut
 
edm::EDGetTokenT< reco::VertexCollectionvertex_
 

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

DQM offline for quarkonia

Author
S. Bolognesi, Eric - CERN

Definition at line 25 of file BPhysicsOniaDQM.h.

Constructor & Destructor Documentation

BPhysicsOniaDQM::BPhysicsOniaDQM ( const edm::ParameterSet parameters)

Constructor.

Definition at line 28 of file BPhysicsOniaDQM.cc.

References edm::ParameterSet::getParameter(), and metname.

28  {
29  // Muon Collection Label
30  vertex_ = consumes<reco::VertexCollection>(parameters.getParameter<InputTag>("vertex"));
31  theMuonCollectionLabel_ = consumes<reco::MuonCollection>(parameters.getParameter<InputTag>("MuonCollection"));
32  lumiSummaryToken_ = consumes<LumiSummary, edm::InLumi>(parameters.getParameter<InputTag>("lumiSummary"));
33 
34  global_background = nullptr;
35  diMuonMass_global = nullptr;
36  tracker_background = nullptr;
37  diMuonMass_tracker = nullptr;
38  standalone_background = nullptr;
39  diMuonMass_standalone = nullptr;
40 
41  glbSigCut = nullptr;
42  glbSigNoCut = nullptr;
43  glbBkgNoCut = nullptr;
44  staSigCut = nullptr;
45  staSigNoCut = nullptr;
46  staBkgNoCut = nullptr;
47  trkSigCut = nullptr;
48  trkSigNoCut = nullptr;
49  trkBkgNoCut = nullptr;
50 
51  metname = "oniaAnalyzer";
52 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * global_background
MonitorElement * tracker_background
MonitorElement * diMuonMass_global
MonitorElement * glbSigCut
MonitorElement * diMuonMass_standalone
MonitorElement * trkSigCut
MonitorElement * standalone_background
MonitorElement * staBkgNoCut
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
std::string metname
MonitorElement * staSigNoCut
MonitorElement * staSigCut
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
MonitorElement * trkSigNoCut
edm::EDGetTokenT< LumiSummary > lumiSummaryToken_
MonitorElement * glbSigNoCut
BPhysicsOniaDQM::~BPhysicsOniaDQM ( )
override

Destructor.

Definition at line 54 of file BPhysicsOniaDQM.cc.

54 {}

Member Function Documentation

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

Get the analysis.

Definition at line 81 of file BPhysicsOniaDQM.cc.

References edm::Event::getByToken(), muon::isGoodMuon(), edm::HandleBase::isValid(), LogTrace, metname, PDWG_BPHSkim_cff::muons, and muon::TrackerMuonArbitrated.

81  {
82  LogTrace(metname) << "[BPhysicsOniaDQM] Analysis of event # ";
83 
84  // Take the STA muon container
86  iEvent.getByToken(theMuonCollectionLabel_, muons);
87 
89  iEvent.getByToken(vertex_, privtxs);
90  VertexCollection::const_iterator privtx;
91 
92  if (privtxs->begin() != privtxs->end()) {
93  privtx = privtxs->begin();
94  RefVtx = privtx->position();
95  } else {
96  RefVtx.SetXYZ(0., 0., 0.);
97  }
98 
99  if (muons.isValid()) {
100  for (MuonCollection::const_iterator recoMu1 = muons->begin(); recoMu1 != muons->end(); ++recoMu1) {
101  // only loop over the remaining muons if recoMu1 is one of the following
102  if (recoMu1->isGlobalMuon() || recoMu1->isTrackerMuon() || recoMu1->isStandAloneMuon()) {
103  for (MuonCollection::const_iterator recoMu2 = recoMu1 + 1; recoMu2 != muons->end(); ++recoMu2) {
104  // fill the relevant histograms if recoMu2 satisfies one of the
105  // following
106  if (recoMu1->isGlobalMuon() && recoMu2->isGlobalMuon()) {
107  math::XYZVector vec1 = recoMu1->globalTrack()->momentum();
108  math::XYZVector vec2 = recoMu2->globalTrack()->momentum();
109  float massJPsi = computeMass(vec1, vec2);
110 
111  // if opposite charges, fill glbSig, else fill glbBkg
112  if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
113  if (diMuonMass_global != nullptr) { // BPhysicsOniaDQM original one
114  diMuonMass_global->Fill(massJPsi);
115  }
116 
117  if (glbSigNoCut != nullptr) {
118  glbSigNoCut->Fill(massJPsi);
119  if (selGlobalMuon(*recoMu1) && selGlobalMuon(*recoMu2)) {
120  if (glbSigCut != nullptr)
121  glbSigCut->Fill(massJPsi);
122  }
123  }
124  } else {
125  if (global_background != nullptr) { // BPhysicsOniaDQM original one
126  global_background->Fill(massJPsi);
127  }
128 
129  if (glbBkgNoCut != nullptr) {
130  glbBkgNoCut->Fill(massJPsi);
131  }
132  }
133  }
134 
135  if (recoMu1->isStandAloneMuon() && recoMu2->isStandAloneMuon() && fabs(recoMu1->outerTrack()->d0()) < 5 &&
136  fabs(recoMu1->outerTrack()->dz()) < 30 && fabs(recoMu2->outerTrack()->d0()) < 5 &&
137  fabs(recoMu2->outerTrack()->dz()) < 30) {
138  math::XYZVector vec1 = recoMu1->outerTrack()->momentum();
139  math::XYZVector vec2 = recoMu2->outerTrack()->momentum();
140  float massJPsi = computeMass(vec1, vec2);
141 
142  // if opposite charges, fill staSig, else fill staBkg
143  if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
144  if (diMuonMass_standalone != nullptr) {
145  diMuonMass_standalone->Fill(massJPsi);
146  }
147 
148  if (staSigNoCut != nullptr) {
149  staSigNoCut->Fill(massJPsi);
150  }
151  } else {
152  if (standalone_background != nullptr) {
153  standalone_background->Fill(massJPsi);
154  }
155 
156  if (staBkgNoCut != nullptr) {
157  staBkgNoCut->Fill(massJPsi);
158  }
159  }
160  }
161 
162  if (recoMu1->isTrackerMuon() && recoMu2->isTrackerMuon() &&
165  math::XYZVector vec1 = recoMu1->innerTrack()->momentum();
166  math::XYZVector vec2 = recoMu2->innerTrack()->momentum();
167  float massJPsi = computeMass(vec1, vec2);
168 
169  // if opposite charges, fill trkSig, else fill trkBkg
170  if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
171  if (diMuonMass_tracker != nullptr) {
172  diMuonMass_tracker->Fill(massJPsi);
173  }
174 
175  if (trkSigNoCut != nullptr) {
176  trkSigNoCut->Fill(massJPsi);
177  if (selTrackerMuon(*recoMu1) && selTrackerMuon(*recoMu2)) {
178  if (trkSigCut != nullptr)
179  trkSigCut->Fill(massJPsi);
180  }
181  }
182  } else {
183  if (tracker_background != nullptr) {
184  tracker_background->Fill(massJPsi);
185  }
186 
187  if (trkBkgNoCut != nullptr) {
188  trkBkgNoCut->Fill(massJPsi);
189  }
190  }
191  }
192  } // end of 2nd MuonCollection
193  } // end of GLB,STA,TRK muon check
194  } // end of 1st MuonCollection
195  } // Is this MuonCollection vaild?
196 }
bool selGlobalMuon(const reco::Muon &recoMu)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * global_background
MonitorElement * tracker_background
MonitorElement * diMuonMass_global
void Fill(long long x)
MonitorElement * glbSigCut
MonitorElement * diMuonMass_standalone
MonitorElement * trkSigCut
MonitorElement * standalone_background
MonitorElement * staBkgNoCut
std::vector< double > vec1
Definition: HCALResponse.h:15
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
std::string metname
bool isValid() const
Definition: HandleBase.h:70
#define LogTrace(id)
MonitorElement * staSigNoCut
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
math::XYZPoint RefVtx
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
bool selTrackerMuon(const reco::Muon &recoMu)
float computeMass(const math::XYZVector &vec1, const math::XYZVector &vec2)
MonitorElement * trkSigNoCut
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
MonitorElement * glbSigNoCut
void BPhysicsOniaDQM::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 56 of file BPhysicsOniaDQM.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

56  {
57  iBooker.setCurrentFolder("Physics/BPhysics"); // Use folder with name of PAG
58 
59  global_background = iBooker.book1D("global_background", "Same-sign global-global dimuon mass", 750, 0, 15);
60  diMuonMass_global = iBooker.book1D("diMuonMass_global", "Opposite-sign global-global dimuon mass", 750, 0, 15);
62  iBooker.book1D("tracker_background", "Same-sign tracker-tracker (arbitrated) dimuon mass", 750, 0, 15);
64  iBooker.book1D("diMuonMass_tracker", "Opposite-sign tracker-tracker (arbitrated) dimuon mass", 750, 0, 15);
66  iBooker.book1D("standalone_background", "Same-sign standalone-standalone dimuon mass", 500, 0, 15);
68  iBooker.book1D("diMuonMass_standalone", "Opposite-sign standalone-standalone dimuon mass", 500, 0, 15);
69 
70  glbSigCut = iBooker.book1D("glbSigCut", "Opposite-sign glb-glb dimuon mass", 650, 0, 130);
71  glbSigNoCut = iBooker.book1D("glbSigNoCut", "Opposite-sign glb-glb dimuon mass (no cut)", 650, 0, 130);
72  glbBkgNoCut = iBooker.book1D("glbBkgNoCut", "Same-sign glb-glb dimuon mass (no cut)", 650, 0, 130);
73  staSigCut = iBooker.book1D("staSigCut", "Opposite-sign sta-sta dimuon mass", 430, 0, 129);
74  staSigNoCut = iBooker.book1D("staSigNoCut", "Opposite-sign sta-sta dimuon mass (no cut)", 430, 0, 129);
75  staBkgNoCut = iBooker.book1D("staBkgNoCut", "Same-sign sta-sta dimuon mass (no cut)", 430, 0, 129);
76  trkSigCut = iBooker.book1D("trkSigCut", "Opposite-sign trk-trk dimuon mass", 650, 0, 130);
77  trkSigNoCut = iBooker.book1D("trkSigNoCut", "Opposite-sign trk-trk dimuon mass (no cut)", 650, 0, 130);
78  trkBkgNoCut = iBooker.book1D("trkBkgNoCutt", "Same-sign trk-trk dimuon mass (no cut)", 650, 0, 130);
79 }
MonitorElement * global_background
MonitorElement * tracker_background
MonitorElement * diMuonMass_global
MonitorElement * glbSigCut
MonitorElement * diMuonMass_standalone
MonitorElement * trkSigCut
MonitorElement * standalone_background
MonitorElement * staBkgNoCut
MonitorElement * staSigNoCut
MonitorElement * staSigCut
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
MonitorElement * trkSigNoCut
MonitorElement * glbSigNoCut
float BPhysicsOniaDQM::computeMass ( const math::XYZVector vec1,
const math::XYZVector vec2 
)
private

Definition at line 198 of file BPhysicsOniaDQM.cc.

References mathSSE::sqrt().

198  {
199  // mass of muon
200  float massMu = 0.10566;
201  float eMu1 = -999;
202  if (massMu * massMu + vec1.Mag2() > 0)
203  eMu1 = sqrt(massMu * massMu + vec1.Mag2());
204  float eMu2 = -999;
205  if (massMu * massMu + vec2.Mag2() > 0)
206  eMu2 = sqrt(massMu * massMu + vec2.Mag2());
207 
208  float pJPsi = -999;
209  if ((vec1 + vec2).Mag2() > 0)
210  pJPsi = sqrt((vec1 + vec2).Mag2());
211  float eJPsi = eMu1 + eMu2;
212 
213  float massJPsi = -999;
214  if ((eJPsi * eJPsi - pJPsi * pJPsi) > 0)
215  massJPsi = sqrt(eJPsi * eJPsi - pJPsi * pJPsi);
216 
217  return massJPsi;
218 }
std::vector< double > vec1
Definition: HCALResponse.h:15
T sqrt(T t)
Definition: SSEVec.h:19
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
bool BPhysicsOniaDQM::isMuonInAccept ( const reco::Muon recoMu)
private

Definition at line 220 of file BPhysicsOniaDQM.cc.

References reco::LeafCandidate::eta(), reco::LeafCandidate::p(), and reco::LeafCandidate::pt().

220  {
221  return (fabs(recoMu.eta()) < 2.4 && ((fabs(recoMu.eta()) < 1.3 && recoMu.pt() > 3.3) ||
222  (fabs(recoMu.eta()) > 1.3 && fabs(recoMu.eta()) < 2.2 && recoMu.p() > 2.9) ||
223  (fabs(recoMu.eta()) > 2.2 && recoMu.pt() > 0.8)));
224 }
double eta() const final
momentum pseudorapidity
double pt() const final
transverse momentum
double p() const final
magnitude of momentum vector
bool BPhysicsOniaDQM::selGlobalMuon ( const reco::Muon recoMu)
private

Definition at line 226 of file BPhysicsOniaDQM.cc.

References reco::Muon::globalTrack(), reco::Muon::innerTrack(), reco::HitPattern::numberOfValidMuonHits(), AlCaHLTBitMon_ParallelJobs::p, reco::HitPattern::pixelLayersWithMeasurement(), and data-class-funcs::q.

226  {
227  TrackRef iTrack = recoMu.innerTrack();
228  const reco::HitPattern &p = iTrack->hitPattern();
229 
230  TrackRef gTrack = recoMu.globalTrack();
231  const reco::HitPattern &q = gTrack->hitPattern();
232 
233  return (isMuonInAccept(recoMu) && iTrack->found() > 11 && gTrack->chi2() / gTrack->ndof() < 20.0 &&
234  q.numberOfValidMuonHits() > 0 && iTrack->chi2() / iTrack->ndof() < 4.0 &&
235  // recoMu.muonID("TrackerMuonArbitrated") &&
236  // recoMu.muonID("TMLastStationAngTight") &&
237  p.pixelLayersWithMeasurement() > 1 && fabs(iTrack->dxy(RefVtx)) < 3.0 && fabs(iTrack->dz(RefVtx)) < 15.0);
238 }
virtual TrackRef innerTrack() const
Definition: Muon.h:45
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:492
bool isMuonInAccept(const reco::Muon &recoMu)
math::XYZPoint RefVtx
int numberOfValidMuonHits() const
Definition: HitPattern.h:793
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:51
bool BPhysicsOniaDQM::selTrackerMuon ( const reco::Muon recoMu)
private

Definition at line 240 of file BPhysicsOniaDQM.cc.

References reco::Muon::innerTrack(), AlCaHLTBitMon_ParallelJobs::p, and reco::HitPattern::pixelLayersWithMeasurement().

240  {
241  TrackRef iTrack = recoMu.innerTrack();
242  const reco::HitPattern &p = iTrack->hitPattern();
243 
244  return (isMuonInAccept(recoMu) && iTrack->found() > 11 && iTrack->chi2() / iTrack->ndof() < 4.0 &&
245  // recoMu.muonID("TrackerMuonArbitrated") &&
246  // recoMu.muonID("TMLastStationAngTight") &&
247  p.pixelLayersWithMeasurement() > 1 && fabs(iTrack->dxy(RefVtx)) < 3.0 && fabs(iTrack->dz(RefVtx)) < 15.0);
248 }
virtual TrackRef innerTrack() const
Definition: Muon.h:45
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:492
bool isMuonInAccept(const reco::Muon &recoMu)
math::XYZPoint RefVtx

Member Data Documentation

MonitorElement* BPhysicsOniaDQM::diMuonMass_global
private

Definition at line 53 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::diMuonMass_standalone
private

Definition at line 55 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::diMuonMass_tracker
private

Definition at line 54 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::glbBkgNoCut
private

Definition at line 62 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::glbSigCut
private

Definition at line 60 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::glbSigNoCut
private

Definition at line 61 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::global_background
private

Definition at line 56 of file BPhysicsOniaDQM.h.

edm::EDGetTokenT<LumiSummary> BPhysicsOniaDQM::lumiSummaryToken_
private

Definition at line 47 of file BPhysicsOniaDQM.h.

std::string BPhysicsOniaDQM::metname
private

Definition at line 50 of file BPhysicsOniaDQM.h.

math::XYZPoint BPhysicsOniaDQM::RefVtx
private

Definition at line 70 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::staBkgNoCut
private

Definition at line 65 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::standalone_background
private

Definition at line 58 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::staSigCut
private

Definition at line 63 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::staSigNoCut
private

Definition at line 64 of file BPhysicsOniaDQM.h.

edm::EDGetTokenT<reco::MuonCollection> BPhysicsOniaDQM::theMuonCollectionLabel_
private

Definition at line 46 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::tracker_background
private

Definition at line 57 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::trkBkgNoCut
private

Definition at line 68 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::trkSigCut
private

Definition at line 66 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::trkSigNoCut
private

Definition at line 67 of file BPhysicsOniaDQM.h.

edm::EDGetTokenT<reco::VertexCollection> BPhysicsOniaDQM::vertex_
private

Definition at line 44 of file BPhysicsOniaDQM.h.