CMS 3D CMS Logo

muonisolation::TrackExtractor Class Reference

#include <RecoMuon/MuonIsolation/plugins/TrackExtractor.h>

Inheritance diagram for muonisolation::TrackExtractor:

reco::isodeposit::IsoDepositExtractor

List of all members.

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


Detailed Description

Definition at line 15 of file TrackExtractor.h.


Constructor & Destructor Documentation

muonisolation::TrackExtractor::TrackExtractor (  )  [inline]

Definition at line 19 of file TrackExtractor.h.

00019 {};

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]

Definition at line 22 of file TrackExtractor.h.

00022 {}


Member Function Documentation

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.

00025                                                                         {}

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 }


Member Data Documentation

std::string muonisolation::TrackExtractor::theBeamlineOption [private]

Veto cone angle.

Definition at line 43 of file TrackExtractor.h.

Referenced by deposit().

edm::InputTag muonisolation::TrackExtractor::theBeamSpotLabel [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]

Track Collection Label.

Definition at line 38 of file TrackExtractor.h.

double muonisolation::TrackExtractor::theDiff_r [private]

name for deposit

Definition at line 39 of file TrackExtractor.h.

Referenced by deposit().

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]

z distance to vertex

Definition at line 41 of file TrackExtractor.h.

Referenced by deposit().

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]

BeamSpot name.

Definition at line 45 of file TrackExtractor.h.

Referenced by deposit().

double muonisolation::TrackExtractor::thePt_Min [private]

ChiSquaredProbability(trk.chi2,trk.ndof) > theChi2Prob_Min.

Definition at line 48 of file TrackExtractor.h.

Referenced by deposit().

edm::InputTag muonisolation::TrackExtractor::theTrackCollectionTag [private]

Definition at line 37 of file TrackExtractor.h.

Referenced by deposit().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:49:14 2009 for CMSSW by  doxygen 1.5.4