1 #ifndef ALIFMDSUBDETECTOR_H
2 #define ALIFMDSUBDETECTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
8 * See cxx source for full Copyright notice
10 //____________________________________________________________________
12 // Parameters of a sub-detector, and builder of sub detector geometry
22 //__________________________________________________________________
23 class AliFMDSubDetector : public TObject
26 AliFMDSubDetector(Int_t n);
27 virtual ~AliFMDSubDetector() {}
28 virtual void SetupGeometry(Int_t airId, Int_t alId, Int_t cId=0);
29 virtual void Geometry(const char* mother, Int_t pbRotId,
30 Int_t idRotId, Double_t z=0);
31 virtual void SimpleGeometry(TList* nodes,
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);
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; }
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; }
49 void SetAlThickness(Double_t t=.05) { fAlThickness = t; }
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; }
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; }
60 Double_t GetAlThickness() const { return fAlThickness; }
61 Int_t GetId() const { return fId; }
62 Bool_t IsFolder() const { return kTRUE; }
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
69 Double_t fAlThickness; // Thickness of aluminium of honeycomb
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
79 Int_t fRotationId; // The ID of the sub-detector rotation
81 AliFMDRing* fInner; // Reference to inner ring description
82 AliFMDRing* fOuter; // Reference to outer ring description
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
89 ClassDef(AliFMDSubDetector, 1) // FMD Sub detector base class
93 //____________________________________________________________________