Go to the documentation of this file.00001 #ifndef SiTrackerMultiRecHitUpdator_h
00002 #define SiTrackerMultiRecHitUpdator_h
00003
00004 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00005 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00006 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
00007
00008
00009 #include <vector>
00010
00011 class SiTrackerMultiRecHit;
00012 class TrajectoryStateOnSurface;
00013 class TrackingRecHit;
00014 class TransientTrackingRecHitBuilder;
00015 class LocalError;
00016 class TrackingRecHitPropagator;
00017
00018
00019
00020
00021
00022 class SiTrackerMultiRecHitUpdator{
00023 public:
00024 typedef std::pair<LocalPoint,LocalError> LocalParameters;
00025
00026 SiTrackerMultiRecHitUpdator(const TransientTrackingRecHitBuilder* builder,
00027 const TrackingRecHitPropagator* hitpropagator,
00028 const float Chi2Cut,
00029 const std::vector<double>& anAnnealingProgram);
00030 virtual ~SiTrackerMultiRecHitUpdator(){};
00031
00032 const std::vector<double>& annealingProgram() const {return theAnnealingProgram;}
00033
00034
00035 virtual TransientTrackingRecHit::RecHitPointer buildMultiRecHit(const std::vector<const TrackingRecHit*>& rhv,
00036 TrajectoryStateOnSurface tsos,
00037 float annealing=1.) const;
00038
00039
00040
00041 virtual TransientTrackingRecHit::RecHitPointer update( TransientTrackingRecHit::ConstRecHitPointer original,
00042 TrajectoryStateOnSurface tsos,
00043 double annealing=1.) const;
00044
00045
00046 virtual TransientTrackingRecHit::RecHitPointer update( TransientTrackingRecHit::ConstRecHitContainer& tcomponents,
00047 TrajectoryStateOnSurface tsos,
00048 double annealing=1.) const;
00049
00050 const std::vector<double>& getAnnealingProgram() const {return theAnnealingProgram;}
00051
00052 private:
00053 LocalError calcParametersError(TransientTrackingRecHit::ConstRecHitContainer& map) const;
00054 LocalPoint calcParameters(TransientTrackingRecHit::ConstRecHitContainer& map, const LocalError& er) const;
00055 LocalParameters calcParameters(TransientTrackingRecHit::ConstRecHitContainer& map) const;
00056
00057 const TransientTrackingRecHitBuilder* theBuilder;
00058 const TrackingRecHitPropagator* theHitPropagator;
00059 double theChi2Cut;
00060 const std::vector<double> theAnnealingProgram;
00061
00062 };
00063 #endif