CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions
PixelRecoUtilities Namespace Reference

Classes

struct  FieldAt0
 

Functions

template<typename T >
T bendingRadius (T pt, const edm::EventSetup &iSetup)
 
template<typename T >
T curvature (T InversePt, const edm::EventSetup &iSetup)
 
float fieldInInvGev (const edm::EventSetup &iSetup)
 
template<typename T >
T inversePt (T curvature, const edm::EventSetup &iSetup)
 
double longitudinalBendingCorrection (double radius, double pt, const edm::EventSetup &iSetup)
 

Detailed Description

Small utility funcions used during seed generation

Function Documentation

template<typename T >
T PixelRecoUtilities::bendingRadius ( T  pt,
const edm::EventSetup iSetup 
)

gives bending radius in magnetic field, pT in GeV, magnetic field taken at (0,0,0)

Definition at line 35 of file PixelRecoUtilities.h.

References fieldInInvGev().

Referenced by HitPairGeneratorFromLayerPairForPhotonConversion::getPhiRange(), InnerDeltaPhi::InnerDeltaPhi(), and longitudinalBendingCorrection().

35 {return pt*fieldInInvGev(iSetup);}
float fieldInInvGev(const edm::EventSetup &iSetup)
template<typename T >
T PixelRecoUtilities::curvature ( T  InversePt,
const edm::EventSetup iSetup 
)
float PixelRecoUtilities::fieldInInvGev ( const edm::EventSetup iSetup)
inline

Magnetic field intensity in units of cm/GeV. The value is cached in a static variable, so the actual MagneticField is accessed only once.

Definition at line 26 of file PixelRecoUtilities.h.

References PixelRecoUtilities::FieldAt0::fieldInInvGev.

Referenced by bendingRadius(), curvature(), pixelrecoutilities::LongitudinalBendingCorrection::init(), and inversePt().

26  {
27  static FieldAt0 fieldAt0(iSetup);
28  return fieldAt0.fieldInInvGev;
29  }
template<typename T >
T PixelRecoUtilities::inversePt ( T  curvature,
const edm::EventSetup iSetup 
)

inverse pt from curvature

Definition at line 45 of file PixelRecoUtilities.h.

References fieldInInvGev().

Referenced by PixelTripletNoTipGenerator::hitTriplets(), PixelFitterByConformalMappingAndLine::run(), TrackFitter::run(), PixelFitterByHelixProjections::run(), and KFBasedPixelFitter::run().

45 {return curvature*fieldInInvGev(iSetup);}
T curvature(T InversePt, const edm::EventSetup &iSetup)
float fieldInInvGev(const edm::EventSetup &iSetup)
double PixelRecoUtilities::longitudinalBendingCorrection ( double  radius,
double  pt,
const edm::EventSetup iSetup 
)
inline

distance between stright line propagation and helix r_stright_line = radius+longitudinalBendingCorrection(radius,pt)

Definition at line 51 of file PixelRecoUtilities.h.

References bendingRadius().

51  {
52  double invCurv = bendingRadius(pt,iSetup);
53  if ( invCurv == 0. ) return 0.;
54  return radius/6. * radius*radius/(2.*invCurv * 2.*invCurv);
55  }
T bendingRadius(T pt, const edm::EventSetup &iSetup)