16 vector<MSLayer> allLayers;
19 vector<MSLayer>::iterator
it;
21 for (
it = allLayers.begin();
it != allLayers.end();
it++) {
27 float x0 = getDataX0(*it).x0;
31 float sumX0D = theLayersData.sumX0D(
zero, middle);
32 dataX0 =
DataX0(x0, sumX0D, cotTheta);
34 float hrange = (
it->range().max() -
it->range().min()) / 2.;
35 float cot1 =
it->position() / (
it->range().mean() - hrange / 2);
36 float cot2 =
it->position() / (
it->range().mean() + hrange / 2);
39 float sum1 = theLayersData.sumX0D(
zero,
it->crossing(line1).first);
40 float sum2 = theLayersData.sumX0D(
zero,
it->crossing(line2).first);
41 float slope = (sum2 - sum1) / (1 / cot2 - 1 / cot1);
42 float sumX0D = sum1 +
slope * (1 / cotTheta - 1 / cot1);
43 dataX0 =
DataX0(x0, sumX0D, cotTheta);
44 dataX0.setForwardSumX0DSlope(
slope);
46 setDataX0(*
it, dataX0);
47 theLayersData.update(*
it);
static const double slope[3]
MSLayersKeeperX0DetLayer()
if(threadIdxLocalY==0 &&threadIdxLocalX==0)