Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:34:29

0001 #ifndef Alignment_CommonAlignment_RigidBodyAlignmentParameters4D_h
0002 #define Alignment_CommonAlignment_RigidBodyAlignmentParameters4D_h
0003 
0004 //#include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
0005 #include "Alignment/CommonAlignmentParametrization/interface/RigidBodyAlignmentParameters.h"
0006 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0007 
0008 /// \class RigidBodyAlignmentParameters
0009 ///
0010 /// Concrete class for alignment parameters and associated quantities
0011 /// [derived from AlignmentParameters]. The number of parameters
0012 /// N_PARAM is fixed to 6 (3 translations + 3 rotations)
0013 ///
0014 ///  $Date: 2008/09/02 15:08:12 $
0015 ///  $Revision: 1.13 $
0016 /// (last update by $Author: flucke $)
0017 
0018 class Alignable;
0019 class AlignableDetOrUnitPtr;
0020 class TrajectoryStateOnSurface;
0021 
0022 class RigidBodyAlignmentParameters4D : public RigidBodyAlignmentParameters {
0023 public:
0024   /// Constructor with empty parameters/covariance (if calcMis = false) or with
0025   /// parameters (no covariance) created from current (mis-)placement of
0026   /// alignable (if calcMis = true).
0027   RigidBodyAlignmentParameters4D(Alignable *alignable, bool calcMis)
0028       : RigidBodyAlignmentParameters(alignable, calcMis) {}
0029 
0030   /// Constructor for full set of parameters
0031   RigidBodyAlignmentParameters4D(Alignable *alignable,
0032                                  const AlgebraicVector &parameters,
0033                                  const AlgebraicSymMatrix &covMatrix)
0034       : RigidBodyAlignmentParameters(alignable, parameters, covMatrix) {}
0035 
0036   /// Constructor for selection
0037   RigidBodyAlignmentParameters4D(Alignable *alignable,
0038                                  const AlgebraicVector &parameters,
0039                                  const AlgebraicSymMatrix &covMatrix,
0040                                  const std::vector<bool> &selection)
0041       : RigidBodyAlignmentParameters(alignable, parameters, covMatrix, selection) {}
0042 
0043   /// Destructor
0044   ~RigidBodyAlignmentParameters4D() override {}
0045 
0046   int type() const override;
0047 
0048   /// Get all derivatives
0049   AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &) const override;
0050 
0051   /// Clone all parameters (for update of parameters)
0052   RigidBodyAlignmentParameters4D *clone(const AlgebraicVector &parameters,
0053                                         const AlgebraicSymMatrix &covMatrix) const override;
0054 
0055   /// Clone selected parameters (for update of parameters)
0056   RigidBodyAlignmentParameters4D *cloneFromSelected(const AlgebraicVector &parameters,
0057                                                     const AlgebraicSymMatrix &covMatrix) const override;
0058 };
0059 
0060 #endif