]>
Commit | Line | Data |
---|---|---|
2b680d9b | 1 | #ifndef ALIITSV11_H |
2 | #define ALIITSV11_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* | |
7 | $Id$ | |
8 | */ | |
9 | ||
10 | ///////////////////////////////////////////////////////////////////////// | |
11 | // Manager and hits classes for set: ITS version 11, 2003 geometry // | |
12 | ///////////////////////////////////////////////////////////////////////// | |
13 | ||
14 | #include "AliITS.h" | |
541f7ba6 | 15 | class TGeoVolume; |
16 | class TGeoPcon; | |
2b680d9b | 17 | |
18 | class AliITSv11 : public AliITS { | |
19 | ||
20 | public: | |
21 | AliITSv11(); | |
22 | AliITSv11(const char *title); | |
23 | AliITSv11(const AliITSv11 &source); // copy constructor | |
24 | AliITSv11& operator=(const AliITSv11 &source); // assignment operator | |
162acd47 | 25 | virtual ~AliITSv11(); |
2b680d9b | 26 | virtual void BuildGeometry(); |
27 | virtual void CreateGeometry(); | |
28 | virtual void CreateMaterials(); | |
162acd47 | 29 | virtual Int_t IsVersion() const {return 11;} // ITS version number |
2b680d9b | 30 | virtual void Init(); |
31 | virtual void SetDefaults(); | |
32 | virtual void DrawModule(); | |
33 | virtual void StepManager(); | |
34 | virtual void SetWriteDet(Bool_t det=kTRUE){ // set .det write | |
35 | fGeomDetOut = det;} | |
36 | virtual void SetWriteDet(const char *f){ // set write file | |
162acd47 | 37 | strncpy(fWrite,f,60);fGeomDetOut = kTRUE;} |
2b680d9b | 38 | virtual void SetReadDet(Bool_t det=kTRUE){ //set .det read |
39 | fGeomDetIn = det;} | |
40 | virtual void SetReadDet(const char *f){ // set read file | |
162acd47 | 41 | strncpy(fRead,f,60);fGeomDetIn = kTRUE;} |
2b680d9b | 42 | virtual void SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file |
43 | fEuclidOut = euclid;} | |
44 | virtual void SetEUCLIDFileName(const char *f){ // set write file | |
45 | fEuclidGeometry=f;fEuclidOut = kTRUE;} | |
162acd47 | 46 | virtual void SetMinorVersion(Int_t v=00){ // Set minor version |
2b680d9b | 47 | fMinorVersion = v;} |
48 | virtual void SetThicknessDet1(Float_t v=200.){ | |
49 | // Set detector thickness in layer 1 | |
50 | fDet1 = v;} | |
51 | virtual void SetThicknessDet2(Float_t v=200.){ | |
52 | // Set detector thickness in layer 2 | |
53 | fDet2 = v;} | |
54 | virtual void SetThicknessChip1(Float_t v=300.){ | |
55 | // Set chip thickness in layer 1 | |
56 | fChip1 = v;} | |
57 | virtual void SetThicknessChip2(Float_t v=200.){ | |
58 | // Set chip thickness in layer 2 | |
59 | fChip2 = v;} | |
60 | virtual void SetRails(Int_t v=1){ | |
61 | // Set flag for rails | |
62 | fRails = v;} | |
63 | virtual void SetCoolingFluid(Int_t v=1){ | |
64 | // Set flag for cooling fluid | |
65 | fFluid = v;} | |
162acd47 | 66 | virtual Bool_t GetEUCLID(){return fEuclidOut;}// returns value Euclid flag |
2b680d9b | 67 | virtual const char *GetEULIIDFileName() const{ // return .euc file name |
68 | return fEuclidGeometry.Data();} | |
69 | virtual Bool_t GetWriteDet() { // returns value GeomDetOut flag. | |
70 | return fGeomDetOut;} | |
71 | virtual Bool_t GetReadDet() { // returns value GeomDetIn flag. | |
72 | return fGeomDetIn;} | |
73 | virtual char *GetReadDetFileName(){ // return .det read file name | |
162acd47 | 74 | if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;} |
2b680d9b | 75 | virtual char *GetWriteDetFileName(){ // return .det write file name |
162acd47 | 76 | if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;} |
2b680d9b | 77 | virtual Int_t GetMajorVersion(){// return Major Version Number |
78 | return fMajorVersion;} | |
79 | virtual Int_t GetMinorVersion(){// return Major Version Number | |
80 | return fMinorVersion;} | |
81 | virtual Float_t GetThicknessDet1(){ | |
82 | // Get detector thickness in layer 1 | |
83 | return fDet1;} | |
84 | virtual Float_t GetThicknessDet2(){ | |
85 | // Get detector thickness in layer 2 | |
86 | return fDet2;} | |
87 | virtual Float_t GetThicknessChip1(){ | |
88 | // Get chip thickness in layer 1 | |
89 | return fChip1;} | |
90 | virtual Float_t GetThicknessChip2(){ | |
91 | // Get chip thickness in layer 2 | |
92 | return fChip2;} | |
93 | virtual Int_t GetRails(){ | |
94 | // Get flag for rails | |
95 | return fRails;} | |
96 | virtual Int_t GetCoolingFluid(){ | |
97 | // Get flag for cooling fluid | |
98 | return fFluid;} | |
99 | ||
100 | private: | |
101 | void InitAliITSgeom(); | |
d1a22f9a | 102 | virtual void SPDCone(TGeoVolume *Moth); |
103 | virtual void SPDThermalSheald(TGeoVolume *Moth); | |
104 | virtual void SDDCone(TGeoVolume *Moth); | |
105 | virtual void SSDCone(TGeoVolume *Moth); | |
106 | virtual void ServicesCableSupport(TGeoVolume *Moth); | |
541f7ba6 | 107 | Double_t RmaxFrom2Points(TGeoPcon *p,Int_t i1,Int_t i2,Double_t z); |
108 | Double_t RminFrom2Points(TGeoPcon *p,Int_t i1,Int_t i2,Double_t z); | |
fed42993 | 109 | Double_t RFrom2Points(Double_t *p,Double_t *Z,Int_t i1,Int_t i2, |
110 | Double_t z); | |
541f7ba6 | 111 | Double_t Zfrom2MinPoints(TGeoPcon *p,Int_t i1,Int_t i2,Double_t r); |
112 | Double_t Zfrom2MaxPoints(TGeoPcon *p,Int_t i1,Int_t i2,Double_t r); | |
fed42993 | 113 | Double_t Zfrom2Points(Double_t *Z,Double_t *p,Int_t i1,Int_t i2, |
114 | Double_t r); | |
115 | Double_t RmaxFromZpCone(TGeoPcon *p,Double_t tc,Double_t z, | |
116 | Double_t th=0.0); | |
117 | Double_t RmaxFromZpCone(Double_t *Rmax,Double_t *Z,Double_t tc, | |
118 | Double_t z,Double_t th=0.0); | |
119 | Double_t RminFromZpCone(TGeoPcon *p,Double_t tc,Double_t z, | |
120 | Double_t th=0.0); | |
121 | Double_t RminFromZpCone(Double_t *Rmin,Double_t *Z,Double_t tc, | |
122 | Double_t z,Double_t th=0.0); | |
123 | Double_t ZFromRmaxpCone(TGeoPcon *p,Double_t tc,Double_t r, | |
124 | Double_t th=0.0); | |
125 | Double_t ZFromRmaxpCone(Double_t *GetRmax,Double_t *GetZ,Double_t tc, | |
126 | Double_t r,Double_t th=0.0); | |
127 | Double_t ZFromRminpCone(TGeoPcon *p,Double_t tc,Double_t r, | |
128 | Double_t th=0.0); | |
541f7ba6 | 129 | void RadiusOfCurvature(Double_t rc,Double_t theta0,Double_t z0, |
130 | Double_t r0,Double_t theta1,Double_t &z1, | |
131 | Double_t &r1); | |
2b680d9b | 132 | |
133 | // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule. | |
134 | Bool_t fEuclidOut; // Flag to write geometry in euclid format | |
135 | Bool_t fGeomDetOut; // Flag to write .det file out | |
136 | Bool_t fGeomDetIn; // Flag to read .det file or directly from Geat. | |
137 | Int_t fMajorVersion; // Major version number == IsVersion | |
138 | Int_t fMinorVersion; // Minor version number | |
139 | char fEuclidGeomDet[60];// file where detector transormation are define. | |
140 | char fRead[60]; //! file name to read .det file | |
141 | char fWrite[60]; //! file name to write .det file | |
142 | Float_t fDet1; // thickness of detector in SPD layer 1 | |
143 | Float_t fDet2; // thickness of detector in SPD layer 2 | |
144 | Float_t fChip1; // thickness of chip in SPD layer 1 | |
145 | Float_t fChip2; // thickness of chip in SPD layer 2 | |
162acd47 | 146 | Int_t fRails; // switch rails on (=1) and off (=0) |
147 | Int_t fFluid; // switch between water(=1) and freon(=0) | |
2b680d9b | 148 | |
162acd47 | 149 | ClassDef(AliITSv11,1) //Hits manager for set:ITS version 11 |
2b680d9b | 150 | }; |
151 | ||
152 | #endif |