]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDGeometry.h
Migrated to a geometry implemented via AliFMDGeometry (derives from
[u/mrichter/AliRoot.git] / FMD / AliFMDGeometry.h
CommitLineData
1a1fdef7 1#ifndef ALIFMDGEOMETRY_H
2#define ALIFMDGEOMETRY_H
3//____________________________________________________________________
4//
5// $Id$
6//
7#ifndef ALIGEOMETRY_H
8# include <AliGeometry.h>
9#endif
10#ifndef ROOT_TObjArray
11# include <TObjArray.h>
12#endif
13class TVector3;
14class TMatrix;
15class TParticle;
16class AliRecPoint;
17class AliFMDRing;
18class AliFMDDetector;
19class AliFMD1;
20class AliFMD2;
21class AliFMD3;
22
23
24//__________________________________________________________________
25/** Singleton object of FMD geometry descriptions and parameters.
26 */
27class AliFMDGeometry : public AliGeometry
28{
29public:
30 static AliFMDGeometry* Instance();
31 virtual void Init();
32 AliFMDRing* GetInner() const { return fInner; }
33 AliFMDRing* GetOuter() const { return fOuter; }
34 AliFMD1* GetFMD1() const { return (fUseFMD1 ? fFMD1 : 0); }
35 AliFMD2* GetFMD2() const { return (fUseFMD2 ? fFMD2 : 0); }
36 AliFMD3* GetFMD3() const { return (fUseFMD3 ? fFMD3 : 0); }
37 AliFMDDetector* GetDetector(Int_t i) const;
38 AliFMDRing* GetRing(Char_t i) const;
39 void Disable(Int_t i);
40 void Enable(Int_t i);
41 Double_t GetSiDensity() const { return 2.33; }
42 void Detector2XYZ(UShort_t detector,
43 Char_t ring, UShort_t sector, UShort_t strip,
44 Double_t& x, Double_t& y, Double_t& z) const;
45
46 // AliGeometry member functions
47 virtual void GetGlobal(const AliRecPoint* p, TVector3& pos,
48 TMatrix& mat) const;
49 virtual void GetGlobal(const AliRecPoint* p, TVector3& pos) const;
50 virtual Bool_t Impact(const TParticle* particle) const;
51protected:
52 Bool_t fIsInitialized;
53 AliFMDRing* fInner; // Inner ring geometry information
54 AliFMDRing* fOuter; // Outer ring geometry information
55 AliFMD1* fFMD1; // FMD1 geometry information
56 AliFMD2* fFMD2; // FMD2 geometry information
57 AliFMD3* fFMD3; // FMD3 geometry information
58 Bool_t fUseFMD1; // Wheter to Use FMD1 or not
59 Bool_t fUseFMD2; // Wheter to Use FMD2 or not
60 Bool_t fUseFMD3; // Wheter to Use FMD3 or not
61 static AliFMDGeometry* fgInstance;
62 AliFMDGeometry();
63 virtual ~AliFMDGeometry() {}
64
65 ClassDef(AliFMDGeometry,1); //
66};
67
68
69#endif
70//____________________________________________________________________
71//
72// Local Variables:
73// mode: C++
74// End:
75//
76// EOF
77//