16 edm::LogError(
"BadSetup") <<
"@SUB=TwoBowedSurfacesDeformation"
17 <<
"Input vector of wrong size " << pars.size()
18 <<
" instead of " <<
parameterSize() <<
", add zeros to fill up!";
41 double length,
double width)
const
54 const double sign = (localPos.
y() < ySplit ? +1. : -1.);
55 const double yMiddle = ySplit * 0.5 - sign * length * .25;
57 const double myY = localPos.
y() - yMiddle;
58 const double myLength = length * 0.5 + sign * ySplit;
60 double uRel = 2. * localPos.
x() /
width;
61 double vRel = 2. * myY / myLength;
63 const double cutOff = 1.5;
64 if (uRel < -cutOff) { uRel = -cutOff; }
else if (uRel > cutOff) { uRel = cutOff; }
65 if (vRel < -cutOff) { vRel = -cutOff; }
else if (vRel > cutOff) { vRel = cutOff; }
75 = (uRel * uRel - 1./3.) * (pars[0] + sign * pars[9])
76 + uRel * vRel * (pars[1] + sign * pars[10])
77 + (vRel * vRel - 1./3.) * (pars[2] + sign * pars[11])
79 + myY * sign * pars[6]
80 - localPos.
x() * sign * pars[7];
86 x += (sign * pars[3]);
87 y += (sign * pars[4]);
89 x -= myY * (sign * pars[8]);
90 y += localPos.
x() * (sign * pars[8]);
99 const std::vector<double> otherParameters(other.
parameters());
108 LogDebug(
"Alignment") <<
"@SUB=TwoBowedSurfacesDeformation::add"
110 <<
", to add " << otherParameters[
k_ySplit()];