CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
BPhysicsOniaDQM Class Reference

#include <BPhysicsOniaDQM.h>

Inheritance diagram for BPhysicsOniaDQM:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &)
 Get the analysis. More...
 
void beginJob ()
 Inizialize parameters for histo binning. More...
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
 
void beginRun (const edm::Run &iRun, const edm::EventSetup &iSetup)
 
 BPhysicsOniaDQM (const edm::ParameterSet &)
 Constructor. More...
 
void endJob (void)
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
 
void endRun (const edm::Run &iRun, const edm::EventSetup &iSetup)
 
virtual ~BPhysicsOniaDQM ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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
 
std::map< int, int > jpsiGlbSig
 
int jpsiGlbSigPerLS
 
std::map< int, int > jpsiStaSig
 
int jpsiStaSigPerLS
 
std::map< int, int > jpsiTrkSig
 
int jpsiTrkSigPerLS
 
edm::EDGetTokenT< LumiSummarylumiSummaryToken_
 
std::string metname
 
math::XYZPoint RefVtx
 
MonitorElementstaBkgNoCut
 
MonitorElementstandalone_background
 
MonitorElementstaSigCut
 
MonitorElementstaSigNoCut
 
DQMStoretheDbe
 
edm::EDGetTokenT
< reco::MuonCollection
theMuonCollectionLabel_
 
MonitorElementtracker_background
 
MonitorElementtrkBkgNoCut
 
MonitorElementtrkSigCut
 
MonitorElementtrkSigNoCut
 
edm::EDGetTokenT
< reco::VertexCollection
vertex_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- 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 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)
 

Detailed Description

DQM offline for quarkonia

Author
S. Bolognesi, Eric - CERN

Definition at line 27 of file BPhysicsOniaDQM.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 29 of file BPhysicsOniaDQM.cc.

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

29  {
30  // Muon Collection Label
31  vertex_ = consumes<reco::VertexCollection>(
32  parameters.getParameter<InputTag>("vertex"));
33  theMuonCollectionLabel_ = consumes<reco::MuonCollection>(
34  parameters.getParameter<InputTag>("MuonCollection"));
35  lumiSummaryToken_ = consumes<LumiSummary, edm::InLumi>(
36  parameters.getParameter<InputTag>("lumiSummary"));
37 
44 
45  glbSigCut = NULL;
46  glbSigNoCut = NULL;
47  glbBkgNoCut = NULL;
48  staSigCut = NULL;
49  staSigNoCut = NULL;
50  staBkgNoCut = NULL;
51  trkSigCut = NULL;
52  trkSigNoCut = NULL;
53  trkBkgNoCut = NULL;
54 
55  // JPsiGlbYdLumi = NULL;
56  // JPsiStaYdLumi = NULL;
57  // JPsiTrkYdLumi = NULL;
58 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * global_background
#define NULL
Definition: scimark2.h:8
MonitorElement * tracker_background
MonitorElement * diMuonMass_global
MonitorElement * glbSigCut
MonitorElement * diMuonMass_standalone
MonitorElement * trkSigCut
MonitorElement * standalone_background
MonitorElement * staBkgNoCut
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
MonitorElement * staSigNoCut
MonitorElement * staSigCut
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
MonitorElement * trkSigNoCut
edm::EDGetTokenT< LumiSummary > lumiSummaryToken_
MonitorElement * glbSigNoCut
BPhysicsOniaDQM::~BPhysicsOniaDQM ( )
virtual

Destructor.

Definition at line 60 of file BPhysicsOniaDQM.cc.

60 {}

Member Function Documentation

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

Get the analysis.

Implements edm::EDAnalyzer.

Definition at line 114 of file BPhysicsOniaDQM.cc.

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

114  {
115 
116  LogTrace(metname) << "[BPhysicsOniaDQM] Analysis of event # ";
117 
118  // Take the STA muon container
120  iEvent.getByToken(theMuonCollectionLabel_, muons);
121 
123  iEvent.getByToken(vertex_, privtxs);
124  VertexCollection::const_iterator privtx;
125 
126  if (privtxs->begin() != privtxs->end()) {
127  privtx = privtxs->begin();
128  RefVtx = privtx->position();
129  } else {
130  RefVtx.SetXYZ(0., 0., 0.);
131  }
132 
133  if (muons.isValid()) {
134  for (MuonCollection::const_iterator recoMu1 = muons->begin();
135  recoMu1 != muons->end(); ++recoMu1) {
136 
137  // only loop over the remaining muons if recoMu1 is one of the following
138  if (recoMu1->isGlobalMuon() || recoMu1->isTrackerMuon() ||
139  recoMu1->isStandAloneMuon()) {
140  for (MuonCollection::const_iterator recoMu2 = recoMu1 + 1;
141  recoMu2 != muons->end(); ++recoMu2) {
142 
143  // fill the relevant histograms if recoMu2 satisfies one of the
144  // following
145  if (recoMu1->isGlobalMuon() && recoMu2->isGlobalMuon()) {
146  math::XYZVector vec1 = recoMu1->globalTrack()->momentum();
147  math::XYZVector vec2 = recoMu2->globalTrack()->momentum();
148  float massJPsi = computeMass(vec1, vec2);
149 
150  // if opposite charges, fill glbSig, else fill glbBkg
151  if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
152  if (diMuonMass_global != NULL) { // BPhysicsOniaDQM original one
153  diMuonMass_global->Fill(massJPsi);
154  }
155 
156  if (glbSigNoCut != NULL) {
157  glbSigNoCut->Fill(massJPsi);
158  if (selGlobalMuon(*recoMu1) && selGlobalMuon(*recoMu2)) {
159  if (glbSigCut != NULL) glbSigCut->Fill(massJPsi);
160  if (massJPsi >= 3.0 && massJPsi <= 3.2) jpsiGlbSigPerLS++;
161  }
162  }
163  } else {
164  if (global_background != NULL) { // BPhysicsOniaDQM original one
165  global_background->Fill(massJPsi);
166  }
167 
168  if (glbBkgNoCut != NULL) {
169  glbBkgNoCut->Fill(massJPsi);
170  }
171  }
172  }
173 
174  if (recoMu1->isStandAloneMuon() && recoMu2->isStandAloneMuon() &&
175  fabs(recoMu1->outerTrack()->d0()) < 5 &&
176  fabs(recoMu1->outerTrack()->dz()) < 30 &&
177  fabs(recoMu2->outerTrack()->d0()) < 5 &&
178  fabs(recoMu2->outerTrack()->dz()) < 30) {
179  math::XYZVector vec1 = recoMu1->outerTrack()->momentum();
180  math::XYZVector vec2 = recoMu2->outerTrack()->momentum();
181  float massJPsi = computeMass(vec1, vec2);
182 
183  // if opposite charges, fill staSig, else fill staBkg
184  if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
185  if (diMuonMass_standalone != NULL) {
186  diMuonMass_standalone->Fill(massJPsi);
187  }
188 
189  if (staSigNoCut != NULL) {
190  staSigNoCut->Fill(massJPsi);
191  /*if (selStandaloneMuon(*recoMu1) &&
192  selStandaloneMuon(*recoMu2)) {
193  if (staSigCut!=NULL) staSigCut->Fill(massJPsi);
194  if (massJPsi >= 3.0 && massJPsi <= 3.2) jpsiStaSigPerLS++;
195  }*/
196  }
197  } else {
198  if (standalone_background != NULL) {
199  standalone_background->Fill(massJPsi);
200  }
201 
202  if (staBkgNoCut != NULL) {
203  staBkgNoCut->Fill(massJPsi);
204  }
205  }
206  }
207 
208  if (recoMu1->isTrackerMuon() && recoMu2->isTrackerMuon() &&
211  math::XYZVector vec1 = recoMu1->innerTrack()->momentum();
212  math::XYZVector vec2 = recoMu2->innerTrack()->momentum();
213  float massJPsi = computeMass(vec1, vec2);
214 
215  // if opposite charges, fill trkSig, else fill trkBkg
216  if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
217  if (diMuonMass_tracker != NULL) {
218  diMuonMass_tracker->Fill(massJPsi);
219  }
220 
221  if (trkSigNoCut != NULL) {
222  trkSigNoCut->Fill(massJPsi);
223  if (selTrackerMuon(*recoMu1) && selTrackerMuon(*recoMu2)) {
224  if (trkSigCut != NULL) trkSigCut->Fill(massJPsi);
225  if (massJPsi >= 3.0 && massJPsi <= 3.2) jpsiTrkSigPerLS++;
226  }
227  }
228  } else {
229  if (tracker_background != NULL) {
230  tracker_background->Fill(massJPsi);
231  }
232 
233  if (trkBkgNoCut != NULL) {
234  trkBkgNoCut->Fill(massJPsi);
235  }
236  }
237  }
238 
239  } // end of 2nd MuonCollection
240  } // end of GLB,STA,TRK muon check
241  } // end of 1st MuonCollection
242  } // Is this MuonCollection vaild?
243 }
bool selGlobalMuon(const reco::Muon &recoMu)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:446
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * global_background
#define NULL
Definition: scimark2.h:8
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:76
#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:30
math::XYZPoint RefVtx
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
tuple muons
Definition: patZpeak.py:38
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::beginJob ( void  )
virtual

Inizialize parameters for histo binning.

Reimplemented from edm::EDAnalyzer.

Definition at line 62 of file BPhysicsOniaDQM.cc.

References LogTrace, metname, NULL, and cppFunctionSkipper::operator.

62  {
63  // the services
65 
66  metname = "oniaAnalyzer";
67  LogTrace(metname) << "[BPhysicsOniaDQM] Parameters initialization";
68 
69  if (theDbe != NULL) {
70  theDbe->setCurrentFolder(
71  "Physics/BPhysics"); // Use folder with name of PAG
72  global_background = theDbe->book1D(
73  "global_background", "Same-sign global-global dimuon mass", 750, 0, 15);
75  theDbe->book1D("diMuonMass_global",
76  "Opposite-sign global-global dimuon mass", 750, 0, 15);
77  tracker_background = theDbe->book1D(
78  "tracker_background",
79  "Same-sign tracker-tracker (arbitrated) dimuon mass", 750, 0, 15);
80  diMuonMass_tracker = theDbe->book1D(
81  "diMuonMass_tracker",
82  "Opposite-sign tracker-tracker (arbitrated) dimuon mass", 750, 0, 15);
83  standalone_background = theDbe->book1D(
84  "standalone_background", "Same-sign standalone-standalone dimuon mass",
85  500, 0, 15);
86  diMuonMass_standalone = theDbe->book1D(
87  "diMuonMass_standalone",
88  "Opposite-sign standalone-standalone dimuon mass", 500, 0, 15);
89 
90  glbSigCut = theDbe->book1D("glbSigCut", "Opposite-sign glb-glb dimuon mass",
91  650, 0, 130);
92  glbSigNoCut = theDbe->book1D("glbSigNoCut",
93  "Opposite-sign glb-glb dimuon mass (no cut)",
94  650, 0, 130);
95  glbBkgNoCut = theDbe->book1D(
96  "glbBkgNoCut", "Same-sign glb-glb dimuon mass (no cut)", 650, 0, 130);
97  staSigCut = theDbe->book1D("staSigCut", "Opposite-sign sta-sta dimuon mass",
98  430, 0, 129);
99  staSigNoCut = theDbe->book1D("staSigNoCut",
100  "Opposite-sign sta-sta dimuon mass (no cut)",
101  430, 0, 129);
102  staBkgNoCut = theDbe->book1D(
103  "staBkgNoCut", "Same-sign sta-sta dimuon mass (no cut)", 430, 0, 129);
104  trkSigCut = theDbe->book1D("trkSigCut", "Opposite-sign trk-trk dimuon mass",
105  650, 0, 130);
106  trkSigNoCut = theDbe->book1D("trkSigNoCut",
107  "Opposite-sign trk-trk dimuon mass (no cut)",
108  650, 0, 130);
109  trkBkgNoCut = theDbe->book1D(
110  "trkBkgNoCutt", "Same-sign trk-trk dimuon mass (no cut)", 650, 0, 130);
111  }
112 }
MonitorElement * global_background
#define NULL
Definition: scimark2.h:8
MonitorElement * tracker_background
MonitorElement * diMuonMass_global
MonitorElement * glbSigCut
MonitorElement * diMuonMass_standalone
MonitorElement * trkSigCut
MonitorElement * standalone_background
MonitorElement * staBkgNoCut
std::string metname
DQMStore * theDbe
#define LogTrace(id)
MonitorElement * staSigNoCut
MonitorElement * staSigCut
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
MonitorElement * trkSigNoCut
MonitorElement * glbSigNoCut
void BPhysicsOniaDQM::beginLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 249 of file BPhysicsOniaDQM.cc.

References LogTrace, and metname.

250  {
251  LogTrace(metname) << "[BPhysicsOniaDQM] Start of a LuminosityBlock";
252 
253  jpsiGlbSigPerLS = 0;
254  jpsiStaSigPerLS = 0;
255  jpsiTrkSigPerLS = 0;
256 }
std::string metname
#define LogTrace(id)
void BPhysicsOniaDQM::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 315 of file BPhysicsOniaDQM.cc.

References LogTrace, and metname.

316  {
317  LogTrace(metname) << "[BPhysicsOniaDQM] Start of a Run";
318 }
std::string metname
#define LogTrace(id)
float BPhysicsOniaDQM::computeMass ( const math::XYZVector vec1,
const math::XYZVector vec2 
)
private

Definition at line 331 of file BPhysicsOniaDQM.cc.

References mathSSE::sqrt().

332  {
333  // mass of muon
334  float massMu = 0.10566;
335  float eMu1 = -999;
336  if (massMu * massMu + vec1.Mag2() > 0)
337  eMu1 = sqrt(massMu * massMu + vec1.Mag2());
338  float eMu2 = -999;
339  if (massMu * massMu + vec2.Mag2() > 0)
340  eMu2 = sqrt(massMu * massMu + vec2.Mag2());
341 
342  float pJPsi = -999;
343  if ((vec1 + vec2).Mag2() > 0) pJPsi = sqrt((vec1 + vec2).Mag2());
344  float eJPsi = eMu1 + eMu2;
345 
346  float massJPsi = -999;
347  if ((eJPsi * eJPsi - pJPsi * pJPsi) > 0)
348  massJPsi = sqrt(eJPsi * eJPsi - pJPsi * pJPsi);
349 
350  return massJPsi;
351 }
std::vector< double > vec1
Definition: HCALResponse.h:15
T sqrt(T t)
Definition: SSEVec.h:48
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
void BPhysicsOniaDQM::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 245 of file BPhysicsOniaDQM.cc.

References LogTrace, and metname.

245  {
246  LogTrace(metname) << "[BPhysicsOniaDQM] EndJob";
247 }
std::string metname
#define LogTrace(id)
void BPhysicsOniaDQM::endLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 258 of file BPhysicsOniaDQM.cc.

References edm::LuminosityBlock::getByToken(), edm::LuminosityBlockBase::id(), LogTrace, edm::LuminosityBlockID::luminosityBlock(), runregparse::lumiSummary, and metname.

259  {
260  LogTrace(metname) << "[BPhysicsOniaDQM] Start of a LuminosityBlock";
261 
263  lumiBlock.getByToken(lumiSummaryToken_, lumiSummary);
264 
265  int LBlockNum = lumiBlock.id().luminosityBlock();
266 
267  jpsiGlbSig.insert(pair<int, int>(LBlockNum, jpsiGlbSigPerLS));
268  jpsiStaSig.insert(pair<int, int>(LBlockNum, jpsiStaSigPerLS));
269  jpsiTrkSig.insert(pair<int, int>(LBlockNum, jpsiTrkSigPerLS));
270  // cout << "lumi: " << LBlockNum << "\t" << jpsiGlbSig[LBlockNum] << "\t" <<
271  // jpsiStaSig[LBlockNum] << "\t" << jpsiTrkSig[LBlockNum] << endl;
272 
273  if (jpsiGlbSig.size() % 5 != 0) return;
274 
275  theDbe->setCurrentFolder("Physics/BPhysics");
276  // if(JPsiGlbYdLumi!=NULL) {
277  // theDbe->removeElement("JPsiGlbYdLumi"); // Remove histograms from
278  // previous run
279  // theDbe->removeElement("JPsiStaYdLumi");
280  // theDbe->removeElement("JPsiTrkYdLumi");
281  // }
282 
283  // int xmin = (*jpsiGlbSig.begin()).first;
284  // int xmax = (*jpsiGlbSig.rbegin()).first;
285  // int nx = (xmax - xmin + 1)/5 + 1; // Merge 5 lumisections into 1 bin
286  // // cout << "x-axis " << xmin << " " << xmax << endl;
287 
288  // JPsiGlbYdLumi = theDbe->book1D("JPsiGlbYdLumi", "JPsi yield from
289  // global-global dimuon", nx, xmin, xmax);
290  // JPsiStaYdLumi = theDbe->book1D("JPsiStaYdLumi", "JPsi yield from
291  // standalone-standalone dimuon", nx, xmin, xmax);
292  // JPsiTrkYdLumi = theDbe->book1D("JPsiTrkYdLumi", "JPsi yield from
293  // tracker-tracker dimuon", nx, xmin, xmax);
294 
295  // map<int,int>::iterator glb;
296  // map<int,int>::iterator sta;
297  // map<int,int>::iterator trk;
298  // for (glb = jpsiGlbSig.begin(); glb != jpsiGlbSig.end(); ++glb)
299  // {
300  // int bin = ((*glb).first - xmin + 1)/5 + 1; //X-axis bin #
301  // sta = jpsiStaSig.find((*glb).first);
302  // trk = jpsiTrkSig.find((*glb).first);
303  // JPsiGlbYdLumi->setBinContent(bin,JPsiGlbYdLumi->getBinContent(bin)+(*glb).second);
304  // JPsiStaYdLumi->setBinContent(bin,JPsiStaYdLumi->getBinContent(bin)+(*sta).second);
305  // JPsiTrkYdLumi->setBinContent(bin,JPsiTrkYdLumi->getBinContent(bin)+(*trk).second);
306  // // cout << "glb: " << bin << "\t" << (*glb).first << "\t" <<
307  // (*glb).second << endl;
308  // // cout << "sta: " << bin << "\t" << (*sta).first << "\t" <<
309  // (*sta).second << endl;
310  // // cout << "trk: " << bin << "\t" << (*trk).first << "\t" <<
311  // (*trk).second << endl;
312  // }
313 }
LuminosityBlockID id() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
tuple lumiSummary
Definition: runregparse.py:290
std::map< int, int > jpsiGlbSig
std::map< int, int > jpsiTrkSig
std::string metname
DQMStore * theDbe
#define LogTrace(id)
LuminosityBlockNumber_t luminosityBlock() const
edm::EDGetTokenT< LumiSummary > lumiSummaryToken_
std::map< int, int > jpsiStaSig
void BPhysicsOniaDQM::endRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 320 of file BPhysicsOniaDQM.cc.

References LogTrace, and metname.

321  {
322  LogTrace(metname) << "[BPhysicsOniaDQM] End of a Run";
323 
324  if (!jpsiGlbSig.empty()) {
325  jpsiGlbSig.clear();
326  jpsiStaSig.clear();
327  jpsiTrkSig.clear();
328  }
329 }
std::map< int, int > jpsiGlbSig
std::map< int, int > jpsiTrkSig
std::string metname
#define LogTrace(id)
std::map< int, int > jpsiStaSig
bool BPhysicsOniaDQM::isMuonInAccept ( const reco::Muon recoMu)
private

Definition at line 353 of file BPhysicsOniaDQM.cc.

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

353  {
354  return (fabs(recoMu.eta()) < 2.4 &&
355  ((fabs(recoMu.eta()) < 1.3 && recoMu.pt() > 3.3) ||
356  (fabs(recoMu.eta()) > 1.3 && fabs(recoMu.eta()) < 2.2 &&
357  recoMu.p() > 2.9) ||
358  (fabs(recoMu.eta()) > 2.2 && recoMu.pt() > 0.8)));
359 }
virtual double p() const
magnitude of momentum vector
virtual float pt() const
transverse momentum
virtual float eta() const
momentum pseudorapidity
bool BPhysicsOniaDQM::selGlobalMuon ( const reco::Muon recoMu)
private

Definition at line 361 of file BPhysicsOniaDQM.cc.

References reco::Muon::globalTrack(), reco::Muon::innerTrack(), reco::HitPattern::numberOfValidMuonHits(), AlCaHLTBitMon_ParallelJobs::p, reco::HitPattern::pixelLayersWithMeasurement(), and lumiQueryAPI::q.

361  {
362  TrackRef iTrack = recoMu.innerTrack();
363  const reco::HitPattern &p = iTrack->hitPattern();
364 
365  TrackRef gTrack = recoMu.globalTrack();
366  const reco::HitPattern &q = gTrack->hitPattern();
367 
368  return (isMuonInAccept(recoMu) && iTrack->found() > 11 &&
369  gTrack->chi2() / gTrack->ndof() < 20.0 &&
370  q.numberOfValidMuonHits() > 0 &&
371  iTrack->chi2() / iTrack->ndof() < 4.0 &&
372  // recoMu.muonID("TrackerMuonArbitrated") &&
373  // recoMu.muonID("TMLastStationAngTight") &&
374  p.pixelLayersWithMeasurement() > 1 &&
375  fabs(iTrack->dxy(RefVtx)) < 3.0 && fabs(iTrack->dz(RefVtx)) < 15.0);
376 }
virtual TrackRef innerTrack() const
Definition: Muon.h:48
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:458
bool isMuonInAccept(const reco::Muon &recoMu)
math::XYZPoint RefVtx
int numberOfValidMuonHits() const
Definition: HitPattern.h:744
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:54
bool BPhysicsOniaDQM::selTrackerMuon ( const reco::Muon recoMu)
private

Definition at line 378 of file BPhysicsOniaDQM.cc.

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

378  {
379  TrackRef iTrack = recoMu.innerTrack();
380  const reco::HitPattern &p = iTrack->hitPattern();
381 
382  return (isMuonInAccept(recoMu) && iTrack->found() > 11 &&
383  iTrack->chi2() / iTrack->ndof() < 4.0 &&
384  // recoMu.muonID("TrackerMuonArbitrated") &&
385  // recoMu.muonID("TMLastStationAngTight") &&
386  p.pixelLayersWithMeasurement() > 1 &&
387  fabs(iTrack->dxy(RefVtx)) < 3.0 && fabs(iTrack->dz(RefVtx)) < 15.0);
388 }
virtual TrackRef innerTrack() const
Definition: Muon.h:48
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:458
bool isMuonInAccept(const reco::Muon &recoMu)
math::XYZPoint RefVtx

Member Data Documentation

MonitorElement* BPhysicsOniaDQM::diMuonMass_global
private

Definition at line 67 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::diMuonMass_standalone
private

Definition at line 69 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::diMuonMass_tracker
private

Definition at line 68 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::glbBkgNoCut
private

Definition at line 76 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::glbSigCut
private

Definition at line 74 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::glbSigNoCut
private

Definition at line 75 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::global_background
private

Definition at line 70 of file BPhysicsOniaDQM.h.

std::map<int, int> BPhysicsOniaDQM::jpsiGlbSig
private

Definition at line 92 of file BPhysicsOniaDQM.h.

int BPhysicsOniaDQM::jpsiGlbSigPerLS
private

Definition at line 89 of file BPhysicsOniaDQM.h.

std::map<int, int> BPhysicsOniaDQM::jpsiStaSig
private

Definition at line 93 of file BPhysicsOniaDQM.h.

int BPhysicsOniaDQM::jpsiStaSigPerLS
private

Definition at line 90 of file BPhysicsOniaDQM.h.

std::map<int, int> BPhysicsOniaDQM::jpsiTrkSig
private

Definition at line 94 of file BPhysicsOniaDQM.h.

int BPhysicsOniaDQM::jpsiTrkSigPerLS
private

Definition at line 91 of file BPhysicsOniaDQM.h.

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

Definition at line 61 of file BPhysicsOniaDQM.h.

std::string BPhysicsOniaDQM::metname
private

Definition at line 64 of file BPhysicsOniaDQM.h.

math::XYZPoint BPhysicsOniaDQM::RefVtx
private

Definition at line 96 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::staBkgNoCut
private

Definition at line 79 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::standalone_background
private

Definition at line 72 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::staSigCut
private

Definition at line 77 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::staSigNoCut
private

Definition at line 78 of file BPhysicsOniaDQM.h.

DQMStore* BPhysicsOniaDQM::theDbe
private

Definition at line 56 of file BPhysicsOniaDQM.h.

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

Definition at line 60 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::tracker_background
private

Definition at line 71 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::trkBkgNoCut
private

Definition at line 82 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::trkSigCut
private

Definition at line 80 of file BPhysicsOniaDQM.h.

MonitorElement* BPhysicsOniaDQM::trkSigNoCut
private

Definition at line 81 of file BPhysicsOniaDQM.h.

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

Definition at line 58 of file BPhysicsOniaDQM.h.