1 #ifndef ThirdHitRZPrediction_H
2 #define ThirdHitRZPrediction_H
13 template <
class Propagator>
28 return theBarrel ? propagator.zAtR(rOrZ) : propagator.rAtZ(rOrZ);
34 template <
class Propagator>
38 if (!theBarrel && !theForward)
40 float v1 =
transform(*thePropagator, theDetRange.min());
41 float v2 =
transform(*thePropagator, theDetRange.max());
44 return Range(v1 - theTolerance.left(), v2 + theTolerance.right());
47 template <
class Propagator>
51 return Range(v - theTolerance.left(), v + theTolerance.right());
void initPropagator(const Propagator *propagator)
PixelRecoRange< float > Range
PixelRecoRange< float > Range
constexpr std::array< uint8_t, layerIndexSize > layer
float transform(const Propagator &propagator, float rOrZ) const
ThirdHitRZPrediction(const Propagator *propagator, float tolerance, const DetLayer *layer=nullptr)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Range operator()(float rORz) const
const Propagator * thePropagator
Range operator()(const DetLayer *layer=nullptr)