25 : isOK_(component.alignmentParameters() && mother.alignmentParameters())
37 using namespace AlignmentParametersFactory;
49 edm::LogError(
"Alignment") <<
"@SUB=ParametersToParametersDerivatives::init"
52 <<
": not supported.";
80 const double halfWidth = 0.5 * component.
surface().
width();
100 edm::LogError(
"Alignment") <<
"@SUB=ParametersToParametersDerivatives::init2BowedRigid"
101 <<
"dynamic_cast to TwoBowedSurfacesAlignmentParameters failed.";
107 const double ySplit = aliPar->
ySplit();
108 const double halfWidth = 0.5 * component.
surface().
width();
109 const double halfLength = 0.5 * component.
surface().
length();
110 const double halfLength1 = 0.5 * (halfLength + ySplit);
111 const double halfLength2 = 0.5 * (halfLength - ySplit);
112 const double yM1 = 0.5 * (ySplit - halfLength);
113 const double yM2 = yM1 + halfLength;
132 typedef ROOT::Math::SMatrix<double,6,18,ROOT::Math::MatRepStd<double,6,18> > AlgebraicMatrix6_18;
133 AlgebraicMatrix6_18 derivs;
134 derivs.Place_at(derivs1, 0, 0);
135 derivs.Place_at(derivs2, 0, 9);
147 double halfWidth,
double halfLength)
const
150 const double gammaScale = BowedDerivs::gammaScale(2.*halfWidth, 2.*halfLength);
156 for (
unsigned int iRow = 0; iRow < 6; ++iRow) {
161 for (
unsigned int iCol = 0; iCol < 3; ++iCol) {
162 derivs(iRow, iCol) = f2f(iRow, iCol);
167 derivs(iRow, 3) = halfWidth * f2f(iRow, 4);
169 derivs(iRow, 4) = halfLength * f2f(iRow, 3);
171 derivs(iRow, 5) = gammaScale * f2f(iRow, 5);
174 for (
unsigned int iCol = 6; iCol < 9; ++iCol) {
175 derivs(iRow, iCol) = 0.;
184 unsigned int indParComp)
const
align::Scalar width() const
bool initRigidRigid(const Alignable &component, const Alignable &mother)
init for component and mother both with RigidBody parameters
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
ParametersToParametersDerivatives(const Alignable &component, const Alignable &mother)
const RotationType & globalRotation() const
Return the global orientation of the object.
std::string parametersTypeName(ParametersType parType)
convert ParametersType to string understood by parametersType(string &typeString) ...
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
AlgebraicMatrix69 dBowed_dRigid(const AlgebraicMatrix66 &f2f, double halfWidth, double halfLength) const
double operator()(unsigned int indParMother, unsigned int indParComp) const
bool initBowedRigid(const Alignable &component, const Alignable &mother)
init for component with BowedSurface and mother with RigidBody parameters
ROOT::Math::SMatrix< double, 6, 9, ROOT::Math::MatRepStd< double, 6, 9 > > AlgebraicMatrix69
AlgebraicMatrix frameToFrameDerivative(const Alignable *object, const Alignable *composedObject) const
Return the derivative DeltaFrame(object)/DeltaFrame(composedobject)
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
virtual int type() const =0
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency) ...
align::Scalar length() const
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
ParametersType parametersType(const std::string &typeString)
convert string to ParametersType - exception if not known
const PositionType & globalPosition() const
Return the global position of the object.
TMatrixD derivatives_
can we provide the desired?
bool init2BowedRigid(const Alignable &component, const Alignable &mother)
init for component with TwoBowedSurfaces and mother with RigidBody parameters
bool init(const Alignable &component, int typeComponent, const Alignable &mother, int typeMother)
init by choosing the correct detailed init method depending on parameter types