CMS 3D CMS Logo

MuonTimingExtractor.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_TrackingTools_MuonTimingExtractor_H
00002 #define RecoMuon_TrackingTools_MuonTimingExtractor_H
00003 
00009 //
00010 // Original Author:  Traczyk Piotr
00011 //         Created:  Thu Oct 11 15:01:28 CEST 2007
00012 // $Id: MuonTimingExtractor.h,v 1.3 2009/01/15 10:57:10 ptraczyk 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 
00039 #include "DataFormats/TrackReco/interface/Track.h"
00040 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00041 #include "DataFormats/TrackReco/interface/TrackExtra.h"
00042 #include "DataFormats/TrackReco/interface/TrackExtraFwd.h"
00043 
00044 #include <vector>
00045 
00046 namespace edm {
00047   class ParameterSet;
00048   class EventSetup;
00049   class InputTag;
00050 }
00051 
00052 class MuonServiceProxy;
00053 
00054 using namespace std;
00055 
00056 class MuonTimingExtractor {
00057 
00058 public:
00059   
00061   MuonTimingExtractor(const edm::ParameterSet&);
00062   
00064   ~MuonTimingExtractor();
00065 
00066  class TimeMeasurement
00067   {
00068    public:
00069      bool isLeft;
00070      bool isPhi;
00071      float posInLayer;
00072      float distIP;
00073      float timeCorr;
00074      int station;
00075      DetId driftCell;
00076   };
00077 
00078   reco::MuonTime fillTiming(edm::Event&, const edm::EventSetup&, reco::TrackRef muonTrack);
00079 
00080 private:
00081   double fitT0(double &a, double &b, vector<double> xl, vector<double> yl, vector<double> xr, vector<double> yr );
00082   void rawFit(double &a, double &da, double &b, double &db, const vector<double> hitsx, const vector<double> hitsy);
00083 
00084   edm::InputTag DTSegmentTags_; 
00085   unsigned int theHitsMin;
00086   double thePruneCut;
00087   bool useSegmentT0;
00088   bool debug;
00089   
00090   MuonServiceProxy* theService;
00091   
00092   MuonSegmentMatcher *theMatcher;
00093 };
00094 
00095 #endif

Generated on Tue Jun 9 17:44:34 2009 for CMSSW by  doxygen 1.5.4