00001 00010 #include "RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.h" 00011 #include "RecoMuon/MuonSeedGenerator/src/RPCSeedHits.h" 00012 #include "RecoMuon/TrackingTools/interface/MuonPatternRecoDumper.h" 00013 00014 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 00015 #include "DataFormats/GeometryVector/interface/Pi.h" 00016 #include "Geometry/CommonDetUnit/interface/GeomDet.h" 00017 #include "DataFormats/GeometryVector/interface/CoordinateSets.h" 00018 #include "DataFormats/GeometrySurface/interface/BoundPlane.h" 00019 #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" 00020 00021 #include "DataFormats/Common/interface/OwnVector.h" 00022 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" 00023 #include "DataFormats/TrajectoryState/interface/PTrajectoryStateOnDet.h" 00024 00025 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" 00026 00027 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h" 00028 00029 #include "MagneticField/Engine/interface/MagneticField.h" 00030 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" 00031 #include "FWCore/Framework/interface/ESHandle.h" 00032 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00033 #include "FWCore/Framework/interface/EventSetup.h" 00034 00035 #include <iomanip> 00036 00037 using namespace std; 00038 00039 typedef MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer; 00040 typedef MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer; 00041 typedef MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer; 00042 00043 RPCSeedFinder::RPCSeedFinder(){} 00044 00045 vector<TrajectorySeed> RPCSeedFinder::seeds(const edm::EventSetup& eSetup) const { 00046 00047 cout << "[RPCSeedFinder] --> seeds class called" << endl; 00048 00049 vector<TrajectorySeed> theSeeds; 00050 00051 RPCSeedHits barrel; 00052 00053 int num_bar = 0; 00054 for ( MuonRecHitContainer::const_iterator iter = theRhits.begin(); iter!= theRhits.end(); iter++ ){ 00055 barrel.add(*iter); 00056 num_bar++; 00057 } 00058 00059 if ( num_bar ) { 00060 cout << "[RPCSeedFinder] --> Barrel Seeds " << num_bar << endl; 00061 theSeeds.push_back(barrel.seed(eSetup)); 00062 } 00063 00064 return theSeeds; 00065 } 00066