File indexing completed on 2024-09-07 04:34:29
0001 #ifndef Alignment_CommonAlignment_RigidBodyAlignmentParameters_h
0002 #define Alignment_CommonAlignment_RigidBodyAlignmentParameters_h
0003
0004 #include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
0005 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 class Alignable;
0018 class AlignableDetOrUnitPtr;
0019 class TrajectoryStateOnSurface;
0020
0021 class RigidBodyAlignmentParameters : public AlignmentParameters {
0022 public:
0023
0024 enum AlignmentParameterName { dx = 0, dy, dz, dalpha, dbeta, dgamma, N_PARAM };
0025
0026
0027
0028
0029 RigidBodyAlignmentParameters(Alignable *alignable, bool calcMis);
0030
0031
0032 RigidBodyAlignmentParameters(Alignable *alignable,
0033 const AlgebraicVector ¶meters,
0034 const AlgebraicSymMatrix &covMatrix);
0035
0036
0037 RigidBodyAlignmentParameters(Alignable *alignable,
0038 const AlgebraicVector ¶meters,
0039 const AlgebraicSymMatrix &covMatrix,
0040 const std::vector<bool> &selection);
0041
0042
0043 ~RigidBodyAlignmentParameters() override {}
0044 void apply() override;
0045 int type() const override;
0046
0047
0048 RigidBodyAlignmentParameters *clone(const AlgebraicVector ¶meters,
0049 const AlgebraicSymMatrix &covMatrix) const override;
0050
0051
0052 RigidBodyAlignmentParameters *cloneFromSelected(const AlgebraicVector ¶meters,
0053 const AlgebraicSymMatrix &covMatrix) const override;
0054
0055
0056 AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &) const override;
0057
0058
0059 AlgebraicMatrix selectedDerivatives(const TrajectoryStateOnSurface &tsos,
0060 const AlignableDetOrUnitPtr &) const override;
0061
0062
0063 AlgebraicVector translation(void) const;
0064
0065
0066 AlgebraicVector rotation(void) const;
0067
0068
0069 AlgebraicVector globalParameters(void) const;
0070
0071
0072 void print(void) const;
0073
0074
0075
0076 static AlgebraicVector displacementFromAlignable(const Alignable *ali);
0077 };
0078
0079 #endif