169 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] Analyze the mu in different eta regions";
179 unsigned int theIndexOfThePrimaryVertex = 999.;
184 for (
unsigned int ind = 0; ind < vertex->size(); ++ind) {
185 if ((*vertex)[ind].isValid() && !((*vertex)[ind].isFake())) {
186 theIndexOfThePrimaryVertex = ind;
192 if (theIndexOfThePrimaryVertex < 100) {
193 posVtx = ((*vertex)[theIndexOfThePrimaryVertex]).
position();
194 errVtx = ((*vertex)[theIndexOfThePrimaryVertex]).
error();
196 LogInfo(
"RecoMuonValidator") <<
"reco::PrimaryVertex not found, use BeamSpot position instead\n";
205 errVtx(2, 2) = bs.
sigmaZ();
212 cout <<
"[MuonKinVsEtaAnalyzer]: Analyze the mu in different eta regions" << endl;
218 for (
unsigned int iEtaRegion = 0; iEtaRegion < 4; iEtaRegion++) {
219 if (iEtaRegion == 0) {
223 if (iEtaRegion == 1) {
227 if (iEtaRegion == 2) {
231 if (iEtaRegion == 3) {
236 if (
muon->isGlobalMuon()) {
238 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is global... Filling the histos" << endl;
240 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is global - filling the histos";
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()));
253 if (
muon->isTrackerMuon()) {
255 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is tracker... Filling the histos" << endl;
257 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is tracker - filling the histos";
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()));
270 if (
muon->isStandAloneMuon()) {
272 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is standlone... Filling the histos" << endl;
274 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is standalone - filling the histos";
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()));
289 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is tight... Filling the histos" << endl;
291 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is Tight - filling the histos";
293 if (fabs(recoTightTrack->eta()) >
EtaCutMin && fabs(recoTightTrack->eta()) <
EtaCutMax) {
296 pTightTrack[iEtaRegion]->Fill(recoTightTrack->p());
298 chi2TightTrack[iEtaRegion]->Fill(recoTightTrack->normalizedChi2());
299 chi2probTightTrack[iEtaRegion]->Fill(TMath::Prob(recoTightTrack->chi2(), recoTightTrack->ndof()));
305 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is Loose... Filling the histos" << endl;
307 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is Loose - filling the histos";
310 if (
muon->isGlobalMuon())
311 recoLooseTrack =
muon->combinedMuon();
313 recoLooseTrack =
muon->track();
315 if (fabs(recoLooseTrack->eta()) >
EtaCutMin && fabs(recoLooseTrack->eta()) <
EtaCutMax) {
318 pLooseTrack[iEtaRegion]->Fill(recoLooseTrack->p());
320 chi2LooseTrack[iEtaRegion]->Fill(recoLooseTrack->normalizedChi2());
321 chi2probLooseTrack[iEtaRegion]->Fill(TMath::Prob(recoLooseTrack->chi2(), recoLooseTrack->ndof()));
327 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is Medium... Filling the histos" << endl;
329 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is Medium - filling the histos";
332 if (
muon->isGlobalMuon())
333 recoMediumTrack =
muon->combinedMuon();
335 recoMediumTrack =
muon->track();
337 if (fabs(recoMediumTrack->eta()) >
EtaCutMin && fabs(recoMediumTrack->eta()) <
EtaCutMax) {
343 chi2probMediumTrack[iEtaRegion]->Fill(TMath::Prob(recoMediumTrack->chi2(), recoMediumTrack->ndof()));
349 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is Soft... Filling the histos" << endl;
351 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is Soft - filling the histos";
353 if (fabs(recoSoftTrack->eta()) >
EtaCutMin && fabs(recoSoftTrack->eta()) <
EtaCutMax) {
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()));
365 cout <<
"[MuonKinVsEtaAnalyzer]: The mu is HighPt... Filling the histos" << endl;
367 LogTrace(
metname) <<
"[MuonKinVsEtaAnalyzer] The mu is HightPt - filling the histos";
369 if (fabs(recoHighPtTrack->eta()) >
EtaCutMin && fabs(recoHighPtTrack->eta()) <
EtaCutMax) {
375 chi2probHighPtTrack[iEtaRegion]->Fill(TMath::Prob(recoHighPtTrack->chi2(), recoHighPtTrack->ndof()));
std::vector< MonitorElement * > pGlbTrack
MuonServiceProxy * theService
std::vector< MonitorElement * > phiHighPtTrack
std::vector< MonitorElement * > chi2GlbTrack
std::vector< MonitorElement * > phiSoftTrack
bool isMediumMuon(const reco::Muon &, bool run2016_hip_mitigation=false)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< MonitorElement * > ptTrack
edm::EDGetTokenT< edm::View< reco::Muon > > theMuonCollectionLabel_
std::vector< MonitorElement * > ptTightTrack
edm::EDGetTokenT< reco::VertexCollection > theVertexLabel_
std::vector< MonitorElement * > phiMediumTrack
std::vector< MonitorElement * > chi2TightTrack
std::vector< MonitorElement * > ptSoftTrack
math::Error< dimension >::type Error
covariance error matrix (3x3)
std::vector< MonitorElement * > etaMediumTrack
std::vector< MonitorElement * > chi2probGlbTrack
std::vector< MonitorElement * > chi2HighPtTrack
std::vector< MonitorElement * > etaLooseTrack
std::vector< MonitorElement * > etaHighPtTrack
std::vector< MonitorElement * > chi2probLooseTrack
std::vector< MonitorElement * > chi2probTrack
std::vector< MonitorElement * > pLooseTrack
std::vector< MonitorElement * > chi2probStaTrack
std::vector< MonitorElement * > phiLooseTrack
std::vector< MonitorElement * > chi2probTightTrack
bool isLooseMuon(const reco::Muon &)
std::vector< MonitorElement * > ptGlbTrack
std::vector< MonitorElement * > ptHighPtTrack
std::vector< MonitorElement * > etaTrack
std::vector< MonitorElement * > pSoftTrack
std::vector< MonitorElement * > etaTightTrack
std::vector< MonitorElement * > pHighPtTrack
std::vector< MonitorElement * > pTightTrack
std::vector< MonitorElement * > ptStaTrack
std::vector< MonitorElement * > phiTightTrack
math::XYZPoint Point
point in the space
double BeamWidthX() const
beam width X
std::vector< MonitorElement * > etaGlbTrack
std::vector< MonitorElement * > ptLooseTrack
bool isSoftMuon(const reco::Muon &, const reco::Vertex &, bool run2016_hip_mitigation=false)
std::vector< MonitorElement * > etaStaTrack
std::vector< MonitorElement * > chi2SoftTrack
std::vector< MonitorElement * > chi2probHighPtTrack
std::vector< MonitorElement * > pMediumTrack
std::vector< MonitorElement * > chi2MediumTrack
bool isHighPtMuon(const reco::Muon &, const reco::Vertex &)
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotLabel_
std::vector< MonitorElement * > chi2probSoftTrack
double sigmaZ() const
sigma z
double BeamWidthY() const
beam width Y
std::vector< MonitorElement * > phiTrack
std::vector< MonitorElement * > phiStaTrack
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
std::vector< MonitorElement * > ptMediumTrack
std::vector< MonitorElement * > pTrack
std::vector< MonitorElement * > chi2LooseTrack
std::vector< MonitorElement * > phiGlbTrack
static int position[264][3]
const Point & position() const
position
std::vector< MonitorElement * > chi2probMediumTrack
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
std::vector< MonitorElement * > chi2Track
std::vector< MonitorElement * > chi2StaTrack
std::vector< MonitorElement * > pStaTrack
std::vector< MonitorElement * > etaSoftTrack