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 
35 
36 class Alignable;
39 
41 {
42  public:
46  // 1st surface
50  dslopeX1 = BowedDerivs::dslopeX, // NOTE: slope(u) -> halfWidth*tan(beta),
51  dslopeY1 = BowedDerivs::dslopeY, // slope(v) -> halfLength*tan(alpha)
52  drotZ1 = BowedDerivs::drotZ, // rot(w) -> g-scale*gamma
56  // 2nd surface
60  dslopeX2 = BowedDerivs::dslopeX + BowedDerivs::N_PARAM, // NOTE: slope(u) -> k*tan(beta),
61  dslopeY2 = BowedDerivs::dslopeY + BowedDerivs::N_PARAM, // slope(v) -> k*tan(alpha)
66  // number of parameters
67  N_PARAM = BowedDerivs::N_PARAM + BowedDerivs::N_PARAM
68  };
69 
72 
76  const AlgebraicSymMatrix &covMatrix);
77 
80  const AlgebraicSymMatrix &covMatrix,
81  const std::vector<bool> &selection);
82 
85  void apply() override;
86  int type() const override;
87 
90  const AlgebraicSymMatrix &covMatrix) const override;
91 
94  cloneFromSelected(const AlgebraicVector &parameters,
95  const AlgebraicSymMatrix &covMatrix) const override;
96 
99  const AlignableDetOrUnitPtr &aliDet) const override;
100 
102  virtual void print() const;
103 
104  double ySplit() const { return ySplit_;}
105 
106  private:
107  double ySplitFromAlignable(const Alignable *ali) const;
108 
109  double ySplit_;
110 };
111 
112 #endif
113 
TwoBowedSurfacesAlignmentParameters * clone(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone all parameters (for update of parameters)
AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &aliDet) const override
Get all derivatives.
selection
main part
Definition: corrVsCorr.py:98
void apply() override
apply parameters to alignable
const AlgebraicVector & parameters(void) const
Get alignment parameters.
CLHEP::HepMatrix AlgebraicMatrix
TwoBowedSurfacesAlignmentParameters * cloneFromSelected(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone selected parameters (for update of parameters)
Alignable * alignable(void) const
Get pointer to corresponding alignable.
double ySplitFromAlignable(const Alignable *ali) const
CLHEP::HepVector AlgebraicVector
BowedSurfaceAlignmentDerivatives BowedDerivs
Give parameters a name (do not change order, see derivatives(..)!)
int type() const override
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency) ...
CLHEP::HepSymMatrix AlgebraicSymMatrix
TwoBowedSurfacesAlignmentParameters(Alignable *alignable)
Constructor with empty parameters/covariance.
virtual void print() const
print parameters to screen