CMS 3D CMS Logo

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