38 for (
auto x : keepers)
42 Keepers() : keepers{&x0DetLayer, &x0AtEta, &x0Averaged}, isInitialised(
false) {}
45 thread_local Keepers keepers;
58 theLayerKeeper = keepers(x0Source);
65 theLayer = theLayerKeeper->layer(layer);
70 float sumX0D = theLayer.sumX0D(cotTheta);
71 return x0ToSigma * sumX0D /
pT;
84 float sumX0D = layersAtEta.
sumX0D(pointI, pointO);
85 return x0ToSigma * sumX0D /
pT;
97 float sumX0D = layersAtEta.
sumX0D(il, theLayer.seqNum(), pointI, pointO);
98 return x0ToSigma * sumX0D /
pT;
109 float cotTheta = lineIO.
cotLine();
111 if (consecutive == useConsecutive) {
112 float dist = fabs((pointO.
r() - pointM.
r()) * (pointM.
r() - pointI.
r()) / (pointO.
r() - pointI.
r()));
113 return x0ToSigma *
sqrt(theLayer.x0(cotTheta)) * dist / pT;
116 float sumX0D = layersAtEta.
sumX0D(pointI, pointM, pointO);
117 return x0ToSigma * sumX0D /
pT;
127 float cotTheta = lineIO.
cotLine();
130 float sumX0D = layersAtEta.
sumX0D(pointV.
z(), theLayer.seqNum(), ol, pointI, pointO);
131 return x0ToSigma * sumX0D /
pT;
float sumX0D(const PixelRecoPointRZ &pointI, const PixelRecoPointRZ &pointO) const
float operator()(float pt, float cotTheta, float transverseIP=0.) const
static void initKeepers(const edm::EventSetup &iSetup)
static const float x0ToSigma
void init(const DetLayer *layer, const edm::EventSetup &iSetup, X0Source x0source=useX0AtEta)