CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/TrackingTools/TrackRefitter/interface/TrackTransformerForGlobalCosmicMuons.h

Go to the documentation of this file.
00001 #ifndef TrackingTools_TrackRefitter_TrackTransformerForGlobalCosmicMuons_H
00002 #define TrackingTools_TrackRefitter_TrackTransformerForGlobalCosmicMuons_H
00003 
00018 #include "TrackingTools/TrackRefitter/interface/TrackTransformerBase.h"
00019 
00020 #include "TrackingTools/TrackRefitter/interface/RefitDirection.h"
00021 
00022 #include "FWCore/Framework/interface/ESHandle.h"
00023 
00024 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
00025 #include "MagneticField/Engine/interface/MagneticField.h"
00026 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00027 
00028 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00029 
00030 namespace edm {class ParameterSet; class EventSetup;}
00031 namespace reco {class TransientTrack;}
00032 
00033 class TrajectoryFitter;
00034 class TrajectorySmoother;
00035 class Propagator;
00036 class TransientTrackingRecHitBuilder;
00037 class Trajectory;
00038 
00039 class TrackTransformerForGlobalCosmicMuons: public TrackTransformerBase{
00040 
00041 public:
00042 
00044   TrackTransformerForGlobalCosmicMuons(const edm::ParameterSet&);
00045 
00047   virtual ~TrackTransformerForGlobalCosmicMuons();
00048   
00049   // Operations
00050 
00052   virtual std::vector<Trajectory> transform(const reco::Track&) const;
00053 
00055   const MagneticField* magneticField() const {return &*theMGField;}
00056   
00058   edm::ESHandle<GlobalTrackingGeometry> trackingGeometry() const {return theTrackingGeometry;}
00059 
00061   virtual void setServices(const edm::EventSetup&);
00062 
00064   edm::ESHandle<TrajectoryFitter> fitter(bool) const;
00065   
00067   edm::ESHandle<TrajectorySmoother> smoother(bool) const;
00068 
00069   TransientTrackingRecHit::ConstRecHitContainer
00070     getTransientRecHits(const reco::TransientTrack& track) const;
00071 
00073   bool TrackerKeep(DetId id) const;
00075   bool MuonKeep(DetId id) const;
00076   
00077  protected:
00078   
00079  private:
00080 
00081   edm::ESHandle<Propagator> thePropagatorIO;
00082   edm::ESHandle<Propagator> thePropagatorOI;
00083 
00084   edm::ESHandle<Propagator> propagator(bool) const;
00085 
00086   
00087   unsigned long long theCacheId_TC;
00088   unsigned long long theCacheId_GTG;
00089   unsigned long long theCacheId_MG;
00090   unsigned long long theCacheId_TRH;
00091   
00092   bool theRPCInTheFit;
00093   int   theSkipStationDT;
00094   int   theSkipStationCSC;
00095   int   theSkipWheelDT;
00096   int   theTrackerSkipSystem;
00097   int   theTrackerSkipSection;
00098 
00099   edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
00100   edm::ESHandle<MagneticField> theMGField;
00101   
00102   edm::ESHandle<TrajectoryFitter> theFitterIO;
00103   edm::ESHandle<TrajectoryFitter> theFitterOI;
00104   
00105   edm::ESHandle<TrajectorySmoother> theSmootherIO;
00106   edm::ESHandle<TrajectorySmoother> theSmootherOI;
00107  
00108   std::string theTrackerRecHitBuilderName;
00109   edm::ESHandle<TransientTrackingRecHitBuilder> theTrackerRecHitBuilder;
00110   
00111   std::string theMuonRecHitBuilderName;
00112   edm::ESHandle<TransientTrackingRecHitBuilder> theMuonRecHitBuilder;
00113   
00114 };
00115 #endif
00116