00001 #ifndef CalibTracker_SiSitripLorentzAngle_SiStripFineDelayTLA_h 00002 #define CalibTracker_SiSitripLorentzAngle_SiStripFineDelayTLA_h 00003 00004 #include "FWCore/Framework/interface/EDAnalyzer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/Framework/interface/EventSetup.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00009 00010 #include <DataFormats/TrackingRecHit/interface/TrackingRecHit.h> 00011 #include "DataFormats/TrackReco/interface/Track.h" 00012 #include "DataFormats/GeometryVector/interface/LocalVector.h" 00013 00014 00015 class SimpleTrackRefitter; 00016 class TrackerGeometry; 00017 class TrackingRecHit; 00018 class TrajectorySeed; 00019 class Trajectory; 00020 00021 class SiStripFineDelayTLA 00022 { 00023 public: 00024 00025 explicit SiStripFineDelayTLA(const edm::ParameterSet& conf); 00026 virtual ~SiStripFineDelayTLA(); 00027 void init(const edm::Event& e,const edm::EventSetup& c); 00028 00029 std::vector<std::pair< std::pair<DetId, LocalPoint> ,float> > findtrackangle(const TrajectorySeed& seed,const reco::Track & theT); 00030 std::vector<std::pair< std::pair<DetId, LocalPoint> ,float> > findtrackangle(const reco::Track & theT); 00031 std::vector<std::pair< std::pair<DetId, LocalPoint> ,float> > findtrackangle(const std::vector<Trajectory>& traj); 00032 std::vector<std::pair< std::pair<DetId, LocalPoint> ,float> > findtrackangle(const Trajectory& traj); 00033 00034 private: 00035 00036 double computeAngleCorr(const LocalVector& v, double pitch, double thickness); 00037 00038 private: 00039 edm::ParameterSet conf_; 00040 SimpleTrackRefitter* refitter_; 00041 const TrackerGeometry * tracker; 00042 }; 00043 00044 00045 #endif