Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:50

0001 #ifndef InnerDeltaPhi_H
0002 #define InnerDeltaPhi_H
0003 
0004 /** predict phi bending in layer for the tracks constratind by outer hit r-z */
0005 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
0006 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
0007 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisation.h"
0008 
0009 #include "FWCore/Utilities/interface/Visibility.h"
0010 #include "FWCore/Utilities/interface/Likely.h"
0011 
0012 class DetLayer;
0013 template <class T>
0014 class PixelRecoRange;
0015 
0016 #include "DataFormats/GeometryVector/interface/Basic2DVector.h"
0017 
0018 class dso_hidden InnerDeltaPhi {
0019 public:
0020   typedef Basic2DVector<float> Point2D;
0021 
0022   InnerDeltaPhi(const DetLayer& outlayer,
0023                 const DetLayer& layer,
0024                 const TrackingRegion& region,
0025                 const MagneticField& field,
0026                 const MultipleScatteringParametrisationMaker& msmaker,
0027                 bool precise = true,
0028                 float extraTolerance = 0.f);
0029 
0030   bool prefilter(float xHit, float yHit) const { return xHit * xHit + yHit * yHit > theRLayer * theRLayer; }
0031 
0032   PixelRecoRange<float> operator()(float xHit, float yHit, float zHit, float errRPhi) const {
0033     return phiRange(Point2D(xHit, yHit), zHit, errRPhi);
0034   }
0035 
0036 private:
0037   bool innerIsBarrel;
0038   bool outerIsBarrel;
0039   bool thePrecise;
0040   int ol;
0041 
0042   float theROrigin;
0043   float theRLayer;
0044   float theThickness;
0045   float theScatt0;
0046   float theDeltaScatt;
0047 
0048   float theRCurvature;
0049   float theExtraTolerance;
0050   float theA;
0051   float theB;
0052 
0053   float theVtxZ;
0054   float thePtMin;
0055 
0056   Point2D theVtx;
0057 
0058   MultipleScatteringParametrisation sigma;
0059 
0060 private:
0061   void initBarrelLayer(const DetLayer& layer);
0062   void initForwardLayer(const DetLayer& layer, float zMinOrigin, float zMaxOrigin);
0063   void initBarrelMS(const DetLayer& outLayer);
0064   void initForwardMS(const DetLayer& outLayer);
0065 
0066   PixelRecoRange<float> phiRange(const Point2D& hitXY, float zHit, float errRPhi) const;
0067 };
0068 
0069 #endif