Go to the documentation of this file.00001 #ifndef _TRACKER_MU_HIC_PROPAGATOR_H_
00002 #define _TRACKER_MU_HIC_PROPAGATOR_H_
00003 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
00004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00005 #include "RecoHI/HiMuonAlgos/interface/HICConst.h"
00006 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
00007 #include "MagneticField/Engine/interface/MagneticField.h"
00008
00009 #include <string>
00010 #include <iostream>
00011 namespace cms {
00012 class HICMuonPropagator:public Propagator{
00013 public:
00014 HICMuonPropagator(const MagneticField * mf){field = mf;}
00015 virtual ~HICMuonPropagator(){}
00016 TrajectoryStateOnSurface propagate(const FreeTrajectoryState& fts,
00017 const Cylinder& cylin) const;
00018
00019 TrajectoryStateOnSurface propagate(const FreeTrajectoryState& fts,
00020 const Plane& plane) const;
00021
00022 void setHICConst(HICConst* hh) {theHICConst = hh;}
00023
00024 virtual HICMuonPropagator * clone() const
00025 {
00026 return new HICMuonPropagator(field);
00027 }
00028
00029 TrajectoryStateOnSurface propagate (const FreeTrajectoryState& fts,
00030 const Surface& surface) const{
00031 return Propagator::propagate( fts, surface);
00032 }
00033
00034 virtual std::pair< TrajectoryStateOnSurface, double>
00035 propagateWithPath (const FreeTrajectoryState& state, const Plane& bc) const {
00036 std::pair<TrajectoryStateOnSurface,double> tp;
00037 return tp;
00038 }
00039 virtual std::pair< TrajectoryStateOnSurface, double>
00040 propagateWithPath (const FreeTrajectoryState& state, const Cylinder& bc) const{
00041 std::pair<TrajectoryStateOnSurface,double> tp;
00042 return tp;
00043 }
00044
00045 virtual const MagneticField* magneticField() const {return field;}
00046 private:
00047 HICConst* theHICConst;
00048 const MagneticField * field;
00049 };
00050 }
00051 #endif
00052
00053
00054