Line data Source code
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 0 : 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 18 : ClassDef(AliMUONSurveyUtil, 0) //Class for alignment of muon spectrometer
63 : };
64 :
65 : #endif
|