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 
28  theMuonCollectionLabel_ = consumes<edm::View<reco::Muon> > (parameters.getParameter<edm::InputTag>("MuonCollection"));
29  theVertexLabel_ = consumes<reco::VertexCollection>(parameters.getParameter<edm::InputTag>("VertexLabel"));
30 
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  theFolder = parameters.getParameter<string>("folder");
64 }
66  delete theService;
67 }
68 
70  edm::Run const & /*iRun*/,
71  edm::EventSetup const& /*iSetup*/){
72  ibooker.cd();
73  ibooker.setCurrentFolder(theFolder);
74 
75 
76  std::string EtaName;
77  for(unsigned int iEtaRegion=0;iEtaRegion<4;iEtaRegion++){
78  if (iEtaRegion==0) EtaName = "Barrel";
79  if (iEtaRegion==1) EtaName = "EndCap";
80  if (iEtaRegion==2) EtaName = "Overlap";
81  if (iEtaRegion==3) 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(ibooker.book1D("TightMuon_eta_"+EtaName, "#eta_{Tight} "+EtaName, etaBin, etaMin, etaMax));
88  etaLooseTrack.push_back(ibooker.book1D("LooseMuon_eta_"+EtaName, "#eta_{Loose} "+EtaName, etaBin, etaMin, etaMax));
89  etaMediumTrack.push_back(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(ibooker.book1D("HighPtMuon_eta_"+EtaName, "#eta_{HighPt} "+EtaName, etaBin, etaMin, etaMax));
92 
93  // monitoring of phi paramater
94  phiGlbTrack.push_back(ibooker.book1D("GlbMuon_phi_"+EtaName, "#phi_{GLB} "+EtaName+ "(rad)", phiBin, phiMin, phiMax));
95  phiTrack.push_back(ibooker.book1D("TkMuon_phi_"+EtaName, "#phi_{TK}" +EtaName +"(rad)", phiBin, phiMin, phiMax));
96  phiStaTrack.push_back(ibooker.book1D("StaMuon_phi_"+EtaName, "#phi_{STA}"+EtaName+" (rad)", phiBin, phiMin, phiMax));
97  phiTightTrack.push_back(ibooker.book1D("TightMuon_phi_"+EtaName, "#phi_{Tight}_"+EtaName, phiBin, phiMin, phiMax));
98  phiLooseTrack.push_back(ibooker.book1D("LooseMuon_phi_"+EtaName, "#phi_{Loose}_"+EtaName, phiBin, phiMin, phiMax));
99  phiMediumTrack.push_back(ibooker.book1D("MediumMuon_phi_"+EtaName, "#phi_{Medium}_"+EtaName, phiBin, phiMin, phiMax));
100  phiSoftTrack.push_back(ibooker.book1D("SoftMuon_phi_"+EtaName, "#phi_{Soft}_"+EtaName, phiBin, phiMin, phiMax));
101  phiHighPtTrack.push_back(ibooker.book1D("HighPtMuon_phi_"+EtaName, "#phi_{HighPt}_"+EtaName, phiBin, phiMin, phiMax));
102 
103  // monitoring of the momentum
104  pGlbTrack.push_back(ibooker.book1D("GlbMuon_p_"+EtaName, "p_{GLB} "+EtaName, pBin, pMin, pMax));
105  pTrack.push_back(ibooker.book1D("TkMuon_p"+EtaName, "p_{TK} "+EtaName, pBin, pMin, pMax));
106  pStaTrack.push_back(ibooker.book1D("StaMuon_p"+EtaName, "p_{STA} "+EtaName, pBin, pMin, pMax));
107  pTightTrack.push_back(ibooker.book1D("TightMuon_p_"+EtaName, "p_{Tight} "+EtaName, pBin, pMin, pMax));
108  pLooseTrack.push_back(ibooker.book1D("LooseMuon_p_"+EtaName, "p_{Loose} "+EtaName, pBin, pMin, pMax));
109  pMediumTrack.push_back(ibooker.book1D("MediumMuon_p_"+EtaName, "p_{Medium} "+EtaName, pBin, pMin, pMax));
110  pSoftTrack.push_back(ibooker.book1D("SoftMuon_p_"+EtaName, "p_{Soft} "+EtaName, pBin, pMin, pMax));
111  pHighPtTrack.push_back(ibooker.book1D("HighPtMuon_p_"+EtaName, "p_{HighPt} "+EtaName, pBin, pMin, pMax));
112 
113  // monitoring of the transverse momentum
114  ptGlbTrack.push_back(ibooker.book1D("GlbMuon_pt_" +EtaName, "pt_{GLB} "+EtaName, ptBin, ptMin, ptMax));
115  ptTrack.push_back(ibooker.book1D("TkMuon_pt_"+EtaName, "pt_{TK} "+EtaName, ptBin, ptMin, ptMax));
116  ptStaTrack.push_back(ibooker.book1D("StaMuon_pt_"+EtaName, "pt_{STA} "+EtaName, ptBin, ptMin, pMax));
117  ptTightTrack.push_back(ibooker.book1D("TightMuon_pt_"+EtaName, "pt_{Tight} "+EtaName, ptBin, ptMin, ptMax));
118  ptLooseTrack.push_back(ibooker.book1D("LooseMuon_pt_"+EtaName, "pt_{Loose} "+EtaName, ptBin, ptMin, ptMax));
119  ptMediumTrack.push_back(ibooker.book1D("MediumMuon_pt_"+EtaName, "pt_{Medium} "+EtaName, ptBin, ptMin, ptMax));
120  ptSoftTrack.push_back(ibooker.book1D("SoftMuon_pt_"+EtaName, "pt_{Soft} "+EtaName, ptBin, ptMin, ptMax));
121  ptHighPtTrack.push_back(ibooker.book1D("HighPtMuon_pt_"+EtaName, "pt_{HighPt} "+EtaName, ptBin, ptMin, ptMax));
122 
123  // monitoring chi2 and Prob.Chi2
124  chi2GlbTrack.push_back(ibooker.book1D("GlbMuon_chi2_"+EtaName, "#chi^{2}_{GLB} " + EtaName, chiBin, chiMin, chiMax));
125  chi2probGlbTrack.push_back(ibooker.book1D("GlbMuon_chi2prob_"+EtaName, "#chi^{2}_{GLB} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
126  chi2Track.push_back(ibooker.book1D("TkMuon_chi2_"+EtaName, "#chi^{2}_{TK} " + EtaName, chiBin, chiMin, chiMax));
127  chi2probTrack.push_back(ibooker.book1D("TkMuon_chi2prob_"+EtaName, "#chi^{2}_{TK} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
128  chi2StaTrack.push_back(ibooker.book1D("StaMuon_chi2_"+EtaName, "#chi^{2}_{STA} " + EtaName, chiBin, chiMin, chiMax));
129  chi2probStaTrack.push_back(ibooker.book1D("StaMuon_chi2prob_"+EtaName, "#chi^{2}_{STA} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
130  chi2TightTrack.push_back(ibooker.book1D("TightMuon_chi2_"+EtaName, "#chi^{2}_{Tight} " + EtaName, chiBin, chiMin, chiMax));
131  chi2probTightTrack.push_back(ibooker.book1D("TightMuon_chi2prob_"+EtaName, "#chi^{2}_{Tight} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
132  chi2LooseTrack.push_back(ibooker.book1D("LooseMuon_chi2_"+EtaName, "#chi^{2}_{Loose} " + EtaName, chiBin, chiMin, chiMax));
133  chi2MediumTrack.push_back(ibooker.book1D("MediumMuon_chi2_"+EtaName, "#chi^{2}_{Medium} " + EtaName, chiBin, chiMin, chiMax));
134  chi2probLooseTrack.push_back(ibooker.book1D("LooseMuon_chi2prob_"+EtaName, "#chi^{2}_{Loose} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
135  chi2probMediumTrack.push_back(ibooker.book1D("MediumMuon_chi2prob_"+EtaName, "#chi^{2}_{Medium} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
136  chi2SoftTrack.push_back(ibooker.book1D("SoftMuon_chi2_"+EtaName, "#chi^{2}_{Soft} " + EtaName, chiBin, chiMin, chiMax));
137  chi2probSoftTrack.push_back(ibooker.book1D("SoftMuon_chi2prob_"+EtaName, "#chi^{2}_{Soft} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
138  chi2HighPtTrack.push_back(ibooker.book1D("HighPtMuon_chi2_"+EtaName, "#chi^{2}_{HighPt} " + EtaName, chiBin, chiMin, chiMax));
139  chi2probHighPtTrack.push_back(ibooker.book1D("HighPtMuon_chi2prob_"+EtaName, "#chi^{2}_{HighPt} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
140  }
141 }
143 
144  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] Analyze the mu in different eta regions";
145  theService->update(iSetup);
146 
148  iEvent.getByToken(theMuonCollectionLabel_,muons);
149 
150  // =================================================================================
151  // Look for the Primary Vertex (and use the BeamSpot instead, if you can't find it):
152  reco::Vertex::Point posVtx;
153  reco::Vertex::Error errVtx;
154  unsigned int theIndexOfThePrimaryVertex = 999.;
155 
157  iEvent.getByToken(theVertexLabel_, vertex);
158  if (vertex.isValid()){
159  for (unsigned int ind=0; ind<vertex->size(); ++ind) {
160  if ( (*vertex)[ind].isValid() && !((*vertex)[ind].isFake()) ) {
161  theIndexOfThePrimaryVertex = ind;
162  break;
163  }
164  }
165  }
166 
167  if (theIndexOfThePrimaryVertex<100) {
168  posVtx = ((*vertex)[theIndexOfThePrimaryVertex]).position();
169  errVtx = ((*vertex)[theIndexOfThePrimaryVertex]).error();
170  }
171  else {
172  LogInfo("RecoMuonValidator") << "reco::PrimaryVertex not found, use BeamSpot position instead\n";
173 
174  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
175  iEvent.getByToken(theBeamSpotLabel_,recoBeamSpotHandle);
176  reco::BeamSpot bs = *recoBeamSpotHandle;
177 
178  posVtx = bs.position();
179  errVtx(0,0) = bs.BeamWidthX();
180  errVtx(1,1) = bs.BeamWidthY();
181  errVtx(2,2) = bs.sigmaZ();
182  }
183 
184  const reco::Vertex vtx(posVtx,errVtx);
185  // ==========================================================
186 
187 #ifdef DEBUG
188  cout << "[MuonKinVsEtaAnalyzer]: Analyze the mu in different eta regions" << endl;
189 #endif
190  if (!muons.isValid()) return;
191 
192  for (edm::View<reco::Muon>::const_iterator muon = muons->begin(); muon != muons->end(); ++muon){
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(muon->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 = muon->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->chi2(),recoCombinedGlbTrack->ndof()));
214  }
215  }
216 
217  if(muon->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 = muon->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->chi2(),recoTrack->ndof()));
231  }
232  }
233 
234  if(muon->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 = muon->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->chi2(),recoStaTrack->ndof()));
248  }
249  }
250 
251  if ( muon::isTightMuon(*muon, 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 = muon->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->chi2(),recoTightTrack->ndof()));
264  }
265  }
266 
267 
268  if ( muon::isLooseMuon(*muon) ) {
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 ( muon->isGlobalMuon()) recoLooseTrack = muon->combinedMuon();
276  else recoLooseTrack = muon->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->chi2(),recoLooseTrack->ndof()));
285  }
286  }
287 
288  if ( muon::isMediumMuon(*muon) ) {
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 ( muon->isGlobalMuon()) recoMediumTrack = muon->combinedMuon();
296  else recoMediumTrack = muon->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->chi2(),recoMediumTrack->ndof()));
305  }
306  }
307 
308  if ( muon::isSoftMuon(*muon, 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 = muon->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->chi2(),recoSoftTrack->ndof()));
321  }
322  }
323 
324  if ( muon::isHighPtMuon(*muon, 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 = muon->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->chi2(),recoHighPtTrack->ndof()));
337  }
338  }
339  } //end iEtaRegions
340  } //end recoMu iteration
341 }
bool isMediumMuon(const reco::Muon &, bool run2016_hip_mitigation=false)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
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:224
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
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 &)
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:45