00001 #ifndef Tracker_DiMuonTrajectorySeed_H 00002 #define Tracker_DiMuonTrajectorySeed_H 00003 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" 00004 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" 00005 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" 00006 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h" 00007 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 00010 #include <vector> 00011 namespace cms 00012 { 00013 class DiMuonTrajectorySeed : public TrajectorySeed { 00014 00015 public: 00016 00017 // construct 00018 00019 DiMuonTrajectorySeed( const TrajectoryMeasurement& mtm0, const FreeTrajectoryState& ftsmuon, int aMult=1 ); 00020 00021 // access 00022 00023 std::vector<TrajectoryMeasurement> measurements() const {return theTrajMeasurements;}; 00024 00025 FreeTrajectoryState& getMuon() {return theFtsMuon;} 00026 00027 int getMult(){return theLowMult;}; 00028 00029 range recHits() const{return std::make_pair(theRecHits.begin(), theRecHits.end());}; 00030 00031 PropagationDirection direction() const{return thePropagationDirection;} 00032 00033 private: 00034 std::vector<TrajectoryMeasurement> theTrajMeasurements; 00035 edm::OwnVector<TrackingRecHit> theRecHits; 00036 FreeTrajectoryState theFtsMuon; 00037 PropagationDirection thePropagationDirection; 00038 int theLowMult; 00039 }; 00040 } 00041 #endif // Tracker_TrajectorySeed_H 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052