Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:39

0001 #ifndef TrajectoryCleaning_FastTrajectoryCleaner_h
0002 #define TrajectoryCleaning_FastTrajectoryCleaner_h
0003 
0004 #include "TrackingTools/TrajectoryCleaning/interface/TrajectoryCleaner.h"
0005 
0006 /** A concrete TrajectoryCleaner that assumes all trajectories
0007  * coming from the same seed and therefore incompatible
0008  *  The "best" trajectory of is kept, the others are invalidated.
0009  *  The goodness of a track is defined in terms of Chi^2, number of
0010  *  reconstructed hits, and number of lost hits.
0011  *  As it can be used during PatternReco there is the option to not consider hits from the common seed
0012  */
0013 
0014 class FastTrajectoryCleaner final : public TrajectoryCleaner {
0015 public:
0016   using TrajectoryPointerContainer = TrajectoryCleaner::TrajectoryPointerContainer;
0017   using TempTrajectoryContainer = TrajectoryCleaner::TempTrajectoryContainer;
0018 
0019   FastTrajectoryCleaner() : validHitBonus_(0.5f * 5.0f), missingHitPenalty_(20.0f), dismissSeed_(true) {}
0020 
0021   FastTrajectoryCleaner(float bonus, float penalty, bool noSeed = true)
0022       : validHitBonus_(0.5f * bonus), missingHitPenalty_(penalty), dismissSeed_(noSeed) {}
0023 
0024   FastTrajectoryCleaner(const edm::ParameterSet& iConfig)
0025       : validHitBonus_(0.5 * iConfig.getParameter<double>("ValidHitBonus")),
0026         missingHitPenalty_(iConfig.getParameter<double>("MissingHitPenalty")),
0027         dismissSeed_(iConfig.getParameter<bool>("dismissSeed")) {}
0028 
0029   ~FastTrajectoryCleaner() override {}
0030 
0031   void clean(TempTrajectoryContainer&) const override;
0032   void clean(TrajectoryPointerContainer&) const override;
0033 
0034 private:
0035   float validHitBonus_;  // here per dof
0036   float missingHitPenalty_;
0037   bool dismissSeed_;
0038 };
0039 
0040 #endif