CMS 3D CMS Logo

SiTrackerMultiRecHitUpdator.h

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 builds a TSiTrackerMultiRecHitout of a vector of TrackingRecHit ans a tsos
00019 or updates an existing TSiTrackerMultiRecHitout given a tsos.
00020 */
00021 class SiTrackerMultiRecHitUpdator{
00022         public:
00023   SiTrackerMultiRecHitUpdator(const TransientTrackingRecHitBuilder* builder,
00024                                     const TrackingRecHitPropagator* hitpropagator,
00025                                     const std::vector<double>& anAnnealingProgram);
00026         virtual ~SiTrackerMultiRecHitUpdator(){};
00027 
00028         const std::vector<double>&  annealingProgram() const {return theAnnealingProgram;}
00029 
00030         //builds a TSiTrackerMultiRecHit 
00031                 virtual TransientTrackingRecHit::RecHitPointer  buildMultiRecHit(const std::vector<const TrackingRecHit*>& rhv, 
00032                                                                                  TrajectoryStateOnSurface tsos,
00033                                                                                  double annealing=1.) const;
00034         
00035         //updates an existing TSiTrackerMultiRecHit
00036         //in case a diffrenet king of rechit is passed it returns  clone(tsos)
00037         virtual TransientTrackingRecHit::RecHitPointer  update( TransientTrackingRecHit::ConstRecHitPointer original,  
00038                                                                 TrajectoryStateOnSurface tsos,
00039                                                                 double annealing=1.) const;
00040 
00041         //returns a TSiTrackerMultiRecHit out of the transient components       
00042         virtual TransientTrackingRecHit::RecHitPointer  update( TransientTrackingRecHit::ConstRecHitContainer& tcomponents,          
00043                                                                 TrajectoryStateOnSurface tsos,
00044                                                                 double annealing=1.) const;
00045 
00046         const std::vector<double>& getAnnealingProgram() const {return theAnnealingProgram;}
00047         
00048         private:
00049         LocalError calcParametersError(TransientTrackingRecHit::ConstRecHitContainer& map) const;
00050         LocalPoint calcParameters(TransientTrackingRecHit::ConstRecHitContainer& map, const LocalError& er) const;
00051 
00052         const TransientTrackingRecHitBuilder* theBuilder;
00053         const TrackingRecHitPropagator* theHitPropagator;
00054         double theChi2Cut;
00055         const std::vector<double> theAnnealingProgram;
00056 
00057 };
00058 #endif

Generated on Tue Jun 9 17:45:43 2009 for CMSSW by  doxygen 1.5.4