Adding more bins in QA (Alis)
[u/mrichter/AliRoot.git] / MUON / AliMUONSurveyUtil.h
1 #ifndef ALIMUONSURVEYUTIL_H
2 #define ALIMUONSURVEYUTIL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /// \ingroup geometry 
7 /// \class AliMUONSurveyUtil
8 /// \brief Utility class for survey of muon spectrometer
9 //
10 // Authors: Javier Castillo
11
12 class AliMUONGeometryTransformer;
13 class TGeoCombiTrans;
14 class TClonesArray;
15
16 class AliMUONSurveyUtil:public TObject
17 {
18
19  public:
20   /// Destructor
21   virtual ~AliMUONSurveyUtil();
22
23   static AliMUONSurveyUtil *Instance();
24
25   static Bool_t MatrixToAngles(const Double_t *rot, Double_t *angles);
26   static void AnglesToMatrix(const Double_t *angles, Double_t *rot);
27
28   Double_t XpCenter(const Double_t *x, const Double_t *par) const;
29   Double_t XnCenter(const Double_t *x, const Double_t *par) const;
30   Double_t YpCenter(const Double_t *x, const Double_t *par) const;
31   Double_t YnCenter(const Double_t *x, const Double_t *par) const;
32   Double_t ZpCenter(const Double_t *x, const Double_t *par) const;
33   Double_t ZnCenter(const Double_t *x, const Double_t *par) const;
34   Double_t PhiXpp(const Double_t *x, const Double_t *par) const;
35   Double_t PhiXpn(const Double_t *x, const Double_t *par) const;
36   Double_t PhiXnp(const Double_t *x, const Double_t *par) const;
37   Double_t PhiXnn(const Double_t *x, const Double_t *par) const;
38   Double_t PhiYpp(const Double_t *x, const Double_t *par) const;
39   Double_t PhiYpn(const Double_t *x, const Double_t *par) const;
40   Double_t PhiYnp(const Double_t *x, const Double_t *par) const;
41   Double_t PhiYnn(const Double_t *x, const Double_t *par) const;
42   
43   static AliMUONGeometryTransformer *ReAlign(const AliMUONGeometryTransformer * transformer, 
44                                              int rMod, int rNDetElems, int rDetElemToDetElemId[], TGeoCombiTrans deltaDetElemTransf[], Bool_t verbose);
45
46   static  void SetAlignmentResolution(const TClonesArray* misAlignArray, Int_t chId, Double_t chResX, Double_t chResY, Double_t deResX, Double_t deResY);
47   
48  protected:   
49   /// Default constructor
50   AliMUONSurveyUtil() : TObject() {}
51
52  private:
53   /// Not implemented
54   AliMUONSurveyUtil(const AliMUONSurveyUtil& right);
55   /// Not implemented
56   AliMUONSurveyUtil&  operator = (const AliMUONSurveyUtil& right);
57
58
59   static int fgNDetElemCh[10];  ///< Numbers of detection elements per chamber
60   static AliMUONSurveyUtil *fgInstance;   ///< Singleton instance 
61
62 ClassDef(AliMUONSurveyUtil, 0) //Class for alignment of muon spectrometer
63 };
64
65 #endif