CMS 3D CMS Logo

egammaisolation::EgammaTrackSelector Class Reference

#include <RecoEgamma/EgammaIsolationAlgos/plugins/EgammaTrackSelector.h>

List of all members.

Public Types

typedef reco::TrackBase::Point BeamPoint
typedef edm::View< reco::Trackinput_type
typedef
egammaisolation::EgammaRange
< float > 
Range
typedef std::list< const
reco::Track * > 
result_type

Public Member Functions

 EgammaTrackSelector (const Parameters &pars)
result_type operator() (const input_type &tracks) const

Private Attributes

Parameters thePars

Classes

struct  Parameters
 config parameters More...


Detailed Description

Definition at line 13 of file EgammaTrackSelector.h.


Member Typedef Documentation

typedef reco::TrackBase::Point egammaisolation::EgammaTrackSelector::BeamPoint

Definition at line 19 of file EgammaTrackSelector.h.

typedef edm::View<reco::Track> egammaisolation::EgammaTrackSelector::input_type

Definition at line 18 of file EgammaTrackSelector.h.

typedef egammaisolation::EgammaRange<float> egammaisolation::EgammaTrackSelector::Range

Definition at line 16 of file EgammaTrackSelector.h.

typedef std::list<const reco::Track*> egammaisolation::EgammaTrackSelector::result_type

Definition at line 17 of file EgammaTrackSelector.h.


Constructor & Destructor Documentation

egammaisolation::EgammaTrackSelector::EgammaTrackSelector ( const Parameters pars  )  [inline]

Definition at line 42 of file EgammaTrackSelector.h.

00042 : thePars(pars) { } 


Member Function Documentation

EgammaTrackSelector::result_type EgammaTrackSelector::operator() ( const input_type tracks  )  const

pick/read variables in order to cut down on unnecessary calls someone will have some fun reading the log if Debug is on the biggest reason is the numberOfValidHits call (the rest are not as costly)

access to the remaining vars is slow

skip if min Hits == 0; assumes any track has at least one valid hit

similarly here

Definition at line 8 of file EgammaTrackSelector.cc.

References egammaisolation::EgammaTrackSelector::Parameters::beamPoint, edm::View< T >::begin(), egammaisolation::EgammaTrackSelector::Parameters::chi2NdofMax, egammaisolation::EgammaTrackSelector::Parameters::chi2ProbMin, ChiSquaredProbability(), reco::isodeposit::Direction::deltaR(), egammaisolation::EgammaTrackSelector::Parameters::dir, egammaisolation::EgammaTrackSelector::Parameters::drMax, edm::View< T >::end(), lat::endl(), egammaisolation::EgammaRange< T >::inside(), it, LogTrace, egammaisolation::EgammaTrackSelector::Parameters::nHitsMin, egammaisolation::EgammaTrackSelector::Parameters::ptMin, HLT_VtxMuL3::result, egammaisolation::EgammaTrackSelector::Parameters::rRange, thePars, and egammaisolation::EgammaTrackSelector::Parameters::zRange.

00009 {
00010   static std::string metname = "EgammaIsolationAlgos|EgammaTrackSelector";
00011   result_type result;
00012   for (input_type::const_iterator it = tracks.begin(); it != tracks.end(); it++) {
00013 
00014 //     float tZ = it->vz();
00015 //     float tD0 = fabs(it->d0());
00016 //     float tD0Cor = fabs(it->dxy(thePars.beamPoint));
00017 //     float tEta = it->eta();
00018 //     float tPhi = it->phi();
00019 //     uint tHits = it->numberOfValidHits();
00020 //     float tChi2Ndof = it->normalizedChi2();
00021 //     float tChi2Prob = ChiSquaredProbability(it->chi2(), it->ndof());
00022 //     float tPt = it->pt();
00023 
00024 //     LogTrace(metname)<<"Tk vz: "<<tZ
00025 //                   <<",  d0: "<<tD0
00026 //                   <<",  d0wrtBeam: "<<tD0Cor
00027 //                   <<", eta: "<<tEta
00028 //                   <<", phi: "<<tPhi
00029 //                   <<", nHits: "<<tHits
00030 //                   <<", chi2Norm: "<<tChi2Ndof
00031 //                   <<", chi2Prob: "<<tChi2Prob
00032 //                   <<std::endl;
00033 
00037 
00038     float tZ = it->vz(); 
00039     float tPt = it->pt();
00040     float tD0 = fabs(it->d0());  
00041     float tD0Cor = fabs(it->dxy(thePars.beamPoint));
00042     float tEta = it->eta();
00043     float tPhi = it->phi();
00044     float tChi2Ndof = it->normalizedChi2();
00045     LogTrace(metname)<<"Tk vz: "<<tZ
00046                      <<",  pt: "<<tPt
00047                      <<",  d0: "<<tD0
00048                      <<",  d0wrtBeam: "<<tD0Cor
00049                      <<", eta: "<<tEta
00050                      <<", phi: "<<tPhi
00051                      <<", chi2Norm: "<<tChi2Ndof;
00053 
00054     if ( !thePars.zRange.inside( tZ ) ) continue; 
00055     if ( tPt < thePars.ptMin ) continue;
00056     if ( !thePars.rRange.inside( tD0Cor) ) continue;
00057     if ( thePars.dir.deltaR( reco::isodeposit::Direction(tEta, tPhi) ) > thePars.drMax ) continue;
00058     if ( tChi2Ndof > thePars.chi2NdofMax ) continue;
00059 
00061     if (thePars.nHitsMin > 0 ){
00062       uint tHits = it->numberOfValidHits();
00063       LogTrace(metname)<<", nHits: "<<tHits;
00064       if ( tHits < thePars.nHitsMin ) continue;
00065     }
00066 
00068     if(thePars.chi2ProbMin > 0){
00069       float tChi2Prob = ChiSquaredProbability(it->chi2(), it->ndof());
00070       LogTrace(metname)<<", chi2Prob: "<<tChi2Prob<<std::endl;
00071       if ( tChi2Prob < thePars.chi2ProbMin ) continue;
00072     }
00073 
00074     LogTrace(metname)<<" ..... accepted"<<std::endl;
00075     result.push_back(&*it);
00076   } 
00077   return result;
00078 }


Member Data Documentation

Parameters egammaisolation::EgammaTrackSelector::thePars [private]

Definition at line 48 of file EgammaTrackSelector.h.

Referenced by operator()().


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