Added docs and fixed a bug
[u/mrichter/AliRoot.git] / FMD / AliFMDSubDetector.h
CommitLineData
4347b38f 1#ifndef ALIFMDSUBDETECTOR_H
2#define ALIFMDSUBDETECTOR_H
0d0e6995 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7 *
8 * See cxx source for full Copyright notice
9 */
42403906 10//____________________________________________________________________
11//
12// Parameters of a sub-detector, and builder of sub detector geometry
13//
4347b38f 14#ifndef ROOT_TObject
15# include <TObject.h>
16#endif
4347b38f 17class TNode;
18class TList;
0d0e6995 19class AliFMDRing;
4347b38f 20
21
22//__________________________________________________________________
42403906 23class AliFMDSubDetector : public TObject
4347b38f 24{
4347b38f 25public:
26 AliFMDSubDetector(Int_t n);
27 virtual ~AliFMDSubDetector() {}
7684b53c 28 virtual void SetupGeometry(Int_t airId, Int_t alId, Int_t cId=0);
4347b38f 29 virtual void Geometry(const char* mother, Int_t pbRotId,
30 Int_t idRotId, Double_t z=0);
31 virtual void SimpleGeometry(TList* nodes,
32 TNode* mother,
33 Int_t colour,
34 Double_t zMother);
35
36 virtual void Gsatt();
37 virtual void Draw(Option_t* option="BIOL0") const; //*MENU*
38 virtual Bool_t CheckHit(Char_t ring, Int_t module, Double_t x, Double_t y);
39
40 void SetInner(AliFMDRing* r) { fInner = r; }
41 void SetOuter(AliFMDRing* r) { fOuter = r; }
42 void SetInnerZ(Double_t z) { fInnerZ = z; }
43 void SetOuterZ(Double_t z) { fOuterZ = z; }
44 void SetHoneycombThickness(Double_t t=1) { fHoneycombThickness = t; }
0d0e6995 45 void SetInnerHoneyLowR(Double_t r) { fInnerHoneyLowR = r; }
46 void SetInnerHoneyHighR(Double_t r) { fInnerHoneyHighR = r; }
47 void SetOuterHoneyLowR(Double_t r) { fOuterHoneyLowR = r; }
48 void SetOuterHoneyHighR(Double_t r) { fOuterHoneyHighR = r; }
7684b53c 49 void SetAlThickness(Double_t t=.05) { fAlThickness = t; }
4347b38f 50
51 Double_t GetInnerZ() const { return fInnerZ; }
52 Double_t GetOuterZ() const { return fOuterZ; }
53 AliFMDRing* GetInner() const { return fInner; }
54 AliFMDRing* GetOuter() const { return fOuter; }
55 Double_t GetHoneycombThickness() const { return fHoneycombThickness; }
0d0e6995 56 Double_t GetInnerHoneyLowR() const { return fInnerHoneyLowR; }
57 Double_t GetInnerHoneyHighR() const { return fInnerHoneyHighR; }
58 Double_t GetOuterHoneyLowR() const { return fOuterHoneyLowR; }
59 Double_t GetOuterHoneyHighR() const { return fOuterHoneyHighR; }
7684b53c 60 Double_t GetAlThickness() const { return fAlThickness; }
4347b38f 61 Int_t GetId() const { return fId; }
62 Bool_t IsFolder() const { return kTRUE; }
63
42403906 64protected:
65 Int_t fId; // Detector number
66 Double_t fInnerZ; // Position of outer ring along z
67 Double_t fOuterZ; // Position of outer ring along z
68 Double_t fHoneycombThickness; // Thickness of honeycomb plate
7684b53c 69 Double_t fAlThickness; // Thickness of aluminium of honeycomb
42403906 70 Double_t fInnerHoneyLowR; // Inner radius of inner honeycomb
71 Double_t fInnerHoneyHighR; // Outer radius of inner honeycomb
72 Int_t fInnerHoneyTopId; // Volume ID of top of inner honeycomb
73 Int_t fInnerHoneyBottomId; // Volume ID of bottom of inner honeycomb
74 Double_t fOuterHoneyLowR; // Inner radius of outer honeycomb
75 Double_t fOuterHoneyHighR; // Outer radius of outer honeycomb
76 Int_t fOuterHoneyTopId; // Volume ID of top of outer honeycomb
77 Int_t fOuterHoneyBottomId; // Volume ID of bottom of outer honeycomb
78
79 Int_t fRotationId; // The ID of the sub-detector rotation
80
81 AliFMDRing* fInner; // Reference to inner ring description
82 AliFMDRing* fOuter; // Reference to outer ring description
83
7684b53c 84 static const Char_t* fgkHoneyTopFormat; // Format of honeycomb name
85 static const Char_t* fgkHoneyBottomFormat; // Format of honeycomb name
86 static const Char_t* fgkHoneyTopInnerFormat; // Format of honeycomb name
87 static const Char_t* fgkHoneyBottomInnerFormat; // Format of honeycomb name
88
0d0e6995 89 ClassDef(AliFMDSubDetector, 1) // FMD Sub detector base class
4347b38f 90};
91
92#endif
0d0e6995 93//____________________________________________________________________
94//
95// Local Variables:
96// mode: C++
97// End:
98//
99// EOF
100//