]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSv11Geometry.h
Bug fix for SDD test beam simulation.
[u/mrichter/AliRoot.git] / ITS / AliITSv11Geometry.h
CommitLineData
172b0d90 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 */
5
6/*
7 $Id$
8 */
9#include <TObject.h>
10class TGeoArb8;
11class TGeoPcon;
12class TGeoTube;
13class TGeoTubeSeg;
14class TGeoConeSeg;
15class TGeoBBox;
16
17class AliITSv11Geometry : public TObject {
18 public:
19 AliITSv11Geometry(){fDebug=kTRUE;};
20 AliITSv11Geometry(Bool_t debug){fDebug=debug;};
21 virtual ~AliITSv11Geometry(){};
22 //
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,
28 Double_t z);
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,
32 Double_t r);
33 static Double_t RmaxFromZpCone(TGeoPcon *p,int ip,Double_t tc,Double_t z,
34 Double_t th=0.0);
35 static Double_t RmaxFromZpCone(TGeoPcon *p,Double_t tc,Double_t z,
36 Double_t th=0.0){
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,
44 Double_t th=0.0);
45 static Double_t RminFromZpCone(TGeoPcon *p,Double_t tc,Double_t z,
46 Double_t th=0.0){
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,
52 Double_t th=0.0);
53 static Double_t ZFromRmaxpCone(TGeoPcon *p,Double_t tc,Double_t r,
54 Double_t th=0.0)
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,
62 Double_t th=0.0);
63 static Double_t ZFromRminpCone(TGeoPcon *p,Double_t tc,Double_t r,
64 Double_t th=0.0)
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,
73 Double_t &r1);
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;}
81
82 private:
83 Bool_t fDebug; //! Debug flag
84 ClassDef(AliITSv11Geometry,1) // Base class for ITS v11 geometry
85};
86
87
88// Units, Convert from k?? to cm,degree,GeV,seconds,
89const Double_t kmm = 0.10; // Convert mm to TGeom's cm.
90const Double_t kcm = 1.00; // Convert cv to TGeom's cm.
91const Double_t kDegree = 1.0; // Convert degrees to TGeom's degrees
92const Double_t kRadian = TMath::DegToRad(); // conver to Radians
93
94#endif