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