]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSv11.h
Tests and example macros working with ESD (Yu.Belikov)
[u/mrichter/AliRoot.git] / ITS / AliITSv11.h
CommitLineData
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 15class TGeoVolume;
16class TGeoPcon;
2b680d9b 17
18class 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