CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_4/src/TrackingTools/GsfTools/interface/BasicMultiTrajectoryState.h

Go to the documentation of this file.
00001 #ifndef BasicMultiTrajectoryState_H
00002 #define BasicMultiTrajectoryState_H
00003 
00004 #include "TrackingTools/TrajectoryState/interface/BasicTrajectoryState.h"
00005 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
00006 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00007 #include "FWCore/Utilities/interface/Exception.h"
00008 
00017 class BasicMultiTrajectoryState : public BasicTrajectoryState {
00018 
00019   typedef TrajectoryStateOnSurface        TSOS;  
00020   
00021 public:
00022 
00023   BasicMultiTrajectoryState( const std::vector<TSOS>& tsvec); 
00024 
00025   BasicMultiTrajectoryState() {}
00026 
00027 
00034   void rescaleError(double factor);
00035 
00036   virtual BasicMultiTrajectoryState* clone() const {
00037     return new BasicMultiTrajectoryState(*this);
00038   }
00039 
00040   virtual std::vector<TrajectoryStateOnSurface> components() const {
00041     return theStates;
00042   }
00043 
00044 
00045   virtual bool canUpdateLocalParameters() const { return false; }
00046   virtual void update( const LocalTrajectoryParameters& p,
00047                        const Surface& aSurface,
00048                        const MagneticField* field,
00049                        const SurfaceSide side ) ;
00050   virtual void update( const LocalTrajectoryParameters& p,
00051                        const LocalTrajectoryError& err,
00052                        const Surface& aSurface,
00053                        const MagneticField* field,
00054                        const SurfaceSide side,
00055                        double weight ) ;
00056 private:
00057 
00058   std::vector<TSOS> theStates;
00059 
00060   void combine();
00061 
00062 };
00063 
00064 #endif