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