Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:40:44

0001 #ifndef Alignment_TrackerAlignment_AlignableSiStripDet_H
0002 #define Alignment_TrackerAlignment_AlignableSiStripDet_H
0003 
0004 /** \class AlignableSiStripDet
0005  *  An alignable for GluedDets in Strip tracker, 
0006  *  taking care of consistency with AlignableDet components.
0007  *
0008  *  First implementation April/May 2008
0009  *  \author Gero Flucke, Hamburg University
0010  *  $Date: 2008/07/13 12:26:41 $
0011  *  $Revision: 1.4 $
0012  */
0013 
0014 #include "Alignment/CommonAlignment/interface/AlignableDet.h"
0015 
0016 #include <vector>
0017 
0018 class GluedGeomDet;
0019 class AlignTransformErrorExtended;
0020 class Bounds;
0021 class StripGeomDetType;
0022 
0023 class AlignableSiStripDet : public AlignableDet {
0024 public:
0025   /// Constructor
0026   AlignableSiStripDet(const GluedGeomDet *geomDet);
0027   /// reduntantly make destructor virtual
0028   ~AlignableSiStripDet() override;
0029 
0030   /// first consistify with component detunits, then call method from AlignableDet
0031   Alignments *alignments() const override;
0032 
0033 private:
0034   /// make alignments consistent with daughters
0035   void consistifyAlignments();
0036 
0037   //   void dumpCompareEuler(const RotationType &oldRot, const RotationType &newRot) const;
0038 
0039   /// The following four members are needed to recalculate the surface in consistifyAlignments,
0040   /// to get rid of a GluedDet* which is disregarded since it could become an invalid pointer
0041   /// in the next event (theoretically...). But this solution is not better, the references for the
0042   /// types would become invalid together with the GeomDets they are taken from.
0043   /// StripGeomDetType has neither clone() and nor a decent copy constructor, so I cannot go the
0044   /// the same way as for the bounds. Sigh!
0045   const Bounds *theMonoBounds;
0046   const Bounds *theStereoBounds;
0047   const StripGeomDetType &theMonoType;
0048   const StripGeomDetType &theStereoType;
0049 };
0050 
0051 #endif