1 #ifndef ALIITSGEOMETRYSSDCONE_H
2 #define ALIITSGEOMETRYSSDCONE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
11 ITS SSD Cone Geometry. Version 11
13 #include "AliITSBaseGeometry.h"
17 class AliITSGeometrySSDCone : public AliITSBaseGeometry {
19 AliITSGeometrySSDCone();
20 AliITSGeometrySSDCone(AliITS *its,TVector3 &tran,const char *moth,
22 virtual ~AliITSGeometrySSDCone(){};
23 void CreateG3Geometry(const char *moth,TVector3 &trans);
24 void PositionG3Geometry(AliITSBaseVolParams &moth,Int_t cn,
25 TVector3 &t,Int_t irot);
26 void CreateG3Materials();
27 void BuildDisplayGeometry();
28 void Print(ostream *os); // Prints out the contenes of this class
29 void Read(istream *is); // Reads in the contenst of this class
31 private: // functions Require at parts of Volume A to be already defined.
32 // Retruns the value of Rmax corresponding to point z alone the line
33 // defined by the two points p.Rmax(i1),p.ZAt(i1) and p.Rmax(i2),
35 Double_t RmaxFrom2Points(AliITSPConeData &p,Int_t i1,Int_t i2,Double_t z)
36 {return p.Rmax(i2)+(p.Rmax(i1)-p.Rmax(i2))*(z-p.ZAt(i2))/
37 (p.ZAt(i1)-p.ZAt(i2));}
38 // Retruns the value of Rmin corresponding to point z alone the line
39 // defined by the two points p.Rmin(i1),p.ZAt(i1) and p.Rmin(i2),
41 Double_t RminFrom2Points(AliITSPConeData &p,Int_t i1,Int_t i2,Double_t z)
42 {return p.Rmin(i2)+(p.Rmin(i1)-p.Rmin(i2))*(z-p.ZAt(i2))/
44 (p.ZAt(i1)-p.ZAt(i2));}
45 // Retruns the value of Z corresponding to point R alone the line
46 // defined by the two points p.Rmin(i1),p.ZAt(i1) and p.Rmin(i2),p.ZAt(i2)
47 Double_t Zfrom2MinPoints(AliITSPConeData &p,Int_t i1,Int_t i2,Double_t r)
48 {return p.ZAt(i2)+(p.ZAt(i1)-p.ZAt(i2))*(r-p.Rmin(i2))/
49 (p.Rmin(i1)-p.Rmin(i2));}
50 // Retruns the value of Z corresponding to point R alone the line
51 // defined by the two points p.Rmax(i1),p.ZAt(i1) and p.Rmax(i2),p.ZAt(i2)
52 Double_t Zfrom2MaxPoints(AliITSPConeData &p,Int_t i1,Int_t i2,Double_t r)
53 {return p.ZAt(i2)+(p.ZAt(i1)-p.ZAt(i2))*(r-p.Rmax(i2))/
54 (p.Rmax(i1)-p.Rmax(i2));}
55 // General SSD Outer Cone surface equation Rmax.
56 Double_t RmaxFromZpCone(AliITSPConeData &p,Double_t z,Double_t th=0.0)
57 {return -fTantc*(z-p.ZAt(4))+p.Rmax(4)+th/fCostc;}
58 // General SSD Inner Cone surface equation Rmin.
59 Double_t RminFromZpCone(AliITSPConeData &p,Double_t z,Double_t th=0.0)
60 {return -fTantc*(z-p.ZAt(3))+p.Rmin(3)+th/fCostc;}
61 // Outer SSD cone surface
62 Double_t RmaxFromZSSDcone(Double_t z,Double_t th=0.0)
63 {return RmaxFromZpCone(fA,z,th);}
64 // Inner SSD cone surface
65 Double_t RminFromZSSDcone(Double_t z,Double_t th=0.0)
66 {return RminFromZpCone(fA,z,th);}
67 // General SSD Outer cone Surface equation for z.
68 Double_t ZFromRmaxpCone(AliITSPConeData &p,Double_t r,Double_t th=0.0)
69 {return p.ZAt(4)+(p.Rmax(4)+th/fCostc-r)/fTantc;}
70 // General SSD Inner cone Surface equation for z.
71 Double_t ZFromRminpCone(AliITSPConeData &p,Double_t r,Double_t th=0.0)
72 {return p.ZAt(3)+(p.Rmin(3)+th/fCostc-r)/fTantc;}
73 Double_t ZFromRmaxSSDcone(Double_t r,Double_t th=0.0)
74 {return ZFromRmaxpCone(fA,r,th);}
75 Double_t ZFromRminSSDcone(Double_t r,Double_t th=0.0)
76 {return ZFromRminpCone(fA,r,th);}
77 // Given a initial point z0,r0, the initial angle theta0, and the radius
78 // of curvature, returns the point z1, r1 at the angle theta1. Theta
79 // measured from the r axis in the clock wise direction [degrees].
80 void RadiusOfCurvature(Double_t rc,Double_t theta0,Double_t z0,
81 Double_t r0,Double_t theta1,Double_t &z1,
83 {z1=rc*(Sind(theta1)-Sind(theta0))+z0;
84 r1=rc*(Cosd(theta1)-Cosd(theta0))+r0; return;}
86 Double_t fThickness; //mm, Thickness of Rohacell+carbon fiber
87 Double_t fCthick; //mm, Carbon finber thickness
88 Double_t fRcurv; // mm, Radius of curvature.
89 Double_t fTc; // angle of SSD cone [degrees].
90 Double_t fSintc,fCostc,fTantc;
91 Double_t fZ0,fZouterMilled,fZcylinder,fZposts;
92 Double_t fRoutMax,fRoutHole,fRoutMin;
93 Double_t fRholeMax,fRholeMin;
94 Double_t fRpostMin,fdRpost,fZpostMax,fPhi0Post;
95 Double_t fRinMax,fRinCylinder,fRinHole,fRinMin,fdZin;
96 // Screws mounting SSD-SDD thermal/machanical cylinder
97 Double_t fPhi0Screws,fRcylinderScrews,fDscrewHead;
98 Double_t fDscrewShaft,fThScrewHeadHole;
99 // The SDD mounting bracket SSD part of it.
101 Double_t fPhi0SDDsupports;
102 Double_t fRsddSupportPlate,fThSDDsupportPlate,fWsddSupportPlate;
103 Int_t fNspoaks,fNinScrews,fNposts,fNmounts;
104 Int_t fSSDcf; // SSD support cone Carbon Fiber materal number.
105 Int_t fSSDfs; // SSD support cone inserto stesalite 4411w.
106 Int_t fSSDfo; // SSD support cone foam, Rohacell 50A.
107 Int_t fSSDsw; // SSD support cone screw material,Stainless steal
108 Int_t fNcD; // number of screw ends (copy number) Volume D
109 Int_t fNcE; // number of pin end (copy number) Volume E
110 AliITSPConeData fA;//Poly-cone Volume A. Top part of SSD cone Carbon Fiber
111 AliITSPConeData fB; // Poly-cone Volume B. Stesalite inside volume A.
112 AliITSPConeData fC; // Poly-cone Volume C. Foam inside volume A.
113 AliITSTubeData fD; // Bolt holes willed with bolt
114 AliITSTubeData fE; // Pin holes willed with pin.
115 AliITSPConeData fF;//Poly-cone Volume F. Foam in spoak reagion, inside A.
116 // SSD support cone Spoaks.
117 AliITSPConeData fG; // Poly-cone Volume G.
118 AliITSPConeData fH; // Poly-cone Volume H.
119 AliITSPConeData fI; // Poly-cone Volume I.
120 AliITSPConeData fJ; // Poly-cone Volume J.
121 AliITSPConeData fK; // Poly-cone Volume K.
122 AliITSPConeData fL; // Poly-cone Volume L.
123 AliITSPConeData fM; // Poly-cone Volume M.
124 AliITSPConeData fN; // Poly-cone Volume N.
125 AliITSPConeData fO; // Poly-cone Volume O.
126 AliITSPConeData fP; // Poly-cone Volume P.
127 AliITSPConeData fQ; // Poly-cone Volume Q.
128 AliITSTubeData fR; // Bolt holes willed with bolt
129 AliITSTubeData fS; // Pin holes willed with pin.
130 AliITSPConeData fT; // Poly-cone Volume T.
131 AliITSPConeData fU; // Poly-cone Volume U.
133 ClassDef(AliITSGeometrySSDCone,1) // ITS SSD support cone geometry
136 // Input and Output functions for standard C++ input/output/
137 ostream &operator<<(ostream &os,AliITSGeometrySSDCone &source);
138 istream &operator>>(istream &is,AliITSGeometrySSDCone &source);