00001 #ifndef MuonSeedGenerator_MuonCSCSeedFromRecHits_h 00002 #define MuonSeedGenerator_MuonCSCSeedFromRecHits_h 00003 00004 #include "RecoMuon/TrackingTools/interface/MuonSeedFromRecHits.h" 00005 00006 class MuonCSCSeedFromRecHits : public MuonSeedFromRecHits 00007 { 00008 public: 00009 00010 MuonCSCSeedFromRecHits(); 00011 virtual ~MuonCSCSeedFromRecHits() {} 00012 00013 virtual TrajectorySeed seed() const; 00014 00015 ConstMuonRecHitPointer bestEndcapHit(const MuonRecHitContainer & endcapHits) const; 00016 00017 private: 00018 00019 // try to make something from a pair of layers with hits. 00020 bool makeSeed(const MuonRecHitContainer & hits1, const MuonRecHitContainer & hits2, 00021 TrajectorySeed & seed) const; 00022 bool makeSeed2(const MuonRecHitContainer & hits1, const MuonRecHitContainer & hits2, 00023 TrajectorySeed & seed) const; 00024 00025 // when all else fails 00026 void makeDefaultSeed(TrajectorySeed & seed) const; 00027 00028 bool createDefaultEndcapSeed(ConstMuonRecHitPointer last,TrajectorySeed & seed) const; 00029 float computeDefaultPt(ConstMuonRecHitPointer muon) const; 00030 int segmentQuality(ConstMuonRecHitPointer muon) const; 00031 00032 void analyze() const; 00033 }; 00034 00035 #endif 00036