LCOV - code coverage report
Current view: top level - TPC/TPCbase - AliTPCCalibGlobalMisalignment.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 18 5.6 %
Date: 2016-06-14 17:26:59 Functions: 2 22 9.1 %

          Line data    Source code
       1             : #ifndef ALI_TPC_CALIB_GLOBAL_MISALIGNMENT_H
       2             : #define ALI_TPC_CALIB_GLOBAL_MISALIGNMENT_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /// \class AliTPCCalibGlobalMisalignment
       8             : ///
       9             : /// AliTPCCalibGlobalMisalignment class
      10             : /// The class calculates the space point distortions due to simple
      11             : /// misalignments like shifts in caresian coordinates or a rotation
      12             : /// of the TPC read out planes (A and C side)
      13             : ///
      14             : /// \author Stefan Rossegger, Jim Thomas, Magnus Mager
      15             : /// \date 06/05/2010
      16             : 
      17             : #include "AliTPCCorrection.h"
      18             : #include "TVectorD.h"
      19             : class TGeoMatrix;
      20             : class TObjArray;
      21             : class TTreeSRedirector;
      22             : 
      23             : 
      24             : class AliTPCCalibGlobalMisalignment : public AliTPCCorrection {
      25             : public:
      26             :   AliTPCCalibGlobalMisalignment();
      27             :   virtual ~AliTPCCalibGlobalMisalignment();
      28             :   virtual Bool_t AddCorrectionCompact(AliTPCCorrection* corr, Double_t weight);
      29             :   // initialization and update functions
      30             :   //  virtual void Init();
      31             :   //  virtual void Update(const TTimeStamp &timeStamp);
      32             :   void AddAlign(const  AliTPCCalibGlobalMisalignment & add);
      33             :   // setters and getters for misalignments
      34           0 :   void SetXShift(Float_t xShift) {fXShift=xShift;}
      35           0 :   void SetYShift(Float_t yShift) {fYShift=yShift;}
      36           0 :   void SetZShift(Float_t zShift) {fZShift=zShift;}
      37           0 :   void SetRotPhiA(Float_t rotPhiA) {fRotPhiA=rotPhiA;}
      38           0 :   void SetRotPhiC(Float_t rotPhiC) {fRotPhiC=rotPhiC;}
      39           0 :   void SetdRPhiOffsetA(Float_t dRPhiOffsetA) {fdRPhiOffsetA=dRPhiOffsetA;}
      40           0 :   void SetdRPhiOffsetC(Float_t dRPhiOffsetC) {fdRPhiOffsetC=dRPhiOffsetC;}
      41             :   
      42           0 :   Float_t GetXShift() const {return fXShift;}
      43           0 :   Float_t GetYShift() const {return fYShift;}
      44           0 :   Float_t GetZShift() const {return fZShift;}
      45           0 :   Float_t GetRotPhiA() const {return fRotPhiA;}
      46           0 :   Float_t GetRotPhiC() const {return fRotPhiC;}
      47           0 :   Float_t GetdRPhiOffsetA() const {return fdRPhiOffsetA;}
      48           0 :   Float_t GetdRPhiOffsetC() const {return fdRPhiOffsetC;}
      49             :   virtual void Print(Option_t* option="") const ;
      50             :   void SetQuadranAlign(const TVectorD *quadrantQ0, const TVectorD *quadrantRQ0, const TVectorD *quadrantQ1,const TVectorD *quadrantRQ1,  const TVectorD *quadrantQ2,  const TVectorD *quadrantRQ2);
      51             :   // 
      52             :   // Alignment manipulation using TGeoMatrix
      53             :   
      54             :   void SetAlignGlobal(const TGeoMatrix * matrixGlobal);
      55             :   void SetAlignGlobalDelta(const TGeoMatrix * matrixGlobalDelta);
      56             :   void SetAlignSectors(const TObjArray *arraySector);
      57           0 :   TGeoMatrix* GetAlignGlobal() const  {return fMatrixGlobal;}
      58           0 :   TGeoMatrix* GetAlignGlobalDelta() const  {return fMatrixGlobalDelta;}
      59           0 :   TObjArray * GetAlignSectors() const {return fArraySector;}
      60             :   //
      61             :   static AliTPCCalibGlobalMisalignment*  CreateOCDBAlign();
      62             :   static AliTPCCalibGlobalMisalignment*  CreateMeanAlign(const AliTPCCalibGlobalMisalignment *alignIn);
      63             :   static void DumpAlignment( AliTPCCalibGlobalMisalignment* align, TTreeSRedirector *pcstream, const char *name);
      64             :   //
      65             : protected:
      66             :   virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
      67             : 
      68             : private:
      69             :   Float_t fXShift;               ///< Shift in global X [cm]
      70             :   Float_t fYShift;               ///< Shift in global Y [cm]
      71             :   Float_t fZShift;               ///< Shift in global Z [cm]
      72             : 
      73             :   Float_t fRotPhiA;      ///< simple rotation of A side read-out plane around the Z axis [rad]
      74             :   Float_t fRotPhiC;      ///< simple rotation of C side read-out plane around the Z axis [rad]
      75             :   Float_t fdRPhiOffsetA;  ///< add a constant offset of dRPhi (or local Y) in [cm]: purely for calibration purposes!
      76             :   Float_t fdRPhiOffsetC;  ///< add a constant offset of dRPhi (or local Y) in [cm]: purely for calibration purposes!
      77             :   //
      78             :   // Quadrant alignment
      79             :   //
      80             :   TVectorD *fQuadrantQ0;   ///< OROC medium pads -delta ly+ - ly - shift (cm)
      81             :   TVectorD *fQuadrantRQ0;  ///< OROC medium pads -delta ly+ - ly - rotation (rad)
      82             :   TVectorD *fQuadrantQ1;   ///< OROC long   pads -delta ly+ - ly - shift
      83             :   TVectorD *fQuadrantQ2;   ///< OROC long   pads -shift
      84             :   TVectorD *fQuadrantRQ1;  ///< OROC long   pads -delta ly+ - ly - rotation
      85             :   TVectorD *fQuadrantRQ2;  ///< OROC long   pads -rotation
      86             :   // 
      87             :   //
      88             :   // Global alignment - use native ROOT representation
      89             :   //
      90             :   TGeoMatrix * fMatrixGlobal; ///< global Alignment common
      91             :   TGeoMatrix * fMatrixGlobalDelta; ///< global Alignment common A side-C side
      92             :   TObjArray   * fArraySector; ///< local Alignmnet Sector
      93             :   //
      94             :   AliTPCCalibGlobalMisalignment& operator=(const AliTPCCalibGlobalMisalignment&);
      95             :   AliTPCCalibGlobalMisalignment(const AliTPCCalibGlobalMisalignment&);
      96             :   /// \cond CLASSIMP
      97          42 :   ClassDef(AliTPCCalibGlobalMisalignment,3);
      98             :   /// \endcond
      99             : };
     100             : 
     101             : #endif

Generated by: LCOV version 1.11