00001 #ifndef RecoMuon_MuonSeedGenerator_RPCSeedHits_H 00002 #define RecoMuon_MuonSeedGenerator_RPCSeedHits_H 00003 00011 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00012 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" 00013 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" 00014 #include "TFile.h" 00015 #include "TH1F.h" 00016 #include <vector> 00017 00018 class RecHit; 00019 class BoundPlane; 00020 class GeomDet; 00021 00022 namespace edm {class EventSetup;} 00023 00024 class RPCSeedHits { 00025 typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState; 00026 00027 public: 00028 RPCSeedHits(){} 00029 00030 void add(MuonTransientTrackingRecHit::MuonRecHitPointer hit) { theRhits.push_back(hit); } 00031 TrajectorySeed seed(const edm::EventSetup& eSetup) const; 00032 MuonTransientTrackingRecHit::ConstMuonRecHitPointer firstRecHit() const { return theRhits.front(); } 00033 unsigned int nrhit() const { return theRhits.size(); } 00034 00035 private: 00036 friend class RPCSeedFinder; 00037 00038 MuonTransientTrackingRecHit::ConstMuonRecHitPointer best_cand() const; 00039 00040 void computePtWithoutVtx(double* pt, double* spt) const; 00041 void computeBestPt(double* pt, double* spt, float& ptmean, float& sptmean) const; 00042 00043 TrajectorySeed createSeed(float ptmean, float sptmean, 00044 MuonTransientTrackingRecHit::ConstMuonRecHitPointer last, 00045 const edm::EventSetup& eSetup) const; 00046 00047 private: 00048 00049 MuonTransientTrackingRecHit::MuonRecHitContainer theRhits; 00050 }; 00051 00052 #endif