File indexing completed on 2024-04-06 12:28:50
0001 #ifndef InnerDeltaPhi_H
0002 #define InnerDeltaPhi_H
0003
0004
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