CMS 3D CMS Logo

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 public:
29  typedef std::pair<LocalPoint, LocalError> LocalParameters;
31  const TrackingRecHitPropagator* hitpropagator,
32  const float Chi2Cut1D,
33  const float Chi2Cut2D,
34  const std::vector<double>& anAnnealingProgram,
35  bool debug);
37 
38  //calls the update method in order to build a SiTrackerMultiRecHit
39  virtual TransientTrackingRecHit::RecHitPointer buildMultiRecHit(const std::vector<const TrackingRecHit*>& rhv,
40  const TrajectoryStateOnSurface& tsos,
41  MeasurementDetWithData& measDet,
42  float annealing = 1.) const;
43 
44  //updates an existing SiTrackerMultiRecHit
45  //in case a different kind of rechit is passed it returns clone(tsos)
47  const TrajectoryStateOnSurface& tsos,
48  MeasurementDetWithData& measDet,
49  double annealing = 1.) const;
50 
51  //returns a SiTrackerMultiRecHit out of the transient components
53  const TrajectoryStateOnSurface& tsos,
54  MeasurementDetWithData& measDet,
55  double annealing = 1.) const;
56 
57  //computes weights or the cut-off value (depending on CutWeight variable)
58  double ComputeWeight(const TrajectoryStateOnSurface& tsos,
59  const TransientTrackingRecHit& aRecHit,
60  bool CutWeight,
61  double annealing = 1.) const;
62  template <unsigned int N>
63  double ComputeWeight(const TrajectoryStateOnSurface& tsos,
64  const TransientTrackingRecHit& aRecHit,
65  bool CutWeight,
66  double annealing = 1.) const;
67 
68  const std::vector<double>& annealingProgram() const { return theAnnealingProgram; }
69  const std::vector<double>& getAnnealingProgram() const { return theAnnealingProgram; }
70 
72 
73 private:
74  //computes parameters for 1 dim or 2 dim hits
76  std::vector<std::pair<const TrackingRecHit*, float> >& aHitMap) const;
77  template <unsigned int N>
79  std::vector<std::pair<const TrackingRecHit*, float> >& aHitMap) const;
80  bool TIDorTEChit(const TrackingRecHit* const& hit) const;
81 
84  double theChi2Cut1D;
85  double theChi2Cut2D;
86  const std::vector<double> theAnnealingProgram;
88  bool debug_;
89 };
90 #endif
const std::vector< double > theAnnealingProgram
virtual TransientTrackingRecHit::RecHitPointer update(TransientTrackingRecHit::ConstRecHitPointer original, const TrajectoryStateOnSurface &tsos, MeasurementDetWithData &measDet, double annealing=1.) const
const TrackingRecHitPropagator * theHitPropagator
virtual TransientTrackingRecHit::RecHitPointer buildMultiRecHit(const std::vector< const TrackingRecHit *> &rhv, const TrajectoryStateOnSurface &tsos, MeasurementDetWithData &measDet, float annealing=1.) const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const TransientTrackingRecHitBuilder * theBuilder
const std::vector< double > & getAnnealingProgram() const
bool TIDorTEChit(const TrackingRecHit *const &hit) const
const TransientTrackingRecHitBuilder * getBuilder() const
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
const std::vector< double > & annealingProgram() const
std::pair< LocalPoint, LocalError > LocalParameters
#define debug
Definition: HDRShower.cc:19
double ComputeWeight(const TrajectoryStateOnSurface &tsos, const TransientTrackingRecHit &aRecHit, bool CutWeight, double annealing=1.) const
LocalParameters calcParameters(const TrajectoryStateOnSurface &tsos, std::vector< std::pair< const TrackingRecHit *, float > > &aHitMap) const