1 #ifndef ThirdHitRZPrediction_H
2 #define ThirdHitRZPrediction_H
13 template<
class Propagator>
29 {
return theBarrel ? propagator.zAtR(rOrZ) : propagator.rAtZ(rOrZ); }
34 template<
class Propagator>
38 if (layer) initLayer(layer);
39 if (!theBarrel && !theForward)
return Range(0., 0.);
40 float v1 =
transform(*thePropagator, theDetRange.min());
41 float v2 =
transform(*thePropagator, theDetRange.max());
43 return Range(v1 - theTolerance.left(), v2 + theTolerance.right());
46 template<
class Propagator>
51 return Range(v - theTolerance.left(), v + theTolerance.right());
void initPropagator(const Propagator *propagator)
PixelRecoRange< float > Range
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
PixelRecoRange< float > Range
const Propagator * thePropagator
Range operator()(const DetLayer *layer=nullptr)