fe4da5cc |
1 | #ifndef CASTOR_H |
2 | #define CASTOR_H |
3 | //////////////////////////////////////////////// |
4 | // Manager and hits classes for set:CASTOR // |
5 | //////////////////////////////////////////////// |
6 | |
7 | #include "AliDetector.h" |
8 | #include "AliHit.h" |
9 | |
10 | |
11 | class AliCASTOR : public AliDetector { |
12 | |
13 | public: |
14 | AliCASTOR(); |
15 | AliCASTOR(const char *name, const char *title); |
16 | virtual ~AliCASTOR() {} |
17 | virtual void AddHit(Int_t, Int_t*, Float_t*); |
18 | virtual void BuildGeometry(); |
19 | virtual void CreateGeometry() {} |
20 | virtual void CreateMaterials() {} |
21 | virtual Int_t IsVersion() const =0; |
22 | Int_t DistancetoPrimitive(Int_t px, Int_t py); |
76aa0aaa |
23 | virtual void DrawModule()=0; |
fe4da5cc |
24 | virtual void StepManager()=0; |
25 | |
26 | ClassDef(AliCASTOR,1) // CASTOR detector class |
27 | }; |
28 | |
29 | |
30 | |
31 | class AliCASTORv1 : public AliCASTOR { |
32 | |
33 | private: |
34 | |
35 | Int_t fOdFiber; //Tracking medium of fiber |
36 | Int_t fOdCladding; //Tracking medium of cladding |
37 | Int_t fOdAbsorber; //Tracking medium absorber |
38 | Int_t fOctants; //Number of azimutal sectors |
39 | Int_t fLayersEM; //Number of EM layers |
40 | Int_t fLayersHad; //Number of hadronic layers |
41 | Float_t fPhiOct; //Phi opening of azimutal sectors |
42 | Float_t fRadCore; //Radius of fiber core |
43 | Float_t fRadFactor; //Normalisation factor for radius |
44 | |
45 | public: |
46 | AliCASTORv1(); |
47 | AliCASTORv1(const char *name, const char *title); |
48 | virtual ~AliCASTORv1() {} |
49 | virtual void CreateGeometry(); |
50 | virtual void CreateMaterials(); |
51 | virtual void Init(); |
76aa0aaa |
52 | virtual void DrawModule(); |
fe4da5cc |
53 | virtual Int_t IsVersion() const {return 1;} |
54 | virtual void StepManager(); |
55 | |
56 | ClassDef(AliCASTORv1,1) //Class for CASTOR version 1 |
57 | }; |
58 | |
59 | |
60 | |
61 | //_____________________________________________________________________________ |
62 | |
63 | class AliCASTORhit : public AliHit { |
64 | public: |
65 | Int_t fVolume; //array of volumes |
66 | |
67 | public: |
68 | AliCASTORhit() {} |
69 | AliCASTORhit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits); |
70 | virtual ~AliCASTORhit() {} |
71 | |
72 | ClassDef(AliCASTORhit,1) //Hits for CASTOR |
73 | }; |
74 | |
75 | #endif |