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