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
TwoBowedSurfacesAlignmentParameters::dsagittaXY1
Definition: TwoBowedSurfacesAlignmentParameters.h:56
TwoBowedSurfacesAlignmentParameters::drotZ1
Definition: TwoBowedSurfacesAlignmentParameters.h:54
BowedSurfaceAlignmentDerivatives::dz
Definition: BowedSurfaceAlignmentDerivatives.h:30
TwoBowedSurfacesAlignmentParameters::dsagittaXY2
Definition: TwoBowedSurfacesAlignmentParameters.h:66
TwoBowedSurfacesAlignmentParameters::dsagittaY2
Definition: TwoBowedSurfacesAlignmentParameters.h:67
AlgebraicObjects.h
BowedSurfaceAlignmentDerivatives::N_PARAM
Definition: BowedSurfaceAlignmentDerivatives.h:37
Alignable
Definition: Alignable.h:27
TwoBowedSurfacesAlignmentParameters::dy1
Definition: TwoBowedSurfacesAlignmentParameters.h:50
TwoBowedSurfacesAlignmentParameters::apply
void apply() override
apply parameters to alignable
Definition: TwoBowedSurfacesAlignmentParameters.cc:115
TwoBowedSurfacesAlignmentParameters::dslopeX1
Definition: TwoBowedSurfacesAlignmentParameters.h:52
AlignableDetOrUnitPtr
Definition: AlignableDetOrUnitPtr.h:30
AlignmentParameters
Definition: AlignmentParameters.h:35
BowedSurfaceAlignmentDerivatives
Definition: BowedSurfaceAlignmentDerivatives.h:25
TwoBowedSurfacesAlignmentParameters::dslopeY1
Definition: TwoBowedSurfacesAlignmentParameters.h:53
AlignmentParameters.h
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
BowedSurfaceAlignmentDerivatives::dsagittaX
Definition: BowedSurfaceAlignmentDerivatives.h:34
TwoBowedSurfacesAlignmentParameters::type
int type() const override
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency)
Definition: TwoBowedSurfacesAlignmentParameters.cc:212
AlgebraicVector
CLHEP::HepVector AlgebraicVector
Definition: AlgebraicObjects.h:13
TwoBowedSurfacesAlignmentParameters::AlignmentParameterName
AlignmentParameterName
Definition: TwoBowedSurfacesAlignmentParameters.h:47
BowedSurfaceAlignmentDerivatives::dslopeX
Definition: BowedSurfaceAlignmentDerivatives.h:31
corrVsCorr.selection
selection
main part
Definition: corrVsCorr.py:100
TwoBowedSurfacesAlignmentParameters::cloneFromSelected
TwoBowedSurfacesAlignmentParameters * cloneFromSelected(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone selected parameters (for update of parameters)
Definition: TwoBowedSurfacesAlignmentParameters.cc:68
TwoBowedSurfacesAlignmentParameters::dslopeY2
Definition: TwoBowedSurfacesAlignmentParameters.h:63
TwoBowedSurfacesAlignmentParameters::dx2
Definition: TwoBowedSurfacesAlignmentParameters.h:59
BowedSurfaceAlignmentDerivatives::dx
Definition: BowedSurfaceAlignmentDerivatives.h:28
TwoBowedSurfacesAlignmentParameters::ySplit_
double ySplit_
Definition: TwoBowedSurfacesAlignmentParameters.h:110
BowedSurfaceAlignmentDerivatives::drotZ
Definition: BowedSurfaceAlignmentDerivatives.h:33
TwoBowedSurfacesAlignmentParameters::dy2
Definition: TwoBowedSurfacesAlignmentParameters.h:60
BowedSurfaceAlignmentDerivatives.h
TwoBowedSurfacesAlignmentParameters::drotZ2
Definition: TwoBowedSurfacesAlignmentParameters.h:64
TwoBowedSurfacesAlignmentParameters
Definition: TwoBowedSurfacesAlignmentParameters.h:43
Definitions.h
TwoBowedSurfacesAlignmentParameters::dz1
Definition: TwoBowedSurfacesAlignmentParameters.h:51
TwoBowedSurfacesAlignmentParameters::~TwoBowedSurfacesAlignmentParameters
~TwoBowedSurfacesAlignmentParameters() override
Destructor.
Definition: TwoBowedSurfacesAlignmentParameters.h:87
AlgebraicSymMatrix
CLHEP::HepSymMatrix AlgebraicSymMatrix
Definition: AlgebraicObjects.h:15
BowedSurfaceAlignmentDerivatives::dsagittaXY
Definition: BowedSurfaceAlignmentDerivatives.h:35
TwoBowedSurfacesAlignmentParameters::clone
TwoBowedSurfacesAlignmentParameters * clone(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone all parameters (for update of parameters)
Definition: TwoBowedSurfacesAlignmentParameters.cc:55
TwoBowedSurfacesAlignmentParameters::print
virtual void print() const
print parameters to screen
Definition: TwoBowedSurfacesAlignmentParameters.cc:215
TwoBowedSurfacesAlignmentParameters::dslopeX2
Definition: TwoBowedSurfacesAlignmentParameters.h:62
TwoBowedSurfacesAlignmentParameters::TwoBowedSurfacesAlignmentParameters
TwoBowedSurfacesAlignmentParameters(Alignable *alignable)
Constructor with empty parameters/covariance.
Definition: TwoBowedSurfacesAlignmentParameters.cc:27
TwoBowedSurfacesAlignmentParameters::BowedDerivs
BowedSurfaceAlignmentDerivatives BowedDerivs
Give parameters a name (do not change order, see derivatives(..)!)
Definition: TwoBowedSurfacesAlignmentParameters.h:46
TwoBowedSurfacesAlignmentParameters::dsagittaX2
Definition: TwoBowedSurfacesAlignmentParameters.h:65
TwoBowedSurfacesAlignmentParameters::N_PARAM
Definition: TwoBowedSurfacesAlignmentParameters.h:69
AlgebraicMatrix
CLHEP::HepMatrix AlgebraicMatrix
Definition: AlgebraicObjects.h:14
TwoBowedSurfacesAlignmentParameters::ySplit
double ySplit() const
Definition: TwoBowedSurfacesAlignmentParameters.h:105
BowedSurfaceAlignmentDerivatives::dslopeY
Definition: BowedSurfaceAlignmentDerivatives.h:32
TwoBowedSurfacesAlignmentParameters::dsagittaY1
Definition: TwoBowedSurfacesAlignmentParameters.h:57
TwoBowedSurfacesAlignmentParameters::derivatives
AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &aliDet) const override
Get all derivatives.
Definition: TwoBowedSurfacesAlignmentParameters.cc:75
TwoBowedSurfacesAlignmentParameters::dx1
Definition: TwoBowedSurfacesAlignmentParameters.h:49
AlignmentParameters::alignable
Alignable * alignable(void) const
Get pointer to corresponding alignable.
Definition: AlignmentParameters.cc:104
TwoBowedSurfacesAlignmentParameters::ySplitFromAlignable
double ySplitFromAlignable(const Alignable *ali) const
Definition: TwoBowedSurfacesAlignmentParameters.cc:221
AlignmentParameters::parameters
const AlgebraicVector & parameters(void) const
Get alignment parameters.
Definition: AlignmentParameters.cc:64
BowedSurfaceAlignmentDerivatives::dy
Definition: BowedSurfaceAlignmentDerivatives.h:29
BowedSurfaceAlignmentDerivatives::dsagittaY
Definition: BowedSurfaceAlignmentDerivatives.h:36
TwoBowedSurfacesAlignmentParameters::dz2
Definition: TwoBowedSurfacesAlignmentParameters.h:61
TwoBowedSurfacesAlignmentParameters::dsagittaX1
Definition: TwoBowedSurfacesAlignmentParameters.h:55