10 template <
class T>
inline T sqr(
T t) {
return t*
t;}
26 if (useBendingCorrection) theBendingCorrection.init(pt,es);
28 theMultScattCorrRPhi=0;
34 if (theUseMultipleScattering) sigmaRPhi.init(&layer3,es);
49 init(es,pt,layer3, useMultipleScattering, useBendingCorrection);
51 if (!theUseMultipleScattering)
return;
81 theMultScattCorrRPhi = 3.f*sigmaRPhi(pt, line.
cotLine(), point2(), layer2.
seqNum());
90 if (!theUseMultipleScattering)
return;
97 theMScoeff = theMultScattCorrRPhi*overSinTheta;
101 theMScoeff = theMultScattCorrRPhi*overCosTheta;
109 range.first -= theMScoeff;
110 range.second += theMScoeff;
113 if (theUseBendingCorrection) {
115 float cotTheta =
theLine.cotLine();
118 float corr = theBendingCorrection(radius) * cotTheta;
119 range.second +=
corr;
122 float corr = theBendingCorrection(radius) *
std::abs(cotTheta);
128 float corr = theBendingCorrection(radius);
virtual float length() const =0
const Bounds & bounds() const
virtual const BoundCylinder & specificSurface() const final
Extension of the interface.
Abs< T >::type abs(const T &t)
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
virtual const BoundDisk & specificSurface() const final
virtual const Surface::PositionType & position() const
Returns position of the surface.
void init(const edm::EventSetup &es, float pt, const DetLayer &layer1, const DetLayer &layer2, const DetLayer &layer3, bool useMultipleScattering, bool useBendingCorrection)
Square< F >::type sqr(const F &f)
float rAtZ(float z) const
float zAtR(float r) const
void correctRZRange(Range &range) const