]>
Commit | Line | Data |
---|---|---|
4347b38f | 1 | // -*- mode: c++ -*- |
2 | #ifndef ALIFMDSUBDETECTOR_H | |
3 | #define ALIFMDSUBDETECTOR_H | |
4 | #ifndef ROOT_TObject | |
5 | # include <TObject.h> | |
6 | #endif | |
7 | #ifndef ALIFMDRING_H | |
8 | # include <AliFMDRing.h> | |
9 | #endif | |
10 | ||
11 | class TNode; | |
12 | class TList; | |
13 | ||
14 | ||
15 | //__________________________________________________________________ | |
16 | struct AliFMDSubDetector : public TObject | |
17 | { | |
18 | protected: | |
19 | Int_t fId; // Detector number | |
20 | Double_t fInnerZ; // Position of outer ring along z | |
21 | Double_t fOuterZ; // Position of outer ring along z | |
22 | Double_t fHoneycombThickness; // Thickness of honeycomb plate | |
23 | Double_t fKaptionThickness; // Thickness of kaption of honeycomb | |
24 | Double_t fInnerHoneyLowR; // Inner radius of inner honeycomb | |
25 | Double_t fInnerHoneyHighR; // Outer radius of inner honeycomb | |
26 | Int_t fInnerHoneyTopId; // Volume ID of top of inner honeycomb | |
27 | Int_t fInnerHoneyBottomId; // Volume ID of bottom of inner honeycomb | |
28 | Double_t fOuterHoneyLowR; // Inner radius of outer honeycomb | |
29 | Double_t fOuterHoneyHighR; // Outer radius of outer honeycomb | |
30 | Int_t fOuterHoneyTopId; // Volume ID of top of outer honeycomb | |
31 | Int_t fOuterHoneyBottomId; // Volume ID of bottom of outer honeycomb | |
32 | ||
33 | Int_t fRotationId; | |
34 | ||
35 | AliFMDRing* fInner; // Reference to inner ring description | |
36 | AliFMDRing* fOuter; // Reference to outer ring description | |
37 | public: | |
38 | AliFMDSubDetector(Int_t n); | |
39 | virtual ~AliFMDSubDetector() {} | |
40 | virtual void SetupGeometry(Int_t airId, Int_t kaptionId); | |
41 | virtual void Geometry(const char* mother, Int_t pbRotId, | |
42 | Int_t idRotId, Double_t z=0); | |
43 | virtual void SimpleGeometry(TList* nodes, | |
44 | TNode* mother, | |
45 | Int_t colour, | |
46 | Double_t zMother); | |
47 | ||
48 | virtual void Gsatt(); | |
49 | virtual void Draw(Option_t* option="BIOL0") const; //*MENU* | |
50 | virtual Bool_t CheckHit(Char_t ring, Int_t module, Double_t x, Double_t y); | |
51 | ||
52 | void SetInner(AliFMDRing* r) { fInner = r; } | |
53 | void SetOuter(AliFMDRing* r) { fOuter = r; } | |
54 | void SetInnerZ(Double_t z) { fInnerZ = z; } | |
55 | void SetOuterZ(Double_t z) { fOuterZ = z; } | |
56 | void SetHoneycombThickness(Double_t t=1) { fHoneycombThickness = t; } | |
57 | void SetInnerHoneyLowR(Double_t r) { fInnerHoneyLowR = r; } | |
58 | void SetInnerHoneyHighR(Double_t r) { fInnerHoneyHighR = r; } | |
59 | void SetOuterHoneyLowR(Double_t r) { fOuterHoneyLowR = r; } | |
60 | void SetOuterHoneyHighR(Double_t r) { fOuterHoneyHighR = r; } | |
61 | void SetKaptionThickness(Double_t t=.1) { fKaptionThickness = t; } | |
62 | ||
63 | Double_t GetInnerZ() const { return fInnerZ; } | |
64 | Double_t GetOuterZ() const { return fOuterZ; } | |
65 | AliFMDRing* GetInner() const { return fInner; } | |
66 | AliFMDRing* GetOuter() const { return fOuter; } | |
67 | Double_t GetHoneycombThickness() const { return fHoneycombThickness; } | |
68 | Double_t GetInnerHoneyLowR() const { return fInnerHoneyLowR; } | |
69 | Double_t GetInnerHoneyHighR() const { return fInnerHoneyHighR; } | |
70 | Double_t GetOuterHoneyLowR() const { return fOuterHoneyLowR; } | |
71 | Double_t GetOuterHoneyHighR() const { return fOuterHoneyHighR; } | |
72 | Double_t GetKaptionThickness() const { return fKaptionThickness; } | |
73 | Int_t GetId() const { return fId; } | |
74 | Bool_t IsFolder() const { return kTRUE; } | |
75 | ||
76 | ClassDef(AliFMDSubDetector, 1) // Sub detectors | |
77 | }; | |
78 | ||
79 | #endif |