CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MuonKinVsEtaAnalyzer.cc
Go to the documentation of this file.
1 /*
2  * See header file for a description of this class.
3  *
4  * \author S. Goy Lopez, CIEMAT
5  * \author S. Folgueras, U. Oviedo
6  */
9 
11 
12 #include <string>
13 #include <TMath.h>
14 using namespace std;
15 using namespace edm;
16 
17 //#define DEBUG
18 
20  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] Parameters initialization";
21 
22  parameters = pSet;
23 
24  theMuonCollectionLabel_ = consumes<edm::View<reco::Muon> >(parameters.getParameter<edm::InputTag>("MuonCollection"));
25  theVertexLabel_ = consumes<reco::VertexCollection>(parameters.getParameter<edm::InputTag>("VertexLabel"));
26 
27  theBeamSpotLabel_ = mayConsume<reco::BeamSpot>(parameters.getParameter<edm::InputTag>("BeamSpotLabel"));
28 
29  // Parameters
30  etaBin = parameters.getParameter<int>("etaBin");
31  etaMin = parameters.getParameter<double>("etaMin");
32  etaMax = parameters.getParameter<double>("etaMax");
33 
34  phiBin = parameters.getParameter<int>("phiBin");
35  phiMin = parameters.getParameter<double>("phiMin");
36  phiMax = parameters.getParameter<double>("phiMax");
37 
38  pBin = parameters.getParameter<int>("pBin");
39  pMin = parameters.getParameter<double>("pMin");
40  pMax = parameters.getParameter<double>("pMax");
41 
42  ptBin = parameters.getParameter<int>("ptBin");
43  ptMin = parameters.getParameter<double>("ptMin");
44  ptMax = parameters.getParameter<double>("ptMax");
45 
46  chiBin = parameters.getParameter<int>("chiBin");
47  chiMin = parameters.getParameter<double>("chiMin");
48  chiMax = parameters.getParameter<double>("chiMax");
49  chiprobMin = parameters.getParameter<double>("chiprobMin");
50  chiprobMax = parameters.getParameter<double>("chiprobMax");
51 
52  etaBMin = parameters.getParameter<double>("etaBMin");
53  etaBMax = parameters.getParameter<double>("etaBMax");
54  etaECMin = parameters.getParameter<double>("etaECMin");
55  etaECMax = parameters.getParameter<double>("etaECMax");
56  etaOvlpMin = parameters.getParameter<double>("etaOvlpMin");
57  etaOvlpMax = parameters.getParameter<double>("etaOvlpMax");
58 
59  theFolder = parameters.getParameter<string>("folder");
60 }
62 
64  edm::Run const& /*iRun*/,
65  edm::EventSetup const& /*iSetup*/) {
66  ibooker.cd();
67  ibooker.setCurrentFolder(theFolder);
68 
69  std::string EtaName;
70  for (unsigned int iEtaRegion = 0; iEtaRegion < 4; iEtaRegion++) {
71  if (iEtaRegion == 0)
72  EtaName = "Barrel";
73  if (iEtaRegion == 1)
74  EtaName = "EndCap";
75  if (iEtaRegion == 2)
76  EtaName = "Overlap";
77  if (iEtaRegion == 3)
78  EtaName = "";
79 
80  // monitoring of eta parameter
81  etaGlbTrack.push_back(ibooker.book1D("GlbMuon_eta_" + EtaName, "#eta_{GLB} " + EtaName, etaBin, etaMin, etaMax));
82  etaTrack.push_back(ibooker.book1D("TkMuon_eta_" + EtaName, "#eta_{TK} " + EtaName, etaBin, etaMin, etaMax));
83  etaStaTrack.push_back(ibooker.book1D("StaMuon_eta_" + EtaName, "#eta_{STA} " + EtaName, etaBin, etaMin, etaMax));
84  etaTightTrack.push_back(
85  ibooker.book1D("TightMuon_eta_" + EtaName, "#eta_{Tight} " + EtaName, etaBin, etaMin, etaMax));
86  etaLooseTrack.push_back(
87  ibooker.book1D("LooseMuon_eta_" + EtaName, "#eta_{Loose} " + EtaName, etaBin, etaMin, etaMax));
88  etaMediumTrack.push_back(
89  ibooker.book1D("MediumMuon_eta_" + EtaName, "#eta_{Medium} " + EtaName, etaBin, etaMin, etaMax));
90  etaSoftTrack.push_back(ibooker.book1D("SoftMuon_eta_" + EtaName, "#eta_{Soft} " + EtaName, etaBin, etaMin, etaMax));
91  etaHighPtTrack.push_back(
92  ibooker.book1D("HighPtMuon_eta_" + EtaName, "#eta_{HighPt} " + EtaName, etaBin, etaMin, etaMax));
93 
94  // monitoring of phi paramater
95  phiGlbTrack.push_back(
96  ibooker.book1D("GlbMuon_phi_" + EtaName, "#phi_{GLB} " + EtaName + "(rad)", phiBin, phiMin, phiMax));
97  phiTrack.push_back(
98  ibooker.book1D("TkMuon_phi_" + EtaName, "#phi_{TK}" + EtaName + "(rad)", phiBin, phiMin, phiMax));
99  phiStaTrack.push_back(
100  ibooker.book1D("StaMuon_phi_" + EtaName, "#phi_{STA}" + EtaName + " (rad)", phiBin, phiMin, phiMax));
101  phiTightTrack.push_back(
102  ibooker.book1D("TightMuon_phi_" + EtaName, "#phi_{Tight}_" + EtaName, phiBin, phiMin, phiMax));
103  phiLooseTrack.push_back(
104  ibooker.book1D("LooseMuon_phi_" + EtaName, "#phi_{Loose}_" + EtaName, phiBin, phiMin, phiMax));
105  phiMediumTrack.push_back(
106  ibooker.book1D("MediumMuon_phi_" + EtaName, "#phi_{Medium}_" + EtaName, phiBin, phiMin, phiMax));
107  phiSoftTrack.push_back(ibooker.book1D("SoftMuon_phi_" + EtaName, "#phi_{Soft}_" + EtaName, phiBin, phiMin, phiMax));
108  phiHighPtTrack.push_back(
109  ibooker.book1D("HighPtMuon_phi_" + EtaName, "#phi_{HighPt}_" + EtaName, phiBin, phiMin, phiMax));
110 
111  // monitoring of the momentum
112  pGlbTrack.push_back(ibooker.book1D("GlbMuon_p_" + EtaName, "p_{GLB} " + EtaName, pBin, pMin, pMax));
113  pTrack.push_back(ibooker.book1D("TkMuon_p" + EtaName, "p_{TK} " + EtaName, pBin, pMin, pMax));
114  pStaTrack.push_back(ibooker.book1D("StaMuon_p" + EtaName, "p_{STA} " + EtaName, pBin, pMin, pMax));
115  pTightTrack.push_back(ibooker.book1D("TightMuon_p_" + EtaName, "p_{Tight} " + EtaName, pBin, pMin, pMax));
116  pLooseTrack.push_back(ibooker.book1D("LooseMuon_p_" + EtaName, "p_{Loose} " + EtaName, pBin, pMin, pMax));
117  pMediumTrack.push_back(ibooker.book1D("MediumMuon_p_" + EtaName, "p_{Medium} " + EtaName, pBin, pMin, pMax));
118  pSoftTrack.push_back(ibooker.book1D("SoftMuon_p_" + EtaName, "p_{Soft} " + EtaName, pBin, pMin, pMax));
119  pHighPtTrack.push_back(ibooker.book1D("HighPtMuon_p_" + EtaName, "p_{HighPt} " + EtaName, pBin, pMin, pMax));
120 
121  // monitoring of the transverse momentum
122  ptGlbTrack.push_back(ibooker.book1D("GlbMuon_pt_" + EtaName, "pt_{GLB} " + EtaName, ptBin, ptMin, ptMax));
123  ptTrack.push_back(ibooker.book1D("TkMuon_pt_" + EtaName, "pt_{TK} " + EtaName, ptBin, ptMin, ptMax));
124  ptStaTrack.push_back(ibooker.book1D("StaMuon_pt_" + EtaName, "pt_{STA} " + EtaName, ptBin, ptMin, pMax));
125  ptTightTrack.push_back(ibooker.book1D("TightMuon_pt_" + EtaName, "pt_{Tight} " + EtaName, ptBin, ptMin, ptMax));
126  ptLooseTrack.push_back(ibooker.book1D("LooseMuon_pt_" + EtaName, "pt_{Loose} " + EtaName, ptBin, ptMin, ptMax));
127  ptMediumTrack.push_back(ibooker.book1D("MediumMuon_pt_" + EtaName, "pt_{Medium} " + EtaName, ptBin, ptMin, ptMax));
128  ptSoftTrack.push_back(ibooker.book1D("SoftMuon_pt_" + EtaName, "pt_{Soft} " + EtaName, ptBin, ptMin, ptMax));
129  ptHighPtTrack.push_back(ibooker.book1D("HighPtMuon_pt_" + EtaName, "pt_{HighPt} " + EtaName, ptBin, ptMin, ptMax));
130 
131  // monitoring chi2 and Prob.Chi2
132  chi2GlbTrack.push_back(
133  ibooker.book1D("GlbMuon_chi2_" + EtaName, "#chi^{2}_{GLB} " + EtaName, chiBin, chiMin, chiMax));
134  chi2probGlbTrack.push_back(ibooker.book1D(
135  "GlbMuon_chi2prob_" + EtaName, "#chi^{2}_{GLB} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
136  chi2Track.push_back(ibooker.book1D("TkMuon_chi2_" + EtaName, "#chi^{2}_{TK} " + EtaName, chiBin, chiMin, chiMax));
137  chi2probTrack.push_back(
138  ibooker.book1D("TkMuon_chi2prob_" + EtaName, "#chi^{2}_{TK} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
139  chi2StaTrack.push_back(
140  ibooker.book1D("StaMuon_chi2_" + EtaName, "#chi^{2}_{STA} " + EtaName, chiBin, chiMin, chiMax));
141  chi2probStaTrack.push_back(ibooker.book1D(
142  "StaMuon_chi2prob_" + EtaName, "#chi^{2}_{STA} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
143  chi2TightTrack.push_back(
144  ibooker.book1D("TightMuon_chi2_" + EtaName, "#chi^{2}_{Tight} " + EtaName, chiBin, chiMin, chiMax));
145  chi2probTightTrack.push_back(ibooker.book1D(
146  "TightMuon_chi2prob_" + EtaName, "#chi^{2}_{Tight} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
147  chi2LooseTrack.push_back(
148  ibooker.book1D("LooseMuon_chi2_" + EtaName, "#chi^{2}_{Loose} " + EtaName, chiBin, chiMin, chiMax));
149  chi2MediumTrack.push_back(
150  ibooker.book1D("MediumMuon_chi2_" + EtaName, "#chi^{2}_{Medium} " + EtaName, chiBin, chiMin, chiMax));
151  chi2probLooseTrack.push_back(ibooker.book1D(
152  "LooseMuon_chi2prob_" + EtaName, "#chi^{2}_{Loose} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
153  chi2probMediumTrack.push_back(ibooker.book1D(
154  "MediumMuon_chi2prob_" + EtaName, "#chi^{2}_{Medium} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
155  chi2SoftTrack.push_back(
156  ibooker.book1D("SoftMuon_chi2_" + EtaName, "#chi^{2}_{Soft} " + EtaName, chiBin, chiMin, chiMax));
157  chi2probSoftTrack.push_back(ibooker.book1D(
158  "SoftMuon_chi2prob_" + EtaName, "#chi^{2}_{Soft} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
159  chi2HighPtTrack.push_back(
160  ibooker.book1D("HighPtMuon_chi2_" + EtaName, "#chi^{2}_{HighPt} " + EtaName, chiBin, chiMin, chiMax));
161  chi2probHighPtTrack.push_back(ibooker.book1D(
162  "HighPtMuon_chi2prob_" + EtaName, "#chi^{2}_{HighPt} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
163  }
164 }
166  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] Analyze the mu in different eta regions";
167 
169  iEvent.getByToken(theMuonCollectionLabel_, muons);
170 
171  // =================================================================================
172  // Look for the Primary Vertex (and use the BeamSpot instead, if you can't find it):
173  reco::Vertex::Point posVtx;
174  reco::Vertex::Error errVtx;
175  unsigned int theIndexOfThePrimaryVertex = 999.;
176 
178  iEvent.getByToken(theVertexLabel_, vertex);
179  if (vertex.isValid()) {
180  for (unsigned int ind = 0; ind < vertex->size(); ++ind) {
181  if ((*vertex)[ind].isValid() && !((*vertex)[ind].isFake())) {
182  theIndexOfThePrimaryVertex = ind;
183  break;
184  }
185  }
186  }
187 
188  if (theIndexOfThePrimaryVertex < 100) {
189  posVtx = ((*vertex)[theIndexOfThePrimaryVertex]).position();
190  errVtx = ((*vertex)[theIndexOfThePrimaryVertex]).error();
191  } else {
192  LogInfo("RecoMuonValidator") << "reco::PrimaryVertex not found, use BeamSpot position instead\n";
193 
194  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
195  iEvent.getByToken(theBeamSpotLabel_, recoBeamSpotHandle);
196  reco::BeamSpot bs = *recoBeamSpotHandle;
197 
198  posVtx = bs.position();
199  errVtx(0, 0) = bs.BeamWidthX();
200  errVtx(1, 1) = bs.BeamWidthY();
201  errVtx(2, 2) = bs.sigmaZ();
202  }
203 
204  const reco::Vertex vtx(posVtx, errVtx);
205  // ==========================================================
206 
207 #ifdef DEBUG
208  cout << "[MuonKinVsEtaAnalyzer]: Analyze the mu in different eta regions" << endl;
209 #endif
210  if (!muons.isValid())
211  return;
212 
213  for (edm::View<reco::Muon>::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) {
214  for (unsigned int iEtaRegion = 0; iEtaRegion < 4; iEtaRegion++) {
215  if (iEtaRegion == 0) {
216  EtaCutMin = etaBMin;
217  EtaCutMax = etaBMax;
218  }
219  if (iEtaRegion == 1) {
220  EtaCutMin = etaECMin;
221  EtaCutMax = etaECMax;
222  }
223  if (iEtaRegion == 2) {
224  EtaCutMin = etaOvlpMin;
225  EtaCutMax = etaOvlpMax;
226  }
227  if (iEtaRegion == 3) {
228  EtaCutMin = etaBMin;
229  EtaCutMax = etaECMax;
230  }
231 
232  if (muon->isGlobalMuon()) {
233 #ifdef DEBUG
234  cout << "[MuonKinVsEtaAnalyzer]: The mu is global... Filling the histos" << endl;
235 #endif
236  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is global - filling the histos";
237  reco::TrackRef recoCombinedGlbTrack = muon->combinedMuon();
238  // get the track combinig the information from both the glb fit"
239  if (fabs(recoCombinedGlbTrack->eta()) > EtaCutMin && fabs(recoCombinedGlbTrack->eta()) < EtaCutMax) {
240  etaGlbTrack[iEtaRegion]->Fill(recoCombinedGlbTrack->eta());
241  phiGlbTrack[iEtaRegion]->Fill(recoCombinedGlbTrack->phi());
242  pGlbTrack[iEtaRegion]->Fill(recoCombinedGlbTrack->p());
243  ptGlbTrack[iEtaRegion]->Fill(recoCombinedGlbTrack->pt());
244  chi2GlbTrack[iEtaRegion]->Fill(recoCombinedGlbTrack->normalizedChi2());
245  chi2probGlbTrack[iEtaRegion]->Fill(TMath::Prob(recoCombinedGlbTrack->chi2(), recoCombinedGlbTrack->ndof()));
246  }
247  }
248 
249  if (muon->isTrackerMuon()) {
250 #ifdef DEBUG
251  cout << "[MuonKinVsEtaAnalyzer]: The mu is tracker... Filling the histos" << endl;
252 #endif
253  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is tracker - filling the histos";
254  // get the track using only the tracker data
255  reco::TrackRef recoTrack = muon->track();
256  if (fabs(recoTrack->eta()) > EtaCutMin && fabs(recoTrack->eta()) < EtaCutMax) {
257  etaTrack[iEtaRegion]->Fill(recoTrack->eta());
258  phiTrack[iEtaRegion]->Fill(recoTrack->phi());
259  pTrack[iEtaRegion]->Fill(recoTrack->p());
260  ptTrack[iEtaRegion]->Fill(recoTrack->pt());
261  chi2Track[iEtaRegion]->Fill(recoTrack->normalizedChi2());
262  chi2probTrack[iEtaRegion]->Fill(TMath::Prob(recoTrack->chi2(), recoTrack->ndof()));
263  }
264  }
265 
266  if (muon->isStandAloneMuon()) {
267 #ifdef DEBUG
268  cout << "[MuonKinVsEtaAnalyzer]: The mu is standlone... Filling the histos" << endl;
269 #endif
270  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is standalone - filling the histos";
271  // get the track using only the mu spectrometer data
272  reco::TrackRef recoStaTrack = muon->standAloneMuon();
273  if (fabs(recoStaTrack->eta()) > EtaCutMin && fabs(recoStaTrack->eta()) < EtaCutMax) {
274  etaStaTrack[iEtaRegion]->Fill(recoStaTrack->eta());
275  phiStaTrack[iEtaRegion]->Fill(recoStaTrack->phi());
276  pStaTrack[iEtaRegion]->Fill(recoStaTrack->p());
277  ptStaTrack[iEtaRegion]->Fill(recoStaTrack->pt());
278  chi2StaTrack[iEtaRegion]->Fill(recoStaTrack->normalizedChi2());
279  chi2probStaTrack[iEtaRegion]->Fill(TMath::Prob(recoStaTrack->chi2(), recoStaTrack->ndof()));
280  }
281  }
282 
283  if (muon::isTightMuon(*muon, vtx)) {
284 #ifdef DEBUG
285  cout << "[MuonKinVsEtaAnalyzer]: The mu is tight... Filling the histos" << endl;
286 #endif
287  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is Tight - filling the histos";
288  reco::TrackRef recoTightTrack = muon->combinedMuon();
289  if (fabs(recoTightTrack->eta()) > EtaCutMin && fabs(recoTightTrack->eta()) < EtaCutMax) {
290  etaTightTrack[iEtaRegion]->Fill(recoTightTrack->eta());
291  phiTightTrack[iEtaRegion]->Fill(recoTightTrack->phi());
292  pTightTrack[iEtaRegion]->Fill(recoTightTrack->p());
293  ptTightTrack[iEtaRegion]->Fill(recoTightTrack->pt());
294  chi2TightTrack[iEtaRegion]->Fill(recoTightTrack->normalizedChi2());
295  chi2probTightTrack[iEtaRegion]->Fill(TMath::Prob(recoTightTrack->chi2(), recoTightTrack->ndof()));
296  }
297  }
298 
299  if (muon::isLooseMuon(*muon)) {
300 #ifdef DEBUG
301  cout << "[MuonKinVsEtaAnalyzer]: The mu is Loose... Filling the histos" << endl;
302 #endif
303  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is Loose - filling the histos";
304  reco::TrackRef recoLooseTrack;
305 
306  if (muon->isGlobalMuon())
307  recoLooseTrack = muon->combinedMuon();
308  else
309  recoLooseTrack = muon->track();
310 
311  if (fabs(recoLooseTrack->eta()) > EtaCutMin && fabs(recoLooseTrack->eta()) < EtaCutMax) {
312  etaLooseTrack[iEtaRegion]->Fill(recoLooseTrack->eta());
313  phiLooseTrack[iEtaRegion]->Fill(recoLooseTrack->phi());
314  pLooseTrack[iEtaRegion]->Fill(recoLooseTrack->p());
315  ptLooseTrack[iEtaRegion]->Fill(recoLooseTrack->pt());
316  chi2LooseTrack[iEtaRegion]->Fill(recoLooseTrack->normalizedChi2());
317  chi2probLooseTrack[iEtaRegion]->Fill(TMath::Prob(recoLooseTrack->chi2(), recoLooseTrack->ndof()));
318  }
319  }
320 
321  if (muon::isMediumMuon(*muon)) {
322 #ifdef DEBUG
323  cout << "[MuonKinVsEtaAnalyzer]: The mu is Medium... Filling the histos" << endl;
324 #endif
325  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is Medium - filling the histos";
326  reco::TrackRef recoMediumTrack;
327 
328  if (muon->isGlobalMuon())
329  recoMediumTrack = muon->combinedMuon();
330  else
331  recoMediumTrack = muon->track();
332 
333  if (fabs(recoMediumTrack->eta()) > EtaCutMin && fabs(recoMediumTrack->eta()) < EtaCutMax) {
334  etaMediumTrack[iEtaRegion]->Fill(recoMediumTrack->eta());
335  phiMediumTrack[iEtaRegion]->Fill(recoMediumTrack->phi());
336  pMediumTrack[iEtaRegion]->Fill(recoMediumTrack->p());
337  ptMediumTrack[iEtaRegion]->Fill(recoMediumTrack->pt());
338  chi2MediumTrack[iEtaRegion]->Fill(recoMediumTrack->normalizedChi2());
339  chi2probMediumTrack[iEtaRegion]->Fill(TMath::Prob(recoMediumTrack->chi2(), recoMediumTrack->ndof()));
340  }
341  }
342 
343  if (muon::isSoftMuon(*muon, vtx)) {
344 #ifdef DEBUG
345  cout << "[MuonKinVsEtaAnalyzer]: The mu is Soft... Filling the histos" << endl;
346 #endif
347  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is Soft - filling the histos";
348  reco::TrackRef recoSoftTrack = muon->track();
349  if (fabs(recoSoftTrack->eta()) > EtaCutMin && fabs(recoSoftTrack->eta()) < EtaCutMax) {
350  etaSoftTrack[iEtaRegion]->Fill(recoSoftTrack->eta());
351  phiSoftTrack[iEtaRegion]->Fill(recoSoftTrack->phi());
352  pSoftTrack[iEtaRegion]->Fill(recoSoftTrack->p());
353  ptSoftTrack[iEtaRegion]->Fill(recoSoftTrack->pt());
354  chi2SoftTrack[iEtaRegion]->Fill(recoSoftTrack->normalizedChi2());
355  chi2probSoftTrack[iEtaRegion]->Fill(TMath::Prob(recoSoftTrack->chi2(), recoSoftTrack->ndof()));
356  }
357  }
358 
359  if (muon::isHighPtMuon(*muon, vtx)) {
360 #ifdef DEBUG
361  cout << "[MuonKinVsEtaAnalyzer]: The mu is HighPt... Filling the histos" << endl;
362 #endif
363  LogTrace(metname) << "[MuonKinVsEtaAnalyzer] The mu is HightPt - filling the histos";
364  reco::TrackRef recoHighPtTrack = muon->combinedMuon();
365  if (fabs(recoHighPtTrack->eta()) > EtaCutMin && fabs(recoHighPtTrack->eta()) < EtaCutMax) {
366  etaHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->eta());
367  phiHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->phi());
368  pHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->p());
369  ptHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->pt());
370  chi2HighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->normalizedChi2());
371  chi2probHighPtTrack[iEtaRegion]->Fill(TMath::Prob(recoHighPtTrack->chi2(), recoHighPtTrack->ndof()));
372  }
373  }
374  } //end iEtaRegions
375  } //end recoMu iteration
376 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
bool isMediumMuon(const reco::Muon &, bool run2016_hip_mitigation=false)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
const std::string metname
constexpr float ptMin
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:44
tuple etaMin
Definition: Puppi_cff.py:45
#define LogTrace(id)
bool isLooseMuon(const reco::Muon &)
int iEvent
Definition: GenABIO.cc:224
void analyze(const edm::Event &, const edm::EventSetup &) override
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:82
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
bool isSoftMuon(const reco::Muon &, const reco::Vertex &, bool run2016_hip_mitigation=false)
bool isValid() const
Definition: HandleBase.h:70
Log< level::Info, false > LogInfo
bool isHighPtMuon(const reco::Muon &, const reco::Vertex &)
double sigmaZ() const
sigma z
Definition: BeamSpot.h:76
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:84
~MuonKinVsEtaAnalyzer() override
Destructor.
tuple muons
Definition: patZpeak.py:39
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
static int position[264][3]
Definition: ReadPGInfo.cc:289
tuple cout
Definition: gather_cfg.py:144
const Point & position() const
position
Definition: BeamSpot.h:59
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
tuple etaMax
Definition: Puppi_cff.py:46
MuonKinVsEtaAnalyzer(const edm::ParameterSet &pSet)
Constructor.
int etaBin(const l1t::HGCalMulticluster *cl)
Definition: Run.h:45