![]() |
![]() |
#include <RecoMuon/MuonIsolation/plugins/TrackExtractor.h>
Public Member Functions | |
virtual reco::IsoDeposit | deposit (const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &muon) const |
make single IsoDeposit based on track as input purely virtual: have to implement in concrete implementations | |
virtual void | fillVetos (const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackCollection &track) |
fill vetoes: to exclude deposits at IsoDeposit creation stage check concrete extractors if it's no-op ! | |
TrackExtractor (const edm::ParameterSet &par) | |
TrackExtractor () | |
virtual reco::IsoDeposit::Vetos | vetos (const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const |
virtual | ~TrackExtractor () |
Private Member Functions | |
reco::IsoDeposit::Veto | veto (const reco::IsoDeposit::Direction &dir) const |
Private Attributes | |
std::string | theBeamlineOption |
Veto cone angle. | |
edm::InputTag | theBeamSpotLabel |
"NONE", "BeamSpotFromEvent" | |
double | theChi2Ndof_Max |
trk.numberOfValidHits >= theNHits_Min | |
double | theChi2Prob_Min |
trk.normalizedChi2 < theChi2Ndof_Max | |
std::string | theDepositLabel |
Track Collection Label. | |
double | theDiff_r |
name for deposit | |
double | theDiff_z |
transverse distance to vertex | |
double | theDR_Max |
z distance to vertex | |
double | theDR_Veto |
Maximum cone angle for deposits. | |
uint | theNHits_Min |
BeamSpot name. | |
double | thePt_Min |
ChiSquaredProbability(trk.chi2,trk.ndof) > theChi2Prob_Min. | |
edm::InputTag | theTrackCollectionTag |
Definition at line 15 of file TrackExtractor.h.
muonisolation::TrackExtractor::TrackExtractor | ( | ) | [inline] |
TrackExtractor::TrackExtractor | ( | const edm::ParameterSet & | par | ) |
Definition at line 19 of file TrackExtractor.cc.
00019 : 00020 theTrackCollectionTag(par.getParameter<edm::InputTag>("inputTrackCollection")), 00021 theDepositLabel(par.getUntrackedParameter<string>("DepositLabel")), 00022 theDiff_r(par.getParameter<double>("Diff_r")), 00023 theDiff_z(par.getParameter<double>("Diff_z")), 00024 theDR_Max(par.getParameter<double>("DR_Max")), 00025 theDR_Veto(par.getParameter<double>("DR_Veto")), 00026 theBeamlineOption(par.getParameter<string>("BeamlineOption")), 00027 theBeamSpotLabel(par.getParameter<edm::InputTag>("BeamSpotLabel")), 00028 theNHits_Min(par.getParameter<uint>("NHits_Min")), 00029 theChi2Ndof_Max(par.getParameter<double>("Chi2Ndof_Max")), 00030 theChi2Prob_Min(par.getParameter<double>("Chi2Prob_Min")), 00031 thePt_Min(par.getParameter<double>("Pt_Min")) 00032 { 00033 }
virtual muonisolation::TrackExtractor::~TrackExtractor | ( | ) | [inline, virtual] |
IsoDeposit TrackExtractor::deposit | ( | const edm::Event & | ev, | |
const edm::EventSetup & | evSetup, | |||
const reco::Track & | track | |||
) | const [virtual] |
make single IsoDeposit based on track as input purely virtual: have to implement in concrete implementations
Implements reco::isodeposit::IsoDepositExtractor.
Definition at line 50 of file TrackExtractor.cc.
References lat::endl(), reco::TrackBase::eta(), edm::Handle< T >::isValid(), LogTrace, pars, reco::TrackBase::phi(), reco::TrackBase::pt(), theBeamlineOption, theBeamSpotLabel, theChi2Ndof_Max, theChi2Prob_Min, theDiff_r, theDiff_z, theDR_Max, theNHits_Min, thePt_Min, theTrackCollectionTag, veto(), and reco::TrackBase::vz().
00051 { 00052 static std::string metname = "MuonIsolation|TrackExtractor"; 00053 00054 reco::isodeposit::Direction muonDir(muon.eta(), muon.phi()); 00055 IsoDeposit deposit(muonDir ); 00056 deposit.setVeto( veto(muonDir) ); 00057 deposit.addCandEnergy(muon.pt()); 00058 00059 Handle<View<Track> > tracksH; 00060 event.getByLabel(theTrackCollectionTag, tracksH); 00061 // const TrackCollection tracks = *(tracksH.product()); 00062 LogTrace(metname)<<"***** TRACK COLLECTION SIZE: "<<tracksH->size(); 00063 00064 double vtx_z = muon.vz(); 00065 LogTrace(metname)<<"***** Muon vz: "<<vtx_z; 00066 reco::TrackBase::Point beamPoint(0,0, 0); 00067 00068 if (theBeamlineOption.compare("BeamSpotFromEvent") == 0){ 00069 //pick beamSpot 00070 reco::BeamSpot beamSpot; 00071 edm::Handle<reco::BeamSpot> beamSpotH; 00072 00073 event.getByLabel(theBeamSpotLabel,beamSpotH); 00074 00075 if (beamSpotH.isValid()){ 00076 beamPoint = beamSpotH->position(); 00077 LogTrace(metname)<<"Extracted beam point at "<<beamPoint<<std::endl; 00078 } 00079 } 00080 00081 LogTrace(metname)<<"Using beam point at "<<beamPoint<<std::endl; 00082 00083 TrackSelector::Parameters pars(TrackSelector::Range(vtx_z-theDiff_z, vtx_z+theDiff_z), 00084 theDiff_r, muonDir, theDR_Max, beamPoint); 00085 00086 pars.nHitsMin = theNHits_Min; 00087 pars.chi2NdofMax = theChi2Ndof_Max; 00088 pars.chi2ProbMin = theChi2Prob_Min; 00089 pars.ptMin = thePt_Min; 00090 00091 TrackSelector selection(pars); 00092 TrackSelector::result_type sel_tracks = selection(*tracksH); 00093 LogTrace(metname)<<"all tracks: "<<tracksH->size()<<" selected: "<<sel_tracks.size(); 00094 00095 00096 TrackSelector::result_type::const_iterator tkI = sel_tracks.begin(); 00097 for (; tkI != sel_tracks.end(); ++tkI) { 00098 const reco::Track* tk = *tkI; 00099 LogTrace(metname) << "This track has: pt= " << tk->pt() << ", eta= " 00100 << tk->eta() <<", phi= "<<tk->phi(); 00101 reco::isodeposit::Direction dirTrk(tk->eta(), tk->phi()); 00102 deposit.addDeposit(dirTrk, tk->pt()); 00103 } 00104 00105 return deposit; 00106 }
virtual void muonisolation::TrackExtractor::fillVetos | ( | const edm::Event & | ev, | |
const edm::EventSetup & | evSetup, | |||
const reco::TrackCollection & | tracks | |||
) | [inline, virtual] |
fill vetoes: to exclude deposits at IsoDeposit creation stage check concrete extractors if it's no-op !
Implements reco::isodeposit::IsoDepositExtractor.
Definition at line 24 of file TrackExtractor.h.
reco::IsoDeposit::Veto TrackExtractor::veto | ( | const reco::IsoDeposit::Direction & | dir | ) | const [private] |
Definition at line 42 of file TrackExtractor.cc.
References reco::IsoDeposit::Veto::dR, HLT_VtxMuL3::result, theDR_Veto, and reco::IsoDeposit::Veto::vetoDir.
Referenced by deposit(), and vetos().
00043 { 00044 reco::IsoDeposit::Veto result; 00045 result.vetoDir = dir; 00046 result.dR = theDR_Veto; 00047 return result; 00048 }
reco::IsoDeposit::Vetos TrackExtractor::vetos | ( | const edm::Event & | ev, | |
const edm::EventSetup & | evSetup, | |||
const reco::Track & | track | |||
) | const [virtual] |
Definition at line 35 of file TrackExtractor.cc.
References dir, reco::TrackBase::eta(), reco::TrackBase::phi(), and veto().
00037 { 00038 reco::isodeposit::Direction dir(track.eta(),track.phi()); 00039 return reco::IsoDeposit::Vetos(1,veto(dir)); 00040 }
std::string muonisolation::TrackExtractor::theBeamlineOption [private] |
"NONE", "BeamSpotFromEvent"
Definition at line 44 of file TrackExtractor.h.
Referenced by deposit().
double muonisolation::TrackExtractor::theChi2Ndof_Max [private] |
trk.numberOfValidHits >= theNHits_Min
Definition at line 46 of file TrackExtractor.h.
Referenced by deposit().
double muonisolation::TrackExtractor::theChi2Prob_Min [private] |
trk.normalizedChi2 < theChi2Ndof_Max
Definition at line 47 of file TrackExtractor.h.
Referenced by deposit().
std::string muonisolation::TrackExtractor::theDepositLabel [private] |
double muonisolation::TrackExtractor::theDiff_r [private] |
double muonisolation::TrackExtractor::theDiff_z [private] |
transverse distance to vertex
Definition at line 40 of file TrackExtractor.h.
Referenced by deposit().
double muonisolation::TrackExtractor::theDR_Max [private] |
double muonisolation::TrackExtractor::theDR_Veto [private] |
Maximum cone angle for deposits.
Definition at line 42 of file TrackExtractor.h.
Referenced by veto().
uint muonisolation::TrackExtractor::theNHits_Min [private] |
double muonisolation::TrackExtractor::thePt_Min [private] |
ChiSquaredProbability(trk.chi2,trk.ndof) > theChi2Prob_Min.
Definition at line 48 of file TrackExtractor.h.
Referenced by deposit().