]>
Commit | Line | Data |
---|---|---|
ba8b0266 | 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 | ||
57c80a52 | 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; | |
ba8b0266 | 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: | |
57c80a52 | 53 | /// Not implemented |
54 | AliMUONSurveyUtil(const AliMUONSurveyUtil& right); | |
55 | /// Not implemented | |
56 | AliMUONSurveyUtil& operator = (const AliMUONSurveyUtil& right); | |
57 | ||
58 | ||
625f657d | 59 | static int fgNDetElemCh[10]; ///< Numbers of detection elements per chamber |
60 | static AliMUONSurveyUtil *fgInstance; ///< Singleton instance | |
ba8b0266 | 61 | |
62 | ClassDef(AliMUONSurveyUtil, 0) //Class for alignment of muon spectrometer | |
63 | }; | |
64 | ||
65 | #endif |