CMS 3D CMS Logo

TwoBowedSurfacesAlignmentParameters.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignment_TwoBowedSurfacesAlignmentParameters_h
2 #define Alignment_CommonAlignment_TwoBowedSurfacesAlignmentParameters_h
3 
7 
9 
38 
39 class Alignable;
42 
44 public:
48  // 1st surface
52  dslopeX1 = BowedDerivs::dslopeX, // NOTE: slope(u) -> halfWidth*tan(beta),
53  dslopeY1 = BowedDerivs::dslopeY, // slope(v) -> halfLength*tan(alpha)
54  drotZ1 = BowedDerivs::drotZ, // rot(w) -> g-scale*gamma
58  // 2nd surface
62  dslopeX2 = BowedDerivs::dslopeX + BowedDerivs::N_PARAM, // NOTE: slope(u) -> k*tan(beta),
63  dslopeY2 = BowedDerivs::dslopeY + BowedDerivs::N_PARAM, // slope(v) -> k*tan(alpha)
68  // number of parameters
70  };
71 
74 
78  const AlgebraicSymMatrix &covMatrix);
79 
83  const AlgebraicSymMatrix &covMatrix,
84  const std::vector<bool> &selection);
85 
88  void apply() override;
89  int type() const override;
90 
93  const AlgebraicSymMatrix &covMatrix) const override;
94 
97  const AlgebraicSymMatrix &covMatrix) const override;
98 
100  AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &aliDet) const override;
101 
103  virtual void print() const;
104 
105  double ySplit() const { return ySplit_; }
106 
107 private:
108  double ySplitFromAlignable(const Alignable *ali) const;
109 
110  double ySplit_;
111 };
112 
113 #endif
Alignable * alignable(void) const
Get pointer to corresponding alignable.
selection
main part
Definition: corrVsCorr.py:100
int type() const override
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency) ...
const AlgebraicVector & parameters(void) const
Get alignment parameters.
void apply() override
apply parameters to alignable
TwoBowedSurfacesAlignmentParameters * cloneFromSelected(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone selected parameters (for update of parameters)
CLHEP::HepMatrix AlgebraicMatrix
TwoBowedSurfacesAlignmentParameters * clone(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone all parameters (for update of parameters)
CLHEP::HepVector AlgebraicVector
BowedSurfaceAlignmentDerivatives BowedDerivs
Give parameters a name (do not change order, see derivatives(..)!)
virtual void print() const
print parameters to screen
AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &aliDet) const override
Get all derivatives.
CLHEP::HepSymMatrix AlgebraicSymMatrix
double ySplitFromAlignable(const Alignable *ali) const
TwoBowedSurfacesAlignmentParameters(Alignable *alignable)
Constructor with empty parameters/covariance.