CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiTrackerMultiRecHitUpdator.h
Go to the documentation of this file.
1 
9 #ifndef SiTrackerMultiRecHitUpdator_h
10 #define SiTrackerMultiRecHitUpdator_h
11 
17 
18 #include <vector>
19 
22 class TrackingRecHit;
24 class LocalError;
26 
28 
29 public:
30 
31  typedef std::pair<LocalPoint,LocalError> LocalParameters;
33  const TrackingRecHitPropagator* hitpropagator,
34  const float Chi2Cut1D,
35  const float Chi2Cut2D,
36  const std::vector<double>& anAnnealingProgram, bool debug);
38 
39  //calls the update method in order to build a SiTrackerMultiRecHit
40  virtual TransientTrackingRecHit::RecHitPointer buildMultiRecHit(const std::vector<const TrackingRecHit*>& rhv,
41  const TrajectoryStateOnSurface& tsos,
42  MeasurementDetWithData& measDet,
43  float annealing=1.) const;
44 
45  //updates an existing SiTrackerMultiRecHit
46  //in case a different kind of rechit is passed it returns clone(tsos)
48  const TrajectoryStateOnSurface& tsos,
49  MeasurementDetWithData& measDet,
50  double annealing=1.) const;
51 
52  //returns a SiTrackerMultiRecHit out of the transient components
54  const TrajectoryStateOnSurface& tsos,
55  MeasurementDetWithData& measDet,
56  double annealing=1. ) const;
57 
58  //computes weights or the cut-off value (depending on CutWeight variable)
59  double ComputeWeight(const TrajectoryStateOnSurface& tsos, const TransientTrackingRecHit& aRecHit,
60  bool CutWeight, double annealing=1.) const;
61  template <unsigned int N> double ComputeWeight(const TrajectoryStateOnSurface& tsos,
62  const TransientTrackingRecHit& aRecHit,
63  bool CutWeight, double annealing=1.) const;
64 
65  const std::vector<double>& annealingProgram() const {return theAnnealingProgram;}
66  const std::vector<double>& getAnnealingProgram() const {return theAnnealingProgram;}
67 
69 
70 private:
71  //computes parameters for 1 dim or 2 dim hits
73  std::vector<std::pair<const TrackingRecHit*, float> >& aHitMap) const;
74  template <unsigned int N> LocalParameters calcParameters(const TrajectoryStateOnSurface& tsos,
75  std::vector<std::pair<const TrackingRecHit*, float> >& aHitMap) const;
76  bool TIDorTEChit(const TrackingRecHit* const& hit) const;
77 
80  double theChi2Cut1D;
81  double theChi2Cut2D;
82  const std::vector<double> theAnnealingProgram;
84  bool debug_;
85 
86 };
87 #endif
virtual TransientTrackingRecHit::RecHitPointer buildMultiRecHit(const std::vector< const TrackingRecHit * > &rhv, const TrajectoryStateOnSurface &tsos, MeasurementDetWithData &measDet, float annealing=1.) const
const std::vector< double > theAnnealingProgram
list original
Definition: definitions.py:57
double ComputeWeight(const TrajectoryStateOnSurface &tsos, const TransientTrackingRecHit &aRecHit, bool CutWeight, double annealing=1.) const
std::pair< LocalPoint, LocalError > LocalParameters
const TrackingRecHitPropagator * theHitPropagator
const std::vector< double > & getAnnealingProgram() const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const TransientTrackingRecHitBuilder * theBuilder
SiTrackerMultiRecHitUpdator(const TransientTrackingRecHitBuilder *builder, const TrackingRecHitPropagator *hitpropagator, const float Chi2Cut1D, const float Chi2Cut2D, const std::vector< double > &anAnnealingProgram, bool debug)
std::shared_ptr< TrackingRecHit const > RecHitPointer
std::vector< ConstRecHitPointer > ConstRecHitContainer
virtual TransientTrackingRecHit::RecHitPointer update(TransientTrackingRecHit::ConstRecHitPointer original, const TrajectoryStateOnSurface &tsos, MeasurementDetWithData &measDet, double annealing=1.) const
#define debug
Definition: HDRShower.cc:19
bool TIDorTEChit(const TrackingRecHit *const &hit) const
const TransientTrackingRecHitBuilder * getBuilder() const
const std::vector< double > & annealingProgram() const
LocalParameters calcParameters(const TrajectoryStateOnSurface &tsos, std::vector< std::pair< const TrackingRecHit *, float > > &aHitMap) const