CMS 3D CMS Logo

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