00001 #ifndef RecoMuon_TrackFinder_StandAloneTrajectoryBuilder_H 00002 #define RecoMuon_TrackFinder_StandAloneTrajectoryBuilder_H 00003 00012 #include "RecoMuon/TrackingTools/interface/MuonTrajectoryBuilder.h" 00013 00014 #include "RecoMuon/TrackingTools/interface/RecoMuonEnumerators.h" 00015 00016 00017 class TrajectorySeed; 00018 class StandAloneMuonFilter; 00019 class StandAloneMuonBackwardFilter; 00020 class StandAloneMuonRefitter; 00021 class MuonServiceProxy; 00022 class SeedTransformer; 00023 00024 namespace edm {class ParameterSet;} 00025 00026 class StandAloneMuonTrajectoryBuilder : public MuonTrajectoryBuilder{ 00027 00028 public: 00029 typedef std::pair<const DetLayer*,TrajectoryStateOnSurface> DetLayerWithState; 00030 00031 public: 00033 StandAloneMuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*); 00034 00036 virtual ~StandAloneMuonTrajectoryBuilder(); 00037 00038 // Returns a vector of the reconstructed trajectories compatible with 00039 // the given seed. 00040 TrajectoryContainer trajectories(const TrajectorySeed&); 00041 00043 virtual CandidateContainer trajectories(const TrackCand&) {return CandidateContainer();} 00044 00046 StandAloneMuonFilter* filter() const {return theFilter;} 00047 00049 StandAloneMuonFilter* bwfilter() const {return theBWFilter;} 00050 00052 StandAloneMuonRefitter* refitter() const {return theRefitter;} 00053 00055 virtual void setEvent(const edm::Event& event); 00056 00057 protected: 00058 00059 private: 00060 00061 DetLayerWithState propagateTheSeedTSOS(TrajectoryStateOnSurface& aTSOS, DetId& aDetId); 00062 00063 private: 00064 00067 std::string theNavigationType; 00068 00069 recoMuon::SeedPosition theSeedPosition; 00070 00072 std::string theSeedPropagatorName; 00073 00074 StandAloneMuonFilter* theFilter; 00075 StandAloneMuonFilter* theBWFilter; 00076 // FIXME 00077 // StandAloneMuonBackwardFilter* theBWFilter; 00078 StandAloneMuonRefitter* theRefitter; 00079 SeedTransformer* theSeedTransformer; 00080 00081 bool doBackwardFilter; 00082 bool doRefit; 00083 bool doSeedRefit; 00084 std::string theBWSeedType; 00085 00086 const MuonServiceProxy *theService; 00087 }; 00088 #endif