![]() |
|
|||
File indexing completed on 2023-10-25 09:31:54
0001 #ifndef Alignment_CommonAlignmentParametrization_BowedSurfaceAlignmentDerivatives_h 0002 #define Alignment_CommonAlignmentParametrization_BowedSurfaceAlignmentDerivatives_h 0003 0004 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 0005 0006 /// \class BowedSurfaceAlignmentDerivatives 0007 /// 0008 /// Calculates alignment derivatives for a bowed surface using Legendre 0009 /// polynomials for the surface structure (as studied by Claus Kleinwort), 0010 /// i.e. 0011 /// - rigid body part (partially from KarimakiAlignmentDerivatives) 0012 /// - bow in local u, v and mixed term. 0013 /// 0014 /// If a surface is split into two parts at a given ySplit value, 0015 /// rotation axes are re-centred to that part hit by the track 0016 /// (as predicted by TSOS) and the length of the surface is re-scaled. 0017 /// 0018 /// by Gero Flucke, October 2010 0019 /// $Date$ 0020 /// $Revision$ 0021 /// (last update by $Author$) 0022 0023 class TrajectoryStateOnSurface; 0024 0025 class BowedSurfaceAlignmentDerivatives { 0026 public: 0027 enum AlignmentParameterName { 0028 dx = 0, 0029 dy, 0030 dz, 0031 dslopeX, // NOTE: slope(u) -> k*tan(beta), 0032 dslopeY, // slope(v) -> k*tan(alpha) 0033 drotZ, // rotation around w axis, scaled by gammaScale 0034 dsagittaX, 0035 dsagittaXY, 0036 dsagittaY, 0037 N_PARAM 0038 }; 0039 0040 /// Returns 9x2 jacobian matrix 0041 AlgebraicMatrix operator()(const TrajectoryStateOnSurface &tsos, 0042 double uWidth, 0043 double vLength, 0044 bool doSplit = false, 0045 double ySplit = 0.) const; 0046 0047 /// scale to apply to convert drotZ to karimaki-gamma, 0048 /// depending on module width and length (the latter after splitting!) 0049 static double gammaScale(double width, double splitLength); 0050 }; 0051 0052 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |