CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

ThirdHitRZPrediction< Propagator > Class Template Reference

#include <ThirdHitRZPrediction.h>

Inheritance diagram for ThirdHitRZPrediction< Propagator >:
ThirdHitRZPredictionBase

List of all members.

Public Member Functions

void initPropagator (const Propagator *propagator)
Range operator() (float rORz) const
Range operator() (float rORz, const Propagator &propagator) const
Range operator() (const DetLayer *layer=nullptr)
 ThirdHitRZPrediction (const Propagator *propagator, float tolerance, const DetLayer *layer=nullptr)
 ThirdHitRZPrediction ()

Private Member Functions

float transform (const Propagator &propagator, float rOrZ) const

Private Attributes

const PropagatorthePropagator

Detailed Description

template<class Propagator>
class ThirdHitRZPrediction< Propagator >

predicts a range in r-z for the position of third hit. the predicted reange is defined by the template argument, which is a straight line extrapolation/interpolation if PixelRecoLineRZ is used.

Definition at line 14 of file ThirdHitRZPrediction.h.


Constructor & Destructor Documentation

template<class Propagator>
ThirdHitRZPrediction< Propagator >::ThirdHitRZPrediction ( ) [inline]

Definition at line 17 of file ThirdHitRZPrediction.h.

template<class Propagator>
ThirdHitRZPrediction< Propagator >::ThirdHitRZPrediction ( const Propagator propagator,
float  tolerance,
const DetLayer layer = nullptr 
) [inline]

Definition at line 18 of file ThirdHitRZPrediction.h.

                                                                                                       :
      ThirdHitRZPredictionBase(tolerance, layer), thePropagator(propagator) {}

Member Function Documentation

template<class Propagator>
void ThirdHitRZPrediction< Propagator >::initPropagator ( const Propagator propagator) [inline]
template<class Propagator >
ThirdHitRZPrediction< Propagator >::Range ThirdHitRZPrediction< Propagator >::operator() ( const DetLayer layer = nullptr) [inline]

Definition at line 36 of file ThirdHitRZPrediction.h.

References std::swap(), and create_public_pileup_plots::transform.

{
  if (layer) initLayer(layer);
  if (!theBarrel && !theForward) return Range(0., 0.);
  float v1 = transform(*thePropagator, theDetRange.min());
  float v2 = transform(*thePropagator, theDetRange.max());
  if (v1 > v2) std::swap(v1, v2);
  return Range(v1 - theTolerance.left(), v2 + theTolerance.right());
}
template<class Propagator>
Range ThirdHitRZPrediction< Propagator >::operator() ( float  rORz) const [inline]

Definition at line 22 of file ThirdHitRZPrediction.h.

References ThirdHitRZPrediction< Propagator >::thePropagator.

{ return (*this)(rORz, *thePropagator); }
template<class Propagator >
ThirdHitRZPrediction< Propagator >::Range ThirdHitRZPrediction< Propagator >::operator() ( float  rORz,
const Propagator propagator 
) const [inline]

Definition at line 48 of file ThirdHitRZPrediction.h.

References create_public_pileup_plots::transform, and findQualityFiles::v.

{
  float v = transform(propagator, rOrZ);
  return Range(v - theTolerance.left(), v + theTolerance.right());
}
template<class Propagator>
float ThirdHitRZPrediction< Propagator >::transform ( const Propagator propagator,
float  rOrZ 
) const [inline, private]

Definition at line 28 of file ThirdHitRZPrediction.h.

References ThirdHitRZPredictionBase::theBarrel.

  { return theBarrel ? propagator.zAtR(rOrZ) : propagator.rAtZ(rOrZ); }

Member Data Documentation

template<class Propagator>
const Propagator* ThirdHitRZPrediction< Propagator >::thePropagator [private]