00001 #ifndef MuonIdentification_CSCTimingExtractor_H 00002 #define MuonIdentification_CSCTimingExtractor_H 00003 00009 // 00010 // Original Author: Traczyk Piotr 00011 // Created: Thu Oct 11 15:01:28 CEST 2007 00012 // $Id: CSCTimingExtractor.h,v 1.5 2011/02/24 15:41:53 farrell3 Exp $ 00013 // 00014 // 00015 00016 // system include files 00017 #include <memory> 00018 00019 // user include files 00020 #include "FWCore/Framework/interface/Frameworkfwd.h" 00021 #include "FWCore/Framework/interface/EDProducer.h" 00022 00023 #include "FWCore/Framework/interface/Event.h" 00024 #include "FWCore/Framework/interface/MakerMacros.h" 00025 00026 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00027 00028 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h" 00029 00030 #include "DataFormats/Common/interface/Ref.h" 00031 00032 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" 00033 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" 00034 00035 #include "DataFormats/MuonReco/interface/Muon.h" 00036 #include "DataFormats/MuonReco/interface/MuonFwd.h" 00037 #include "RecoMuon/TrackingTools/interface/MuonSegmentMatcher.h" 00038 #include "RecoMuon/MuonIdentification/interface/TimeMeasurementSequence.h" 00039 00040 #include "DataFormats/TrackReco/interface/Track.h" 00041 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00042 #include "DataFormats/TrackReco/interface/TrackExtra.h" 00043 #include "DataFormats/TrackReco/interface/TrackExtraFwd.h" 00044 00045 #include <vector> 00046 00047 namespace edm { 00048 class ParameterSet; 00049 class EventSetup; 00050 class InputTag; 00051 } 00052 00053 class MuonServiceProxy; 00054 00055 class CSCTimingExtractor { 00056 00057 public: 00058 00060 CSCTimingExtractor(const edm::ParameterSet&); 00061 00063 ~CSCTimingExtractor(); 00064 00065 class TimeMeasurement 00066 { 00067 public: 00068 float distIP; 00069 float timeCorr; 00070 int station; 00071 float weightVertex; 00072 float weightInvbeta; 00073 }; 00074 00075 void fillTiming(TimeMeasurementSequence &tmSequence, reco::TrackRef muonTrack, const edm::Event& iEvent, const edm::EventSetup& iSetup); 00076 00077 private: 00078 edm::InputTag CSCSegmentTags_; 00079 unsigned int theHitsMin_; 00080 double thePruneCut_; 00081 double theStripTimeOffset_; 00082 double theWireTimeOffset_; 00083 double theStripError_; 00084 double theWireError_; 00085 bool UseWireTime; 00086 bool UseStripTime; 00087 bool debug; 00088 00089 MuonServiceProxy* theService; 00090 00091 MuonSegmentMatcher *theMatcher; 00092 }; 00093 00094 #endif