File indexing completed on 2024-04-06 12:28:51
0001 #ifndef PixelRecoUtilities_LongitudinalBendingCorrection_H
0002 #define PixelRecoUtilities_LongitudinalBendingCorrection_H
0003 #include "MagneticField/Engine/interface/MagneticField.h"
0004
0005 namespace pixelrecoutilities {
0006 class LongitudinalBendingCorrection {
0007 public:
0008 LongitudinalBendingCorrection() : coeff(0) {}
0009 LongitudinalBendingCorrection(float pt, const MagneticField& field) { init(pt, field); }
0010 void init(float pt, const MagneticField& field) {
0011 auto theInvCurv = pt * field.inverseBzAtOriginInGeV();
0012 coeff = 1.f / (4.f * 6.f * theInvCurv * theInvCurv);
0013 }
0014
0015 inline float operator()(float radius) const { return radius * radius * radius * coeff; }
0016
0017 private:
0018 float coeff;
0019 };
0020 }
0021
0022 #endif