1 #ifndef ALIITSV11GEOMETRY_H
2 #define ALIITSV11GEOMETRY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
17 class AliITSv11Geometry : public TObject {
19 AliITSv11Geometry(){fDebug=kTRUE;};
20 AliITSv11Geometry(Bool_t debug){fDebug=debug;};
21 virtual ~AliITSv11Geometry(){};
23 void SetDebug(){fDebug=kTRUE;}
24 void SetNoDebug(){fDebug=kFALSE;}
25 static Double_t RmaxFrom2Points(TGeoPcon *p,Int_t i1,Int_t i2,Double_t z);
26 static Double_t RminFrom2Points(TGeoPcon *p,Int_t i1,Int_t i2,Double_t z);
27 static Double_t RFrom2Points(Double_t *p,Double_t *Z,Int_t i1,Int_t i2,
29 static Double_t Zfrom2MinPoints(TGeoPcon *p,Int_t i1,Int_t i2,Double_t r);
30 static Double_t Zfrom2MaxPoints(TGeoPcon *p,Int_t i1,Int_t i2,Double_t r);
31 static Double_t Zfrom2Points(Double_t *Z,Double_t *p,Int_t i1,Int_t i2,
33 static Double_t RmaxFromZpCone(TGeoPcon *p,int ip,Double_t tc,Double_t z,
35 static Double_t RmaxFromZpCone(TGeoPcon *p,Double_t tc,Double_t z,
37 return RmaxFromZpCone(p,4,tc,z,th);};
38 static Double_t RFromZpCone(Double_t *Rmax,Double_t *Z,int ip,Double_t tc,
39 Double_t z,Double_t th=0.0);
40 static Double_t RmaxFromZpCone(Double_t *Rmax,Double_t *Z,Double_t tc,
41 Double_t z,Double_t th=0.0){
42 return RFromZpCone(Rmax,Z,4,tc,z,th);};
43 static Double_t RminFromZpCone(TGeoPcon *p,Int_t ip,Double_t tc,Double_t z,
45 static Double_t RminFromZpCone(TGeoPcon *p,Double_t tc,Double_t z,
47 return RminFromZpCone(p,3,tc,z,th);};
48 static Double_t RminFromZpCone(Double_t *Rmin,Double_t *Z,Double_t tc,
49 Double_t z,Double_t th=0.0){
50 return RFromZpCone(Rmin,Z,3,tc,z,th);};
51 static Double_t ZFromRmaxpCone(TGeoPcon *p,int ip,Double_t tc,Double_t r,
53 static Double_t ZFromRmaxpCone(TGeoPcon *p,Double_t tc,Double_t r,
55 {return ZFromRmaxpCone(p,4,tc,r,th);};
56 static Double_t ZFromRmaxpCone(Double_t *GetRmax,Double_t *GetZ,Int_t ip,
57 Double_t tc,Double_t r,Double_t th=0.0);
58 static Double_t ZFromRmaxpCone(Double_t *GetRmax,Double_t *GetZ,
59 Double_t tc,Double_t r,Double_t th=0.0){
60 return ZFromRmaxpCone(GetRmax,GetZ,4,tc,r,th);};
61 static Double_t ZFromRminpCone(TGeoPcon *p,int ip,Double_t tc,Double_t r,
63 static Double_t ZFromRminpCone(TGeoPcon *p,Double_t tc,Double_t r,
65 {return ZFromRminpCone(p,3,tc,r,th);};
66 static void InsidePoint(TGeoPcon *p,Int_t i1,Int_t i2,Int_t i3,
67 Double_t Cthick,TGeoPcon *q,Int_t j1,Bool_t max);
68 static void InsidePoint(Double_t x0,Double_t y0,Double_t x1,Double_t y1,
69 Double_t x2,Double_t y2,Double_t c,
70 Double_t &x,Double_t &y);
71 static void RadiusOfCurvature(Double_t rc,Double_t theta0,Double_t z0,
72 Double_t r0,Double_t theta1,Double_t &z1,
74 void printArb8(TGeoArb8 *A);
75 void printPcon(TGeoPcon *A);
76 void printTube(TGeoTube *A);
77 void printTubeSeg(TGeoTubeSeg *A);
78 void printConeSeg(TGeoConeSeg *A);
79 void printBBox(TGeoBBox *A);
80 Bool_t GetDebug(){return fDebug;}
83 Bool_t fDebug; //! Debug flag
84 ClassDef(AliITSv11Geometry,1) // Base class for ITS v11 geometry
88 // Units, Convert from k?? to cm,degree,GeV,seconds,
89 const Double_t kmm = 0.10; // Convert mm to TGeom's cm.
90 const Double_t kcm = 1.00; // Convert cv to TGeom's cm.
91 const Double_t kDegree = 1.0; // Convert degrees to TGeom's degrees
92 const Double_t kRadian = TMath::DegToRad(); // conver to Radians