44 if((*thePFTauRef).hasMuonReference() ){
46 MuonRef muonref = (*thePFTauRef).leadPFChargedHadrCand()->muonRef();
48 if ( muonref ->numberOfMatches() > 0 ) {
54 double calo= muonref->caloCompatibility();
55 double border = calo *
a + seg *
b +
c;
62 unsigned int muType = 0;
63 if(muonref->isGlobalMuon()) muType = 1;
64 else if(muonref->isCaloMuon()) muType = 2;
65 else if(muonref->isTrackerMuon()) muType = 3;
66 double muonEnergyFraction = (*thePFTauRef).pfTauTagInfoRef()->pfjetRef()->chargedMuEnergyFraction();
67 bool eta_veto =
false;
68 bool phi_veto =
false;
69 if(fabs(muonref->eta()) > 2.3 || (fabs(muonref->eta()) > 1.4 && fabs(muonref->eta()) < 1.6)) eta_veto =
true;
70 if(muonref->phi() < 0.1 && muonref->phi() > -0.1) phi_veto =
true;
71 if( muType != 1 || muonref ->numberOfMatches() > 0 || eta_veto || phi_veto || muonEnergyFraction > 0.9 ) decision =
false;
82 return (decision ? 1. : 0.);
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
std::string discriminatorOption_