CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/RecoMuon/TrackerSeedGenerator/interface/TrackerSeedCleaner.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_TrackerSeedCleaner_H
00002 #define RecoMuon_TrackerSeedCleaner_H
00003 
00011 #include "DataFormats/Common/interface/Handle.h"
00012 #include "FWCore/Framework/interface/ESHandle.h"
00013 
00014 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00015 #include "DataFormats/TrackReco/interface/Track.h"
00016 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00017 #include "FWCore/Utilities/interface/InputTag.h"
00018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00019 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
00020 #include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h"
00021 #include "RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h"
00022 #include "RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h"
00023 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00024 
00025 class MuonServiceProxy;
00026 class TSGFromL2Muon;
00027 class MuonTrackingRegionBuilder;
00028 
00029 namespace edm {class ParameterSet; class Event; class EventSetup;}
00030 
00031 //              ---------------------
00032 //              -- Class Interface --
00033 //              ---------------------
00034 
00035 class TrackerSeedCleaner{
00036 
00037 public:
00038 
00039   typedef std::vector<TrajectorySeed> tkSeeds;
00041   TrackerSeedCleaner(const edm::ParameterSet& pset) : theProxyService(0),theEvent(0) {
00042                    builderName_ = pset.getParameter<std::string>("TTRHBuilder");
00043                    theBeamSpotTag = pset.getParameter<edm::InputTag>("beamSpot");
00044                    useDirection_Cleaner = pset.getParameter<bool>("directionCleaner");
00045                    usePt_Cleaner = pset.getParameter<bool>("ptCleaner");
00046                    cleanBySharedHits = pset.getParameter<bool>("cleanerFromSharedHits");
00047   }
00048 
00050   virtual void init(const MuonServiceProxy *service);
00051   
00053   virtual ~TrackerSeedCleaner() {}
00055   virtual void  clean(const reco::TrackRef& , const RectangularEtaPhiTrackingRegion& region, tkSeeds&);  
00057   virtual void setEvent(const edm::Event&);
00058 
00059 private:
00060 
00061   const MuonServiceProxy * theProxyService;
00062   const edm::Event * theEvent;
00063 
00064   edm::InputTag theBeamSpotTag; //beam spot
00065   edm::Handle<reco::BeamSpot> bsHandle_;
00066 
00067   RedundantSeedCleaner * theRedundantCleaner;
00068 
00069   std::string builderName_;
00070   edm::ESHandle<TransientTrackingRecHitBuilder> theTTRHBuilder;
00071   bool useDirection_Cleaner,usePt_Cleaner,cleanBySharedHits; 
00072 };
00073 
00074 #endif
00075