CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoTracker/TkHitPairs/src/InnerDeltaPhi.h

Go to the documentation of this file.
00001 #ifndef InnerDeltaPhi_H
00002 #define InnerDeltaPhi_H
00003 
00005 #include <fstream>
00006 #include "FWCore/Framework/interface/EventSetup.h"
00007 
00008 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
00009 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisation.h"
00010 
00011 class DetLayer;
00012 template<class T> class PixelRecoRange;
00013 
00014 #include "DataFormats/GeometryVector/interface/Basic2DVector.h"
00015 
00016 class InnerDeltaPhi {
00017 public:
00018 
00019   typedef Basic2DVector<double> Point2D;
00020 
00021   InnerDeltaPhi( const DetLayer& layer,
00022                  const TrackingRegion & region,
00023                  const edm::EventSetup& iSetup,
00024                  bool precise = true,
00025                  float extraTolerance = 0.f);
00026 
00027    ~InnerDeltaPhi();
00028 
00029   float operator()( float rHit, float zHit, float errRPhi) const;
00030    
00031   PixelRecoRange<float> operator()( float rHit, float phiHit, float zHit, float errRPhi) const;
00032 
00033 private:
00034 
00035   bool theRDefined;
00036   bool thePrecise;
00037 
00038 
00039   float theROrigin;
00040   float theRLayer;
00041   float theThickness;
00042 
00043   float theRCurvature;
00044   float theExtraTolerance;
00045   float theA;
00046   float theB;
00047 
00048   float theVtxZ;
00049   float thePtMin;
00050 
00051   Point2D theVtx;
00052 
00053 
00054   MultipleScatteringParametrisation sigma;
00055 
00056 
00057 private:
00058 
00059   void initBarrelLayer( const DetLayer& layer);
00060   void initForwardLayer( const DetLayer& layer, float zMinOrigin, float zMaxOrigin);
00061 
00062   PixelRecoRange<float> phiRange( const Point2D & hitXY, float zHit, float errRPhi) const;
00063   float minRadius( float hitR, float hitZ) const;
00064 
00065 };
00066 
00067 #endif