Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef TrackingTools_PatternTools_TrajAnnealing_h
0002 #define TrackingTools_PatternTools_TrajAnnealing_h
0003 
0004 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0005 #include <vector>
0006 
0007 /**  This class allow to save all the traj info
0008   *  for each annealing cycle 
0009   *  suitable for algorithm like DAF
0010   *  (not used in default options)
0011  */
0012 
0013 class TrajAnnealing {
0014 public:
0015   TrajAnnealing() {}
0016   TrajAnnealing(const Trajectory&, float);
0017 
0018   float getAnnealing() const { return annealing_; }
0019   Trajectory const& getTraj() const { return traj_; }
0020 
0021   //vector of weights
0022   std::vector<float> const& weights() const { return theWeights; }
0023   std::vector<float>& weights() { return theWeights; }
0024 
0025 private:
0026   Trajectory traj_;
0027   float annealing_ = 0;
0028   std::vector<float> theWeights;
0029   TrackingRecHit::RecHitContainer theHits_;
0030 
0031   std::pair<float, std::vector<float> > getAnnealingWeight(const TrackingRecHit& aRecHit) const;
0032 };
0033 
0034 // this is our new product, it is simply a
0035 // collection of TrajAnnealing held in an std::vector
0036 using TrajAnnealingCollection = std::vector<TrajAnnealing>;
0037 
0038 #endif