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  * $Date: 2012/09/09 16:58:38 $
5  * $Revision: 1.8 $
6  * \author S. Goy Lopez, CIEMAT
7  */
8 
10 
15 
22 
23 
25 
26 #include <string>
27 #include <TMath.h>
28 using namespace std;
29 using namespace edm;
30 
31 
32 
34 }
35 
36 
38 
39 
41 
42  metname = "muonKinVsEta";
43 
44  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] Parameters initialization";
45  dbe->setCurrentFolder("Muons/MuonKinVsEtaAnalyzer");
46 
49 
50  etaBin = parameters.getParameter<int>("etaBin");
51  etaMin = parameters.getParameter<double>("etaMin");
52  etaMax = parameters.getParameter<double>("etaMax");
53 
54  phiBin = parameters.getParameter<int>("phiBin");
55  phiMin = parameters.getParameter<double>("phiMin");
56  phiMax = parameters.getParameter<double>("phiMax");
57 
58  pBin = parameters.getParameter<int>("pBin");
59  pMin = parameters.getParameter<double>("pMin");
60  pMax = parameters.getParameter<double>("pMax");
61 
62  ptBin = parameters.getParameter<int>("ptBin");
63  ptMin = parameters.getParameter<double>("ptMin");
64  ptMax = parameters.getParameter<double>("ptMax");
65 
66  chiBin = parameters.getParameter<int>("chiBin");
67  chiMin = parameters.getParameter<double>("chiMin");
68  chiMax = parameters.getParameter<double>("chiMax");
69  chiprobMin = parameters.getParameter<double>("chiprobMin");
70  chiprobMax = parameters.getParameter<double>("chiprobMax");
71 
72 
73  etaBMin = parameters.getParameter<double>("etaBMin");
74  etaBMax = parameters.getParameter<double>("etaBMax");
75  etaECMin = parameters.getParameter<double>("etaECMin");
76  etaECMax = parameters.getParameter<double>("etaECMax");
77  etaOvlpMin = parameters.getParameter<double>("etaOvlpMin");
78  etaOvlpMax = parameters.getParameter<double>("etaOvlpMax");
79 
80  std::string EtaName;
81  for(unsigned int iEtaRegion=0;iEtaRegion<4;iEtaRegion++){
82  if (iEtaRegion==0) EtaName = "Barrel";
83  if (iEtaRegion==1) EtaName = "EndCap";
84  if (iEtaRegion==2) EtaName = "Overlap";
85  if (iEtaRegion==3) EtaName = "";
86 
87  // monitoring of eta parameter
88  etaGlbTrack.push_back(dbe->book1D("GlbMuon_eta_"+EtaName, "#eta_{GLB} "+EtaName, etaBin, etaMin, etaMax));
89  etaTrack.push_back(dbe->book1D("TkMuon_eta_"+EtaName, "#eta_{TK} "+EtaName, etaBin, etaMin, etaMax));
90  etaStaTrack.push_back(dbe->book1D("StaMuon_eta_"+EtaName, "#eta_{STA} "+EtaName, etaBin, etaMin, etaMax));
91  etaTightTrack.push_back(dbe->book1D("TightMuon_eta_"+EtaName, "#eta_{Tight} "+EtaName, etaBin, etaMin, etaMax));
92  etaLooseTrack.push_back(dbe->book1D("LooseMuon_eta_"+EtaName, "#eta_{Loose} "+EtaName, etaBin, etaMin, etaMax));
93  etaSoftTrack.push_back(dbe->book1D("SoftMuon_eta_"+EtaName, "#eta_{Soft} "+EtaName, etaBin, etaMin, etaMax));
94  etaHighPtTrack.push_back(dbe->book1D("HighPtMuon_eta_"+EtaName, "#eta_{HighPt} "+EtaName, etaBin, etaMin, etaMax));
95 
96  // monitoring of phi paramater
97  phiGlbTrack.push_back(dbe->book1D("GlbMuon_phi_"+EtaName, "#phi_{GLB} "+EtaName+ "(rad)", phiBin, phiMin, phiMax));
98  phiTrack.push_back(dbe->book1D("TkMuon_phi_"+EtaName, "#phi_{TK}" +EtaName +"(rad)", phiBin, phiMin, phiMax));
99  phiStaTrack.push_back(dbe->book1D("StaMuon_phi_"+EtaName, "#phi_{STA}"+EtaName+" (rad)", phiBin, phiMin, phiMax));
100  phiTightTrack.push_back(dbe->book1D("TightMuon_phi_"+EtaName, "#phi_{Tight}_"+EtaName, phiBin, phiMin, phiMax));
101  phiLooseTrack.push_back(dbe->book1D("LooseMuon_phi_"+EtaName, "#phi_{Loose}_"+EtaName, phiBin, phiMin, phiMax));
102  phiSoftTrack.push_back(dbe->book1D("SoftMuon_phi_"+EtaName, "#phi_{Soft}_"+EtaName, phiBin, phiMin, phiMax));
103  phiHighPtTrack.push_back(dbe->book1D("HighPtMuon_phi_"+EtaName, "#phi_{HighPt}_"+EtaName, phiBin, phiMin, phiMax));
104 
105  // monitoring of the momentum
106  pGlbTrack.push_back(dbe->book1D("GlbMuon_p_"+EtaName, "p_{GLB} "+EtaName, pBin, pMin, pMax));
107  pTrack.push_back(dbe->book1D("TkMuon_p"+EtaName, "p_{TK} "+EtaName, pBin, pMin, pMax));
108  pStaTrack.push_back(dbe->book1D("StaMuon_p"+EtaName, "p_{STA} "+EtaName, pBin, pMin, pMax));
109  pTightTrack.push_back(dbe->book1D("TightMuon_p_"+EtaName, "p_{Tight} "+EtaName, pBin, pMin, pMax));
110  pLooseTrack.push_back(dbe->book1D("LooseMuon_p_"+EtaName, "p_{Loose} "+EtaName, pBin, pMin, pMax));
111  pSoftTrack.push_back(dbe->book1D("SoftMuon_p_"+EtaName, "p_{Soft} "+EtaName, pBin, pMin, pMax));
112  pHighPtTrack.push_back(dbe->book1D("HighPtMuon_p_"+EtaName, "p_{HighPt} "+EtaName, pBin, pMin, pMax));
113 
114  // monitoring of the transverse momentum
115  ptGlbTrack.push_back(dbe->book1D("GlbMuon_pt_" +EtaName, "pt_{GLB} "+EtaName, ptBin, ptMin, ptMax));
116  ptTrack.push_back(dbe->book1D("TkMuon_pt_"+EtaName, "pt_{TK} "+EtaName, ptBin, ptMin, ptMax));
117  ptStaTrack.push_back(dbe->book1D("StaMuon_pt_"+EtaName, "pt_{STA} "+EtaName, ptBin, ptMin, pMax));
118  ptTightTrack.push_back(dbe->book1D("TightMuon_pt_"+EtaName, "pt_{Tight} "+EtaName, ptBin, ptMin, ptMax));
119  ptLooseTrack.push_back(dbe->book1D("LooseMuon_pt_"+EtaName, "pt_{Loose} "+EtaName, ptBin, ptMin, ptMax));
120  ptSoftTrack.push_back(dbe->book1D("SoftMuon_pt_"+EtaName, "pt_{Soft} "+EtaName, ptBin, ptMin, ptMax));
121  ptHighPtTrack.push_back(dbe->book1D("HighPtMuon_pt_"+EtaName, "pt_{HighPt} "+EtaName, ptBin, ptMin, ptMax));
122 
123  // monitoring chi2 and Prob.Chi2
124  chi2GlbTrack.push_back(dbe->book1D("GlbMuon_chi2_"+EtaName, "#chi^{2}_{GLB} " + EtaName, chiBin, chiMin, chiMax));
125  chi2probGlbTrack.push_back(dbe->book1D("GlbMuon_chi2prob_"+EtaName, "#chi^{2}_{GLB} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
126  chi2Track.push_back(dbe->book1D("TkMuon_chi2_"+EtaName, "#chi^{2}_{TK} " + EtaName, chiBin, chiMin, chiMax));
127  chi2probTrack.push_back(dbe->book1D("TkMuon_chi2prob_"+EtaName, "#chi^{2}_{TK} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
128  chi2StaTrack.push_back(dbe->book1D("StaMuon_chi2_"+EtaName, "#chi^{2}_{STA} " + EtaName, chiBin, chiMin, chiMax));
129  chi2probStaTrack.push_back(dbe->book1D("StaMuon_chi2prob_"+EtaName, "#chi^{2}_{STA} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
130  chi2TightTrack.push_back(dbe->book1D("TightMuon_chi2_"+EtaName, "#chi^{2}_{Tight} " + EtaName, chiBin, chiMin, chiMax));
131  chi2probTightTrack.push_back(dbe->book1D("TightMuon_chi2prob_"+EtaName, "#chi^{2}_{Tight} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
132  chi2LooseTrack.push_back(dbe->book1D("LooseMuon_chi2_"+EtaName, "#chi^{2}_{Loose} " + EtaName, chiBin, chiMin, chiMax));
133  chi2probLooseTrack.push_back(dbe->book1D("LooseMuon_chi2prob_"+EtaName, "#chi^{2}_{Loose} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
134  chi2SoftTrack.push_back(dbe->book1D("SoftMuon_chi2_"+EtaName, "#chi^{2}_{Soft} " + EtaName, chiBin, chiMin, chiMax));
135  chi2probSoftTrack.push_back(dbe->book1D("SoftMuon_chi2prob_"+EtaName, "#chi^{2}_{Soft} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
136  chi2HighPtTrack.push_back(dbe->book1D("HighPtMuon_chi2_"+EtaName, "#chi^{2}_{HighPt} " + EtaName, chiBin, chiMin, chiMax));
137  chi2probHighPtTrack.push_back(dbe->book1D("HighPtMuon_chi2prob_"+EtaName, "#chi^{2}_{HighPt} prob." + EtaName, chiBin, chiprobMin, chiprobMax));
138 
139 
140  }
141 }
142 
143 
144 
145 
146 void MuonKinVsEtaAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup, const reco::Muon& recoMu) {
147 
148  // ==========================================================
149  // Look for the Primary Vertex (and use the BeamSpot instead, if you can't find it):
150 
151  reco::Vertex::Point posVtx;
152  reco::Vertex::Error errVtx;
153 
154  unsigned int theIndexOfThePrimaryVertex = 999.;
155 
157  iEvent.getByLabel(vertexTag, vertex);
158 
159  if (vertex.isValid()){
160 
161  for (unsigned int ind=0; ind<vertex->size(); ++ind) {
162  if ( (*vertex)[ind].isValid() && !((*vertex)[ind].isFake()) ) {
163  theIndexOfThePrimaryVertex = ind;
164  break;
165  }
166  }
167  }
168 
169  if (theIndexOfThePrimaryVertex<100) {
170  posVtx = ((*vertex)[theIndexOfThePrimaryVertex]).position();
171  errVtx = ((*vertex)[theIndexOfThePrimaryVertex]).error();
172  } else {
173  LogInfo("RecoMuonValidator") << "reco::PrimaryVertex not found, use BeamSpot position instead\n";
174 
175  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
176  iEvent.getByLabel(bsTag,recoBeamSpotHandle);
177 
178  reco::BeamSpot bs = *recoBeamSpotHandle;
179 
180  posVtx = bs.position();
181  errVtx(0,0) = bs.BeamWidthX();
182  errVtx(1,1) = bs.BeamWidthY();
183  errVtx(2,2) = bs.sigmaZ();
184  }
185  const reco::Vertex thePrimaryVertex(posVtx,errVtx);
186 
187  // ==========================================================
188 
189 
191  Handle<reco::BeamSpot> beamSpotHandle;
192  iEvent.getByLabel("offlineBeamSpot", beamSpotHandle);
193  beamSpot = *beamSpotHandle;
194 
195  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] Analyze the mu in different eta regions";
196 
197  for(unsigned int iEtaRegion=0;iEtaRegion<4;iEtaRegion++){
198  if (iEtaRegion==0) {EtaCutMin= etaBMin; EtaCutMax=etaBMax;}
199  if (iEtaRegion==1) {EtaCutMin= etaECMin; EtaCutMax=etaECMax;}
200  if (iEtaRegion==2) {EtaCutMin= etaOvlpMin; EtaCutMax=etaOvlpMax;}
201  if (iEtaRegion==3) {EtaCutMin= etaBMin; EtaCutMax=etaECMax;}
202 
203  if(recoMu.isGlobalMuon()) {
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  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] The mu is tracker - filling the histos";
219  // get the track using only the tracker data
220  reco::TrackRef recoTrack = recoMu.track();
221  if(fabs(recoTrack->eta())>EtaCutMin && fabs(recoTrack->eta())<EtaCutMax){
222  etaTrack[iEtaRegion]->Fill(recoTrack->eta());
223  phiTrack[iEtaRegion]->Fill(recoTrack->phi());
224  pTrack[iEtaRegion]->Fill(recoTrack->p());
225  ptTrack[iEtaRegion]->Fill(recoTrack->pt());
226  chi2Track[iEtaRegion]->Fill(recoTrack->normalizedChi2());
227  chi2probTrack[iEtaRegion]->Fill(TMath::Prob(recoTrack->normalizedChi2(),recoTrack->ndof()));
228  }
229  }
230 
231  if(recoMu.isStandAloneMuon()) {
232  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] The mu is standalone - filling the histos";
233  // get the track using only the mu spectrometer data
234  reco::TrackRef recoStaTrack = recoMu.standAloneMuon();
235  if(fabs(recoStaTrack->eta())>EtaCutMin && fabs(recoStaTrack->eta())<EtaCutMax){
236  etaStaTrack[iEtaRegion]->Fill(recoStaTrack->eta());
237  phiStaTrack[iEtaRegion]->Fill(recoStaTrack->phi());
238  pStaTrack[iEtaRegion]->Fill(recoStaTrack->p());
239  ptStaTrack[iEtaRegion]->Fill(recoStaTrack->pt());
240  chi2StaTrack[iEtaRegion]->Fill(recoStaTrack->normalizedChi2());
241  chi2probStaTrack[iEtaRegion]->Fill(TMath::Prob(recoStaTrack->normalizedChi2(),recoStaTrack->ndof()));
242  }
243  }
244 
245  if ( muon::isTightMuon(recoMu, thePrimaryVertex) ) {
246  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] The mu is Tight - filling the histos";
247  reco::TrackRef recoTightTrack = recoMu.combinedMuon();
248  if(fabs(recoTightTrack->eta())>EtaCutMin && fabs(recoTightTrack->eta())<EtaCutMax){
249  etaTightTrack[iEtaRegion]->Fill(recoTightTrack->eta());
250  phiTightTrack[iEtaRegion]->Fill(recoTightTrack->phi());
251  pTightTrack[iEtaRegion]->Fill(recoTightTrack->p());
252  ptTightTrack[iEtaRegion]->Fill(recoTightTrack->pt());
253  chi2TightTrack[iEtaRegion]->Fill(recoTightTrack->normalizedChi2());
254  chi2probTightTrack[iEtaRegion]->Fill(TMath::Prob(recoTightTrack->normalizedChi2(),recoTightTrack->ndof()));
255  }
256  }
257 
258 
259  if ( muon::isLooseMuon(recoMu) ) {
260  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] The mu is Loose - filling the histos";
261  reco::TrackRef recoLooseTrack;
262 
263  if ( recoMu.isGlobalMuon()) recoLooseTrack = recoMu.combinedMuon();
264  else recoLooseTrack = recoMu.track();
265 
266  if(fabs(recoLooseTrack->eta())>EtaCutMin && fabs(recoLooseTrack->eta())<EtaCutMax){
267  etaLooseTrack[iEtaRegion]->Fill(recoLooseTrack->eta());
268  phiLooseTrack[iEtaRegion]->Fill(recoLooseTrack->phi());
269  pLooseTrack[iEtaRegion]->Fill(recoLooseTrack->p());
270  ptLooseTrack[iEtaRegion]->Fill(recoLooseTrack->pt());
271  chi2LooseTrack[iEtaRegion]->Fill(recoLooseTrack->normalizedChi2());
272  chi2probLooseTrack[iEtaRegion]->Fill(TMath::Prob(recoLooseTrack->normalizedChi2(),recoLooseTrack->ndof()));
273  }
274  }
275 
276  if ( muon::isSoftMuon(recoMu, thePrimaryVertex) ) {
277  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] The mu is Soft - filling the histos";
278  reco::TrackRef recoSoftTrack = recoMu.track();
279  if(fabs(recoSoftTrack->eta())>EtaCutMin && fabs(recoSoftTrack->eta())<EtaCutMax){
280  etaSoftTrack[iEtaRegion]->Fill(recoSoftTrack->eta());
281  phiSoftTrack[iEtaRegion]->Fill(recoSoftTrack->phi());
282  pSoftTrack[iEtaRegion]->Fill(recoSoftTrack->p());
283  ptSoftTrack[iEtaRegion]->Fill(recoSoftTrack->pt());
284  chi2SoftTrack[iEtaRegion]->Fill(recoSoftTrack->normalizedChi2());
285  chi2probSoftTrack[iEtaRegion]->Fill(TMath::Prob(recoSoftTrack->normalizedChi2(),recoSoftTrack->ndof()));
286  }
287  }
288 
289  if ( muon::isHighPtMuon(recoMu, thePrimaryVertex) ) {
290  LogTrace(metname)<<"[MuonKinVsEtaAnalyzer] The mu is HightPt - filling the histos";
291  reco::TrackRef recoHighPtTrack = recoMu.combinedMuon();
292  if(fabs(recoHighPtTrack->eta())>EtaCutMin && fabs(recoHighPtTrack->eta())<EtaCutMax){
293  etaHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->eta());
294  phiHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->phi());
295  pHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->p());
296  ptHighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->pt());
297  chi2HighPtTrack[iEtaRegion]->Fill(recoHighPtTrack->normalizedChi2());
298  chi2probHighPtTrack[iEtaRegion]->Fill(TMath::Prob(recoHighPtTrack->normalizedChi2(),recoHighPtTrack->ndof()));
299  }
300  }
301 
302  }
303 }
T getParameter(std::string const &) const
std::vector< MonitorElement * > chi2HighPtTrack
std::vector< MonitorElement * > etaTrack
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
std::vector< MonitorElement * > pSoftTrack
std::vector< MonitorElement * > chi2probSoftTrack
std::vector< MonitorElement * > etaLooseTrack
std::vector< MonitorElement * > chi2LooseTrack
std::vector< MonitorElement * > phiStaTrack
bool isTrackerMuon() const
Definition: Muon.h:220
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:50
bool isGlobalMuon() const
Definition: Muon.h:219
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:44
std::vector< MonitorElement * > chi2probLooseTrack
bool isStandAloneMuon() const
Definition: Muon.h:221
void analyze(const edm::Event &, const edm::EventSetup &, const reco::Muon &recoMu)
Get the analysis.
std::vector< MonitorElement * > ptTrack
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
std::vector< MonitorElement * > chi2TightTrack
std::vector< MonitorElement * > chi2probGlbTrack
std::vector< MonitorElement * > chi2GlbTrack
bool isLooseMuon(const reco::Muon &)
std::vector< MonitorElement * > ptLooseTrack
bool isSoftMuon(const reco::Muon &, const reco::Vertex &)
int iEvent
Definition: GenABIO.cc:243
std::vector< MonitorElement * > ptHighPtTrack
void beginJob(DQMStore *dbe)
Iniyeszialize parameters for histo binning.
MuonKinVsEtaAnalyzer(const edm::ParameterSet &, MuonServiceProxy *theService)
Constructor.
std::vector< MonitorElement * > pTrack
std::vector< MonitorElement * > ptTightTrack
std::vector< MonitorElement * > chi2probTrack
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std::vector< MonitorElement * > phiLooseTrack
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:87
std::vector< MonitorElement * > etaTightTrack
edm::ParameterSet parameters
std::vector< MonitorElement * > chi2probStaTrack
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
#define LogTrace(id)
std::vector< MonitorElement * > etaSoftTrack
std::vector< MonitorElement * > phiTightTrack
bool isHighPtMuon(const reco::Muon &, const reco::Vertex &)
virtual TrackRef combinedMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:56
std::vector< MonitorElement * > pTightTrack
std::vector< MonitorElement * > etaStaTrack
std::vector< MonitorElement * > pGlbTrack
double sigmaZ() const
sigma z
Definition: BeamSpot.h:81
std::vector< MonitorElement * > chi2probTightTrack
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:89
std::vector< MonitorElement * > pStaTrack
std::vector< MonitorElement * > etaGlbTrack
std::vector< MonitorElement * > pHighPtTrack
std::vector< MonitorElement * > phiSoftTrack
std::vector< MonitorElement * > chi2Track
std::vector< MonitorElement * > chi2SoftTrack
const Point & position() const
position
Definition: BeamSpot.h:63
std::vector< MonitorElement * > pLooseTrack
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
std::vector< MonitorElement * > etaHighPtTrack
std::vector< MonitorElement * > chi2StaTrack
std::vector< MonitorElement * > phiTrack
std::vector< MonitorElement * > ptSoftTrack
std::vector< MonitorElement * > ptStaTrack
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
std::vector< MonitorElement * > ptGlbTrack
std::vector< MonitorElement * > chi2probHighPtTrack
std::vector< MonitorElement * > phiGlbTrack
std::vector< MonitorElement * > phiHighPtTrack
virtual ~MuonKinVsEtaAnalyzer()
Destructor.
virtual TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:53