CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoEgamma/EgammaIsolationAlgos/interface/EgammaTrackSelector.h

Go to the documentation of this file.
00001 #ifndef EgammaIsolationAlgos_EgammaTrackSelector_H
00002 #define EgammaIsolationAlgos_EgammaTrackSelector_H
00003 
00004 #include "RecoEgamma/EgammaIsolationAlgos/interface/EgammaRange.h"
00005 #include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
00006 #include "DataFormats/TrackReco/interface/Track.h"
00007 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00008 #include "DataFormats/Common/interface/View.h"
00009 #include <list>
00010 
00011 namespace egammaisolation {
00012 
00013 
00014   class EgammaTrackSelector {
00015   public:
00016 
00017     typedef egammaisolation::EgammaRange<float> Range;
00018     typedef std::list<const reco::Track*> result_type;
00019     typedef edm::View<reco::Track> input_type;
00020     typedef reco::TrackBase::Point BeamPoint;
00021 
00022     enum { dz = 0, vz, bs, vtx };
00023   
00025     struct Parameters {
00026       Parameters()
00027         :  zRange(-1e6,1e6), rRange(-1e6,1e6), dir(0,0), drMax(1e3), beamPoint(0,0,0),
00028            nHitsMin(0), chi2NdofMax(1e64), chi2ProbMin(-1.), ptMin(-1) {}
00029       Parameters(const Range& dz, const double d0Max, const reco::isodeposit::Direction& dirC, double rMax, 
00030                  const BeamPoint& point  = BeamPoint(0,0,0))
00031         : zRange(dz), rRange(Range(0,d0Max)), dir(dirC), drMax(rMax), beamPoint(point),
00032           nHitsMin(0), chi2NdofMax(1e64), chi2ProbMin(-1.), ptMin(-1) {}
00033       Range        zRange;  
00034       Range        rRange;  
00035       reco::isodeposit::Direction       dir;  
00036       double        drMax;      
00037       BeamPoint beamPoint;      
00038       unsigned int  nHitsMin;      
00039       double  chi2NdofMax;      
00040       double  chi2ProbMin;      
00041       double        ptMin;      
00042       int           dzOption;  
00043     };
00044 
00045 
00046     EgammaTrackSelector(const Parameters& pars) : thePars(pars) { } 
00047 
00048       result_type operator()(const input_type & tracks) const;
00049 
00050 
00051   private:
00052       Parameters thePars;
00053   }; 
00054 
00055 }
00056 
00057 #endif