45{
47 Double_t base1 = 135, base2 = 78;
48 Double_t side3 = 33, side4 = 90, side5 = 125;
49 Double_t height = 180;
50
51 cout << zCenter << endl;
52
53 TGeoVolume *
top=gGeoManager->GetTopVolume();
54 TGeoMedium *Fe = gGeoManager->GetMedium("iron");
55
56
57
58
59
60 TGeoBBox *TopS = new TGeoBBox(180,57/2,225);
61 TGeoVolume *volTopS = new TGeoVolume("volTopS",TopS,Fe);
62 volTopS->SetLineColor(kRed);
63
64
65 top->AddNode(volTopS,1,
new TGeoTranslation(0, 126, zCenter));
66 top->AddNode(volTopS,2,
new TGeoTranslation(0, -111, zCenter));
67
68
69
70
71
72
73
74
75 TGeoRotation *
r1 =
new TGeoRotation();
76 r1->SetAngles(0,90,0);
77 TGeoCombiTrans
t(0, 75, zCenter,r1);
79 TGeoHMatrix *
m =
new TGeoHMatrix(t);
80
81
82
83 TGeoTube *magnetUp = new TGeoTube(side4,160,22.5);
84 TGeoVolume *volmagnetUp = new TGeoVolume("volmagnetUp",magnetUp,Fe);
85 volmagnetUp->SetLineColor(kGreen);
86 top->AddNode(volmagnetUp,1,
m);
87
88
89 TGeoCombiTrans
t1(0, -67.5, zCenter,r1);
90 TGeoHMatrix *m1 = new TGeoHMatrix(t1);
91
92
93 TGeoTube *magnetDown = new TGeoTube(side4,160,15);
94 TGeoVolume *volmagnetDown = new TGeoVolume("volmagnetDown",magnetDown,Fe);
95 volmagnetDown->SetLineColor(kGreen);
96 top->AddNode(volmagnetDown,1,m1);
97
98
99
100
101
102
103
104
105
106
107 TGeoBBox *LateralS1 = new TGeoBBox("LateralS1",16.5,45/2,67.5);
108 TGeoTranslation *tr1 = new TGeoTranslation(-side1/2 +side3/2, 75, zCenter- side2/2 +base1/2);
109 TGeoVolume *volLateralS1 = new TGeoVolume("volLateralS1",LateralS1,Fe);
110 volLateralS1->SetLineColor(kRed);
111 top->AddNode(volLateralS1, 1, tr1);
112
113
114
115 TGeoArb8 *LateralS2 = new TGeoArb8("LateralS2",45/2);
116 LateralS2->SetVertex(0, side4, 0);
117 LateralS2->SetVertex(1, side3, 0);
118 LateralS2->SetVertex(2, side3, base1);
119 LateralS2->SetVertex(3, side4, base2);
120 LateralS2->SetVertex(4, side4, 0);
121 LateralS2->SetVertex(5, side3, 0);
122 LateralS2->SetVertex(6, side3, base1);
123 LateralS2->SetVertex(7, side4, base2);
124
125 TGeoVolume *volLateralS2 = new TGeoVolume("volLateralS2",LateralS2,Fe);
126 volLateralS2->SetLineColor(kRed);
127
128 TGeoRotation *
r2 =
new TGeoRotation();
129 r2->SetAngles(0,90,0);
130 TGeoCombiTrans tr2(-side1/2, 75, zCenter-side2/2,r2);
131 TGeoHMatrix *
m2 =
new TGeoHMatrix(tr2);
132 top->AddNode(volLateralS2, 1, m2);
133
134
135
136
137 TGeoBBox *LateralSurface1low = new TGeoBBox("LateralSurface1low",side3/2,135/2,side5/2);
138 TGeoTranslation *tr1low = new TGeoTranslation(-side1/2 +side3/2, -15, zCenter- side2/2 +side5/2);
139 tr1low->SetName("tr1low");
140 tr1low->RegisterYourself();
141
142
143 TGeoBBox *LateralSurface2low = new TGeoBBox("LateralSurface2low",28.5,135/2,base2/2);
144 TGeoTranslation *tr2low = new TGeoTranslation(-side1/2 + (side4-side3)/2 + side3, -15, zCenter-side2/2 +base2/2);
145 tr2low->SetName("tr2low");
146 tr2low->RegisterYourself();
147
148 TGeoCompositeShape *LateralSurfacelow = new TGeoCompositeShape("LateralSurfacelow", "LateralSurface1low:tr1low+LateralSurface2low:tr2low");
149 TGeoVolume *volLateralSurfacelow = new TGeoVolume("volLateralSurfacelow",LateralSurfacelow,Fe);
150
151 volLateralSurfacelow->SetLineColor(kRed);
152 top->AddNode(volLateralSurfacelow, 1,
new TGeoTranslation(0,0,0));
153
154
155
156
157
158
159 TGeoBBox *LateralS1_b = new TGeoBBox("LateralS1_b",16.5,45/2,67.5);
160 TGeoTranslation *tr1_b = new TGeoTranslation(-side1/2 +side3/2, 75, zCenter+ side2/2 - base1/2);
161 TGeoVolume *volLateralS1_b = new TGeoVolume("volLateralS1_b",LateralS1_b,Fe);
162 volLateralS1_b->SetLineColor(kRed);
163 top->AddNode(volLateralS1_b, 1, tr1_b);
164
165
166 TGeoArb8 *LateralS2_b = new TGeoArb8("LateralS2_b",45/2);
167 LateralS2_b ->SetVertex(0, side4, 0);
168 LateralS2_b ->SetVertex(1, side3, 0);
169 LateralS2_b ->SetVertex(2, side3, base1);
170 LateralS2_b ->SetVertex(3, side4, base2);
171 LateralS2_b ->SetVertex(4, side4, 0);
172 LateralS2_b ->SetVertex(5, side3, 0);
173 LateralS2_b ->SetVertex(6, side3, base1);
174 LateralS2_b ->SetVertex(7, side4, base2);
175
176 TGeoVolume *volLateralS2_b = new TGeoVolume("volLateralS2_b",LateralS2_b,Fe);
177 volLateralS2_b->SetLineColor(kRed);
178
179 TGeoRotation *r2_b = new TGeoRotation();
180 r2_b->SetAngles(0,270,0);
181 TGeoCombiTrans tr2_b(-side1/2, 75, zCenter + side2/2,r2_b);
182 TGeoHMatrix *m2_b = new TGeoHMatrix(tr2_b);
183 top->AddNode(volLateralS2_b, 1, m2_b);
184
185
186
187
188 TGeoBBox *LateralSurface1dlow = new TGeoBBox("LateralSurface1dlow",side3/2,135/2,side5/2);
189 TGeoTranslation *tr1dlow = new TGeoTranslation(-side1/2 +side3/2, -15, zCenter+ side2/2 -side5/2);
190 tr1dlow->SetName("tr1dlow");
191 tr1dlow->RegisterYourself();
192
193
194 TGeoBBox *LateralSurface2dlow = new TGeoBBox("LateralSurface2dlow",28.5,135/2,base2/2);
195 TGeoTranslation *tr2dlow = new TGeoTranslation(-side1/2 + (side4-side3)/2 + side3, -15, zCenter+side2/2 -base2/2);
196 tr2dlow->SetName("tr2dlow");
197 tr2dlow->RegisterYourself();
198
199 TGeoCompositeShape *LateralSurfacedlow = new TGeoCompositeShape("LateralSurfacedlow", "LateralSurface1dlow:tr1dlow+LateralSurface2dlow:tr2dlow");
200 TGeoVolume *volLateralSurfacedlow = new TGeoVolume("volLateralSurfacedlow",LateralSurfacedlow,Fe);
201
202 volLateralSurfacedlow->SetLineColor(kRed);
203 top->AddNode(volLateralSurfacedlow, 1,
new TGeoTranslation(0,0,0));
204
205
206
207
208
209
210
211
212 TGeoBBox *LateralS1_d = new TGeoBBox("LateralS1_d",16.5,height/2,67.5);
213 TGeoTranslation *tr1_d = new TGeoTranslation(side1/2 - side3/2, 7.5, zCenter- side2/2 +base1/2);
214 TGeoVolume *volLateralS1_d = new TGeoVolume("volLateralS1_d",LateralS1_d,Fe);
215 volLateralS1_d->SetLineColor(kRed);
216 top->AddNode(volLateralS1_d, 1, tr1_d);
217
218
219
220 TGeoArb8 *LateralS2_d = new TGeoArb8("LateralS2_d",height/2);
221 LateralS2_d->SetVertex(0, side4, 0);
222 LateralS2_d->SetVertex(1, side3, 0);
223 LateralS2_d->SetVertex(2, side3, base1);
224 LateralS2_d->SetVertex(3, side4, base2);
225 LateralS2_d->SetVertex(4, side4, 0);
226 LateralS2_d->SetVertex(5, side3, 0);
227 LateralS2_d->SetVertex(6, side3, base1);
228 LateralS2_d->SetVertex(7, side4, base2);
229
230
231 TGeoVolume *volLateralS2_d = new TGeoVolume("volLateralS2_d",LateralS2_d,Fe);
232 volLateralS2_d->SetLineColor(kRed);
233
234 TGeoRotation *r2_d = new TGeoRotation();
235 r2_d->SetAngles(0,270,180);
236 TGeoCombiTrans tr2_d(side1/2, 7.5, zCenter -side2/2,r2_d);
237 TGeoHMatrix *m2_d = new TGeoHMatrix(tr2_d);
238 top->AddNode(volLateralS2_d, 1, m2_d);
239
240
241
242
243
244
245
246
247
248
249 TGeoBBox *LateralS1_c = new TGeoBBox("LateralS1_c",16.5,height/2,67.5);
250 TGeoTranslation *tr1_c = new TGeoTranslation(side1/2 - side3/2, 7.5, zCenter+ side2/2 -base1/2);
251 TGeoVolume *volLateralS1_c = new TGeoVolume("volLateralS1_c",LateralS1_c,Fe);
252 volLateralS1_c->SetLineColor(kRed);
253 top->AddNode(volLateralS1_c, 1, tr1_c);
254
255
256
257
258 TGeoArb8 *LateralS2_c = new TGeoArb8("LateralS2_c",height/2);
259 LateralS2_c ->SetVertex(0, side4, 0);
260 LateralS2_c ->SetVertex(1, side3, 0);
261 LateralS2_c ->SetVertex(2, side3, base1);
262 LateralS2_c ->SetVertex(3, side4, base2);
263 LateralS2_c ->SetVertex(4, side4, 0);
264 LateralS2_c ->SetVertex(5, side3, 0);
265 LateralS2_c ->SetVertex(6, side3, base1);
266 LateralS2_c ->SetVertex(7, side4, base2);
267
268 TGeoVolume *volLateralS2_c = new TGeoVolume("volLateralS2_c",LateralS2_c,Fe);
269 volLateralS2_c->SetLineColor(kRed);
270
271 TGeoRotation *r2_c = new TGeoRotation();
272 r2_c->SetAngles(0,90,180);
273 TGeoCombiTrans tr2_c(side1/2, 7.5, zCenter + side2/2,r2_c);
274 TGeoHMatrix *m2_c = new TGeoHMatrix(tr2_c);
275 top->AddNode(volLateralS2_c, 1, m2_c);
276}