CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
OuterHitPhiPrediction Class Reference

#include <OuterHitPhiPrediction.h>

Public Types

using Range = PixelRecoRange< float >
 

Public Member Functions

Range operator() (float radius) const
 
 OuterHitPhiPrediction (const Range &phiAtVertex, const Range &curvature, float originRBound)
 
void setTolerance (float tolerance)
 

Private Member Functions

Range asym (float radius) const
 
Range sym (float radius) const
 

Private Attributes

Range theCurvature
 
float theOriginRBound
 
Range thePhiAtVertex
 
float theTolerance = 0.f
 

Detailed Description

predicts phi range at a given radius r

Definition at line 12 of file OuterHitPhiPrediction.h.

Member Typedef Documentation

◆ Range

Definition at line 14 of file OuterHitPhiPrediction.h.

Constructor & Destructor Documentation

◆ OuterHitPhiPrediction()

OuterHitPhiPrediction::OuterHitPhiPrediction ( const Range phiAtVertex,
const Range curvature,
float  originRBound 
)
inline

Definition at line 16 of file OuterHitPhiPrediction.h.

17  : thePhiAtVertex(phiAtVertex), theCurvature(curvature), theOriginRBound(originRBound) {
18  // assert(theCurvature.max()>0);
20  }

References cms::cuda::assert().

Member Function Documentation

◆ asym()

OuterHitPhiPrediction::Range OuterHitPhiPrediction::asym ( float  radius) const
private

Definition at line 12 of file OuterHitPhiPrediction.cc.

12  {
13  auto invr = 1.f / radius;
15  return Range(-M_PI, M_PI);
16 
17  float Phi_r = std::asin(radius * theCurvature.max() * 0.5f + theOriginRBound * invr);
18 
19  if (theCurvature.max() == -theCurvature.min())
20  return Range(thePhiAtVertex.min() - Phi_r - theTolerance, thePhiAtVertex.max() + Phi_r + theTolerance);
21 
22  float curv0 = theCurvature.mean();
23  float Phi_0 = std::asin(radius * curv0 * 0.5f);
24  float Phi_m = std::asin(radius * theCurvature.min() * 0.5f - theOriginRBound * invr);
25  return Range(thePhiAtVertex.min() + Phi_0 + Phi_m - theTolerance,
26  thePhiAtVertex.max() + Phi_0 + Phi_r + theTolerance);
27 }

References funct::abs(), f, M_PI, PixelRecoRange< T >::max(), SiStripPI::max, PixelRecoRange< T >::mean(), PixelRecoRange< T >::min(), CosmicsPD_Skims::radius, theCurvature, theOriginRBound, thePhiAtVertex, and theTolerance.

◆ operator()()

Range OuterHitPhiPrediction::operator() ( float  radius) const
inline

Definition at line 24 of file OuterHitPhiPrediction.h.

24 { return sym(radius); }

References CosmicsPD_Skims::radius.

◆ setTolerance()

void OuterHitPhiPrediction::setTolerance ( float  tolerance)
inline

Definition at line 22 of file OuterHitPhiPrediction.h.

References tolerance.

Referenced by RectangularEtaPhiTrackingRegion::estimator().

◆ sym()

OuterHitPhiPrediction::Range OuterHitPhiPrediction::sym ( float  radius) const
private

Definition at line 4 of file OuterHitPhiPrediction.cc.

4  {
5  auto arc = radius * theCurvature.max() * 0.5f + theOriginRBound / radius;
6 
7  auto Phi_r = unsafe_asin07<5>(arc);
8  return Range(thePhiAtVertex.min() - Phi_r - theTolerance, thePhiAtVertex.max() + Phi_r + theTolerance);
9 }

References PixelRecoRange< T >::max(), PixelRecoRange< T >::min(), CosmicsPD_Skims::radius, theCurvature, theOriginRBound, thePhiAtVertex, and theTolerance.

Member Data Documentation

◆ theCurvature

Range OuterHitPhiPrediction::theCurvature
private

Definition at line 31 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

◆ theOriginRBound

float OuterHitPhiPrediction::theOriginRBound
private

Definition at line 32 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

◆ thePhiAtVertex

Range OuterHitPhiPrediction::thePhiAtVertex
private

Definition at line 30 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

◆ theTolerance

float OuterHitPhiPrediction::theTolerance = 0.f
private

Definition at line 33 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

OuterHitPhiPrediction::thePhiAtVertex
Range thePhiAtVertex
Definition: OuterHitPhiPrediction.h:30
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PixelRecoRange::mean
T mean() const
Definition: PixelRecoRange.h:27
OuterHitPhiPrediction::Range
PixelRecoRange< float > Range
Definition: OuterHitPhiPrediction.h:14
cms::cuda::assert
assert(be >=bs)
PixelRecoUtilities::curvature
T curvature(T InversePt, const edm::EventSetup &iSetup)
Definition: PixelRecoUtilities.h:42
PixelRecoRange::min
T min() const
Definition: PixelRecoRange.h:25
PixelRecoRange::max
T max() const
Definition: PixelRecoRange.h:26
OuterHitPhiPrediction::theTolerance
float theTolerance
Definition: OuterHitPhiPrediction.h:33
OuterHitPhiPrediction::theCurvature
Range theCurvature
Definition: OuterHitPhiPrediction.h:31
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
OuterHitPhiPrediction::sym
Range sym(float radius) const
Definition: OuterHitPhiPrediction.cc:4
tolerance
const double tolerance
Definition: HGCalGeomParameters.cc:29
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
OuterHitPhiPrediction::theOriginRBound
float theOriginRBound
Definition: OuterHitPhiPrediction.h:32
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22