CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  virtual void apply();
86  virtual int type() const;
87 
90  const AlgebraicSymMatrix &covMatrix) const;
91 
95  const AlgebraicSymMatrix &covMatrix) const;
96 
99  const AlignableDetOrUnitPtr &aliDet) const;
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 
virtual AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &aliDet) const
Get all derivatives.
virtual TwoBowedSurfacesAlignmentParameters * cloneFromSelected(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const
Clone selected parameters (for update of parameters)
virtual void apply()
apply parameters to alignable
const AlgebraicVector & parameters(void) const
Get alignment parameters.
CLHEP::HepMatrix AlgebraicMatrix
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(..)!)
virtual int type() const
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency) ...
virtual TwoBowedSurfacesAlignmentParameters * clone(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const
Clone all parameters (for update of parameters)
CLHEP::HepSymMatrix AlgebraicSymMatrix
TwoBowedSurfacesAlignmentParameters(Alignable *alignable)
Constructor with empty parameters/covariance.
virtual void print() const
print parameters to screen