00001 #ifndef TrajectoryCleaning_TrajectoryCleanerBySharedHits_h 00002 #define TrajectoryCleaning_TrajectoryCleanerBySharedHits_h 00003 00004 #include "TrackingTools/TrajectoryCleaning/interface/TrajectoryCleaner.h" 00005 00016 class TrajectoryCleanerBySharedHits : public TrajectoryCleaner { 00017 00018 public: 00019 00020 typedef std::vector<Trajectory*> TrajectoryPointerContainer; 00021 00022 TrajectoryCleanerBySharedHits() : 00023 theFraction(0.19), 00024 validHitBonus_(5.0), 00025 missingHitPenalty_(20.0), 00026 allowSharedFirstHit(true){} 00027 TrajectoryCleanerBySharedHits(const edm::ParameterSet & iConfig) : 00028 theFraction(iConfig.getParameter<double>("fractionShared")), 00029 validHitBonus_(iConfig.getParameter<double>("ValidHitBonus")), 00030 missingHitPenalty_(iConfig.getParameter<double>("MissingHitPenalty")), 00031 allowSharedFirstHit(iConfig.getParameter<bool>("allowSharedFirstHit")){} 00032 00033 virtual ~TrajectoryCleanerBySharedHits(){}; 00034 00035 using TrajectoryCleaner::clean; 00036 virtual void clean( TrajectoryPointerContainer&) const; 00037 00038 private: 00039 double theFraction; 00040 double validHitBonus_; 00041 double missingHitPenalty_; 00042 bool allowSharedFirstHit; 00043 00044 }; 00045 00046 #endif