253 bool isGL = muonRef->isGlobalMuon();
254 bool isTR = muonRef->isTrackerMuon();
255 bool isST = muonRef->isStandAloneMuon();
256 bool isTPFMS = muonRef->tpfmsTrack().
isNonnull() && muonRef->tpfmsTrack()->pt()>0;
257 bool isPicky = muonRef->pickyTrack().
isNonnull() && muonRef->pickyTrack()->pt()>0;
258 bool isDyt = muonRef->dytTrack().
isNonnull() && muonRef->dytTrack()->pt()>0;
269 default:tunePTypeStr =
"unknow";
break;
273 <<
" eta " << muonRef->eta()
277 <<
" TPFMS: "<<isTPFMS
278 <<
" Picky: "<<isPicky
280 <<
" TuneP: "<<tunePTypeStr
281 <<
" nMatches "<<muonRef->numberOfMatches()<<std::endl;
298 <<
"\t\tTMLastStationAngTight " 300 <<
"\t\tTMLastStationLoose " 302 <<
"\t\tTMLastStationTight " 304 <<
"\t\tTMOneStationLoose " 306 <<
"\t\tTMOneStationTight " 308 <<
"\t\tTMLastStationOptimizedLowPtLoose " 310 <<
"\t\tTMLastStationOptimizedLowPtTight " 312 <<
"\t\tTMLastStationOptimizedBarrelLowPtLoose " 314 <<
"\t\tTMLastStationOptimizedBarrelLowPtTight " 333 <<
"TM2DCompatibilityTight " 336 if ( muonRef->isGlobalMuon()
337 && muonRef->isTrackerMuon()
338 && muonRef->isStandAloneMuon() ) {
343 double sigmaCombined = combinedMu->ptError()/(combinedMu->pt()*combinedMu->pt());
344 double sigmaTracker = trackerMu->ptError()/(trackerMu->pt()*trackerMu->pt());
345 double sigmaStandAlone = standAloneMu->ptError()/(standAloneMu->pt()*standAloneMu->pt());
347 bool combined = combinedMu->ptError()/combinedMu->pt() < 0.20;
348 bool tracker = trackerMu->ptError()/trackerMu->pt() < 0.20;
349 bool standAlone = standAloneMu->ptError()/standAloneMu->pt() < 0.20;
351 double delta1 = combined && tracker ?
352 fabs(1./combinedMu->pt() -1./trackerMu->pt())
353 /
sqrt(sigmaCombined*sigmaCombined + sigmaTracker*sigmaTracker) : 100.;
354 double delta2 = combined && standAlone ?
355 fabs(1./combinedMu->pt() -1./standAloneMu->pt())
356 /
sqrt(sigmaCombined*sigmaCombined + sigmaStandAlone*sigmaStandAlone) : 100.;
358 double delta3 = standAlone && tracker ?
359 fabs(1./standAloneMu->pt() -1./trackerMu->pt())
360 /
sqrt(sigmaStandAlone*sigmaStandAlone + sigmaTracker*sigmaTracker) : 100.;
363 standAloneMu->hitPattern().numberOfValidMuonDTHits()+
364 standAloneMu->hitPattern().numberOfValidMuonCSCHits() > 0 ?
367 std::cout <<
"delta = " << delta <<
" delta1 "<<delta1<<
" delta2 "<<delta2<<
" delta3 "<<delta3<<std::endl;
370 combinedMu->ptError()/combinedMu->pt()
371 / (trackerMu->ptError()/trackerMu->pt());
373 std::cout<<
" ratio "<<ratio<<
" combined mu pt "<<combinedMu->pt()<<std::endl;
377 double sumPtR03 = muonRef->isolationR03().sumPt;
378 double emEtR03 = muonRef->isolationR03().emEt;
379 double hadEtR03 = muonRef->isolationR03().hadEt;
380 double relIsoR03 = (sumPtR03 + emEtR03 + hadEtR03)/muonRef->pt();
381 double sumPtR05 = muonRef->isolationR05().sumPt;
382 double emEtR05 = muonRef->isolationR05().emEt;
383 double hadEtR05 = muonRef->isolationR05().hadEt;
384 double relIsoR05 = (sumPtR05 + emEtR05 + hadEtR05)/muonRef->pt();
385 std::cout<<
" 0.3 Rel Iso: "<<relIsoR03<<
" sumPt "<<sumPtR03<<
" emEt "<<emEtR03<<
" hadEt "<<hadEtR03<<std::endl;
386 std::cout<<
" 0.5 Rel Iso: "<<relIsoR05<<
" sumPt "<<sumPtR05<<
" emEt "<<emEtR05<<
" hadEt "<<hadEtR05<<std::endl;
bool isNonnull() const
Checks for non-null.
virtual std::string trackInfo(const reco::TrackRef &trackRef) const
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
MuonTrackType
map for Global Muon refitters