00001 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00002 #include "TrackingTools/TrajectoryState/interface/BasicSingleTrajectoryState.h" 00003 00004 typedef BasicSingleTrajectoryState BTSOS; 00005 00006 TrajectoryStateOnSurface:: 00007 TrajectoryStateOnSurface(const Surface& aSurface) : 00008 Base( new BTSOS(aSurface)) {} 00009 00010 TrajectoryStateOnSurface:: 00011 TrajectoryStateOnSurface(const FreeTrajectoryState& fts, 00012 const Surface& aSurface, const SurfaceSide side) : 00013 Base( new BTSOS( fts, aSurface, side)) {} 00014 00015 00016 TrajectoryStateOnSurface:: 00017 TrajectoryStateOnSurface(const GlobalTrajectoryParameters& gp, 00018 const Surface& aSurface, const SurfaceSide side) : 00019 Base( new BTSOS( gp, aSurface, side)) {} 00020 00021 TrajectoryStateOnSurface:: 00022 TrajectoryStateOnSurface( const GlobalTrajectoryParameters& gp, 00023 const CartesianTrajectoryError& err, 00024 const Surface& aSurface, const SurfaceSide side) : 00025 Base( new BTSOS( gp, err, aSurface, side)) {} 00026 00027 TrajectoryStateOnSurface:: 00028 TrajectoryStateOnSurface( const GlobalTrajectoryParameters& gp, 00029 const CurvilinearTrajectoryError& err, 00030 const Surface& aSurface, const SurfaceSide side, double weight) : 00031 Base( new BTSOS( gp, err, aSurface, side, weight)) {} 00032 00033 TrajectoryStateOnSurface:: 00034 TrajectoryStateOnSurface( const GlobalTrajectoryParameters& gp, 00035 const CurvilinearTrajectoryError& err, 00036 const Surface& aSurface, double weight) : 00037 Base( new BTSOS( gp, err, aSurface, SurfaceSideDefinition::atCenterOfSurface, weight)) {} 00038 00039 TrajectoryStateOnSurface:: 00040 TrajectoryStateOnSurface( const LocalTrajectoryParameters& p, 00041 const Surface& aSurface, 00042 const MagneticField* field, 00043 const SurfaceSide side) : 00044 Base( new BTSOS( p, aSurface, field, side)) {} 00045 00046 TrajectoryStateOnSurface:: 00047 TrajectoryStateOnSurface( const LocalTrajectoryParameters& p, 00048 const LocalTrajectoryError& err, 00049 const Surface& aSurface, 00050 const MagneticField* field, 00051 const SurfaceSide side, double weight) : 00052 Base( new BTSOS( p, err, aSurface, field, side, weight)) {} 00053 00054 TrajectoryStateOnSurface:: 00055 TrajectoryStateOnSurface( const LocalTrajectoryParameters& p, 00056 const LocalTrajectoryError& err, 00057 const Surface& aSurface, 00058 const MagneticField* field, 00059 double weight) : 00060 Base( new BTSOS( p, err, aSurface, field, SurfaceSideDefinition::atCenterOfSurface, weight)) {} 00061 00062 00063 void 00064 TrajectoryStateOnSurface:: 00065 update( const LocalTrajectoryParameters& p, 00066 const Surface& aSurface, 00067 const MagneticField* field, 00068 const SurfaceSide side) 00069 { 00070 if (data().canUpdateLocalParameters()) { 00071 unsharedData().update(p, aSurface, field, side); 00072 } else { 00073 *this = TrajectoryStateOnSurface(p, aSurface, field, side); 00074 } 00075 } 00076 00077 void 00078 TrajectoryStateOnSurface:: 00079 update( const LocalTrajectoryParameters& p, 00080 const LocalTrajectoryError& err, 00081 const Surface& aSurface, 00082 const MagneticField* field, 00083 const SurfaceSide side, 00084 double weight) 00085 { 00086 if (data().canUpdateLocalParameters()) { 00087 unsharedData().update(p, err, aSurface, field, side, weight); 00088 } else { 00089 *this = TrajectoryStateOnSurface(p, err, aSurface, field, side, weight); 00090 } 00091 }