]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | #ifndef ALIPHOS_H |
2 | #define ALIPHOS_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
fe4da5cc | 8 | //////////////////////////////////////////////// |
9 | // Manager and hits classes for PHOS // | |
10 | // Version 2 // | |
11 | // Author M. Volkov, RRC KI // | |
12 | //////////////////////////////////////////////// | |
13 | ||
14 | // --- ROOT system --- | |
15 | #include <TArray.h> | |
16 | #include <TRandom.h> | |
17 | ||
18 | // --- galice header files --- | |
19 | #include "AliDetector.h" | |
20 | #include "AliHit.h" | |
21 | ||
22 | class AliPHOSv2 : public AliDetector{ | |
23 | ||
24 | protected: | |
25 | Float_t fXtlSize[3]; // PWO crystal dimensions | |
26 | Float_t fWrapThickness; // Thickness of Tyvek wrapper | |
27 | Float_t fPINSize[3]; // PIN diode dimensions | |
28 | Float_t fCPVThickness; // CPV thickness | |
29 | Float_t fPHOSFoam[3]; // Outer foam cover dimensions | |
30 | Float_t fPHOStxwall[3]; // Textolit box dimensions | |
31 | Float_t fPHOSAir[3]; // Inner air filled volume dimensions | |
32 | Float_t fRadius[2]; // Distances from IP to outer cover and to Xtal surface | |
33 | Float_t fPHOSextra[10]; // Assorted geometrical parameters | |
34 | Float_t fNphi; // Number of crystal units in X (phi) direction | |
35 | Float_t fNz; // Number of crystal units in Z direction | |
36 | Float_t fNModules; // Number of modules constituing PHOS | |
37 | Float_t fPHOSAngle[4]; // Position angles of modules | |
38 | ||
39 | public: | |
40 | AliPHOSv2(void); | |
41 | AliPHOSv2(const char *name, const char *title=""); | |
42 | virtual ~AliPHOSv2(void); | |
43 | ||
44 | virtual Int_t IsVersion(void) const {return 2;} | |
45 | ||
46 | virtual void DefPars(void); | |
47 | ||
48 | virtual void BuildGeometry(void); | |
49 | virtual void CreateGeometry(void); | |
50 | virtual void CreateMaterials(void); | |
51 | ||
52 | virtual void Init(void); | |
53 | ||
54 | virtual void StepManager(void); | |
55 | ||
56 | virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits); | |
57 | ||
58 | virtual Float_t GetCrystalSize(Int_t n) const {return fXtlSize[n];} | |
59 | virtual Float_t GetWrapThickness(void) const {return fWrapThickness;} | |
60 | virtual Float_t GetPINSize(Int_t n) const {return fPINSize[n];} | |
61 | virtual Float_t GetCPVThickness(void) const {return fCPVThickness;} | |
62 | virtual Float_t GetPHOSFoam(Int_t n) const {return fPHOSFoam[n];} | |
63 | virtual Float_t GetPHOStxwall(Int_t n) const {return fPHOStxwall[n];} | |
64 | virtual Float_t GetPHOSAir(Int_t n) const {return fPHOSAir[n];} | |
65 | virtual Float_t GetRadius(Int_t n) const {return fRadius[n];} | |
66 | virtual Float_t GetPHOSextra(Int_t n) const {return fPHOSextra[n];} | |
67 | virtual Float_t GetNphi(void) const {return fNphi;} | |
68 | virtual Float_t GetNz(void) const {return fNz;} | |
69 | virtual Float_t GetNModules(void) const {return fNModules;} | |
70 | virtual Float_t &GetModuleAngle(Int_t n) {return fPHOSAngle[n];} | |
71 | ||
72 | ClassDef(AliPHOSv2,1) // Hits manager for PHOS, version 2 | |
73 | ||
74 | }; | |
75 | ||
76 | ////////////////////////////////////////////////////////////////////////////// | |
77 | ||
78 | class AliPHOShitv2 : public AliHit{ | |
79 | ||
80 | protected: | |
81 | Int_t fVolume[4]; //array of volumes. This is not GEANT NUMBV(), it is (BOX,LAYER,ROW,COLUMN) array. | |
82 | Float_t fELOS; //Energy deposited | |
83 | ||
84 | public: | |
85 | AliPHOShitv2(void) {;} | |
86 | AliPHOShitv2(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits); | |
87 | AliPHOShitv2(AliPHOShitv2 const &rValue){*this=rValue;} | |
88 | virtual ~AliPHOShitv2(void) {;} | |
89 | ||
90 | Int_t GetVolume(Int_t i) const {return fVolume[i];} | |
91 | Float_t GetEnergy(void) const {return fELOS;} | |
92 | ||
93 | Bool_t operator==(AliPHOShitv2 const &rValue) const; | |
94 | AliPHOShitv2 const operator+(AliPHOShitv2 const &rValue) const; | |
95 | ||
96 | ClassDef(AliPHOShitv2,1) // Hits object for PHOS | |
97 | ||
98 | }; | |
99 | ||
100 | ////////////////////////////////////////////////////////////////////////////// | |
101 | ||
102 | #endif //#ifndef ALIPHOS_H |