541f7ba6 |
1 | //---------------------------------------------------------------------- |
2 | void Displayv11(const char* filename=""){ |
3 | // Display AliITSv11 Geometry |
4 | // Inputs: |
5 | // const char* filename output file with the display in it |
6 | // Outputs: |
7 | // none. |
8 | // Retrurn: |
9 | // none. |
10 | |
11 | gSystem->Load("libGeom"); |
12 | // |
541f7ba6 |
13 | if(gGeoManager) delete gGeoManager; |
d1a22f9a |
14 | mgr2 = gGeoManager = new TGeoManager("ITSGeometry", |
15 | " ITS Simulation Geometry Manager"); |
541f7ba6 |
16 | // |
17 | TGeoMaterial *vacmat = new TGeoMaterial("Vacume",0,0,0); |
18 | TGeoMedium *vacmed = new TGeoMedium("Vacume_med",1,vacmat); |
543b7370 |
19 | TGeoVolume *ALIC = mgr2->MakeBox("ALIC",vacmed,1000.,1000.,2000.); |
541f7ba6 |
20 | mgr2->SetTopVolume(ALIC); |
543b7370 |
21 | TGeoVolume *ITS = mgr2->MakeBox("ITSV",vacmed,990.,990.,1990.); |
012f0f4c |
22 | TGeoVolumeAssembly *ITSspd = new TGeoVolumeAssembly("ITSspd"); |
23 | ITS->AddNode(ITSspd,1); |
a53658c6 |
24 | ALIC->AddNode(ITS,1); |
541f7ba6 |
25 | // |
a53658c6 |
26 | /* |
db486a6e |
27 | AliITSv11 *its = new AliITSv11(0,3); |
d1a22f9a |
28 | its->SetDebug(ISetits(0,-1)); |
db486a6e |
29 | its->GetSPDGeometry()->SetDebug(ISetits(0,-1)); |
30 | its->GetSupGeometry()->SetDebug(ISetits(0,-1)); |
541f7ba6 |
31 | its->CreateMaterials(); |
32 | its->CreateGeometry(); |
a53658c6 |
33 | */ |
012f0f4c |
34 | AliITSv11GeometrySPD *gspd = new AliITSv11GeometrySPD(0); |
35 | //AliITSv11GeometrySDD *gsdd = new AliITSv11GeometrySDD(); |
543b7370 |
36 | AliITSv11GeometrySupport *gsupp = new AliITSv11GeometrySupport(0); |
012f0f4c |
37 | //AliITSv11GeometrySSD *gssd = new AliITSv11GeometrySSD(); |
a53658c6 |
38 | // |
39 | Int_t imat=1,imed=1; |
40 | gspd->CreateSPDCenteralMaterials(imed,imat); |
012f0f4c |
41 | gspd->SPDSector(ITSspd,mgr2); |
42 | gsupp->SPDCone(ITS,mgr2); |
543b7370 |
43 | gsupp->SetDebug(0); |
012f0f4c |
44 | gsupp->SDDCone(ITS,mgr2); |
45 | //gsdd->Layer3(ITS); |
46 | //gsdd->Layer4(ITS); |
47 | gsupp->SSDCone(ITS,mgr2); |
48 | gsupp->ServicesCableSupport(ITS); |
541f7ba6 |
49 | // |
50 | mgr2->CloseGeometry(); |
d1a22f9a |
51 | // |
52 | TControlBar *bar=new TControlBar("vertical","ITS Geometry Display",10,10); |
d5219d0d |
53 | bar->AddButton("Set Clipping on","ISetits(2,1)","Clipping on"); |
54 | bar->AddButton("Set Cllipping off","ISetits(2,0)","Clipping off"); |
d1a22f9a |
55 | bar->AddButton("Set axis on","ISetits(3,1)","Show Axis on"); |
56 | bar->AddButton("Set axis off","ISetits(3,0)","Show Axis off"); |
57 | bar->AddButton("Set perspective on","ISetits(4,1)","Perspective on"); |
58 | bar->AddButton("Set perspective off","ISetits(4,0)","Perspective off"); |
d5219d0d |
59 | bar->AddButton("Set RayTrace on","ISetits(5,1)","Perspective on"); |
60 | bar->AddButton("Set RayTrace off","ISetits(5,0)","Perspective off"); |
d1a22f9a |
61 | bar->AddButton("Set circle/80","ISetits(1,80)","circles ~ by 80 lines"); |
62 | bar->AddButton("Display Geometry","Displayit()","Run Displayit"); |
012f0f4c |
63 | bar->AddButton("Display SPD Sector Volume","EngineeringSPDSector()", |
64 | "Run EngineeringSPDSector"); |
65 | bar->AddButton("Display SPD Ceneral Volume","EngineeringSPDCenter()", |
66 | "Run EngineeringSPDCenter"); |
4830bf84 |
67 | bar->AddButton("Display SPD Thermal Sheald","EngineeringSPDThS()", |
68 | "Run EngineeringSPDThS"); |
db486a6e |
69 | bar->AddButton("Display SDD Layer 3","EngineeringSDDLayer3()", |
70 | "Run EngineeringSDDLayer3"); |
71 | bar->AddButton("Display SDD Layer 4","EngineeringSDDLayer4()", |
72 | "Run EngineeringSDDLayer4"); |
d1a22f9a |
73 | bar->AddButton("Display SDD Cone","EngineeringSDDCone()", |
74 | "Run EngineeringSDDCone"); |
75 | bar->AddButton("Display SDD Centeral Cylinder","EngineeringSDDCylinder()", |
76 | "Run EngineeringSDDCylinder"); |
d5219d0d |
77 | bar->AddButton("Display SSD Cone","EngineeringSSDCone()", |
78 | "Run EngineeringSSDCone"); |
79 | bar->AddButton("Display SSD Centeral Cylinder","EngineeringSSDCylinder()", |
80 | "Run EngineeringSSDCylinder"); |
d1a22f9a |
81 | bar->AddButton("Display SUP RB24 side","EngineeringSupRB24()", |
db486a6e |
82 | "Run EngineeringSupRB24"); |
83 | bar->AddButton("Display Cable Trays RB24 side","EngineeringSupTrayRB24()", |
84 | "Run EngineeringSupTrayRB24"); |
d1a22f9a |
85 | bar->AddButton("Display SUP RB26 side","EngineeringSupRB26()", |
86 | "Run EngineeringSupRB26"); |
a53658c6 |
87 | bar->AddButton("Save Geometry to File","ExportToFile()", |
88 | "Run ExportToFile"); |
d1a22f9a |
89 | bar->AddButton("Quit/Exit",".q","Exit"); |
90 | bar->Show(); |
91 | gROOT->SaveContext(); |
92 | //Displayit(); |
93 | } |
94 | //---------------------------------------------------------------------- |
a53658c6 |
95 | void ExportToFile(){ |
96 | // Quirry file name and write geometry to a root file. |
97 | // Inputs: |
98 | // const char* filename output file with the display in it |
99 | // Outputs: |
100 | // none. |
101 | // Retrurn: |
102 | // none. |
103 | Char_t filename[100]; |
104 | |
105 | printf("Eneter File name:"); |
106 | scanf("%s",filename); |
107 | |
108 | gGeoManager->Export(filename); |
109 | } |
110 | //---------------------------------------------------------------------- |
d1a22f9a |
111 | Int_t ISetits(Int_t t,Int_t v){ |
d5219d0d |
112 | static Int_t itsdebug=1,nsegments=80,cut=0,axis=1,perspective=0,ray=0; |
d1a22f9a |
113 | |
114 | switch (t) { |
115 | case 0: |
116 | if(v<0) return itsdebug; |
117 | itsdebug = v; |
118 | break; |
119 | case 1: |
120 | if(v<0) return nsegments; |
121 | nsegments= v; |
122 | break; |
123 | case 2: |
124 | if(v<0) return cut; |
125 | cut = v; |
126 | break; |
127 | case 3: |
128 | if(v<0) return axis; |
129 | axis = v; |
130 | break; |
131 | case 4: |
132 | if(v<0) return perspective; |
133 | perspective = v; |
134 | break; |
d5219d0d |
135 | case 5: |
136 | if(v<0) return ray; |
137 | ray = v; |
138 | break; |
d1a22f9a |
139 | }// end switch |
140 | return 0; |
141 | } |
142 | //---------------------------------------------------------------------- |
143 | Double_t DSetits(Int_t t,Double_t v){ |
144 | static Double_t phimincut=0.0,phimaxcut=180.0; |
145 | static Double_t longitude=90.0,latitude=0.0,psi=0.0; |
146 | |
147 | switch (t) { |
148 | case 0: |
149 | if(v<0.) return phimincut; |
150 | phimincut = v; |
151 | break; |
152 | case 1: |
153 | if(v<0.) return phimaxcut; |
154 | phimaxcut = v; |
155 | break; |
156 | case 2: |
157 | if(v<0.) return longitude; |
158 | longitude = v; |
159 | break; |
160 | case 3: |
161 | if(v<0.) return latitude; |
162 | latitude = v; |
163 | break; |
164 | case 4: |
165 | if(v<0.) return latitude; |
166 | latitude = v; |
167 | break; |
168 | }// end switch |
169 | return 0; |
170 | } |
171 | //---------------------------------------------------------------------- |
172 | void Displayit(){ |
173 | // Display AliITSv11 Geometry |
174 | // Inputs: |
175 | // const char* filename output file with the display in it |
176 | // Outputs: |
177 | // none. |
178 | // Retrurn: |
179 | // none. |
180 | Int_t irr; |
181 | // |
182 | TGeoManager *mgr2 = gGeoManager; |
183 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
184 | TCanvas *c1; |
185 | if(!(c1 = (TCanvas*)gROOT->FindObject("C1"))) |
186 | c1 = new TCanvas("C1","ITS Simulation Geometry",900,900); |
187 | c1->Divide(2,2); |
188 | // |
189 | mgr2->SetNsegments(ISetits(1,-1)); |
541f7ba6 |
190 | // |
171f3f35 |
191 | mgr2->SetVisLevel(6); |
cbd7b929 |
192 | mgr2->SetVisOption(0); |
171f3f35 |
193 | //mgr2->CheckOverlaps(0.01); |
194 | //mgr2->PrintOverlaps(); |
d5219d0d |
195 | if(ISetits(2,-1)==1){ |
196 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
197 | mgr2->SetClippingShape(clip); |
198 | } // end if |
d1a22f9a |
199 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
541f7ba6 |
200 | // |
171f3f35 |
201 | c1->cd(1); |
202 | ALIC->Draw(); |
203 | TPad *p1 = c1->GetPad(1); |
204 | TView *view1 = p1->GetView(); |
205 | if(view1){ |
d1a22f9a |
206 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
207 | if(irr) cout <<"error="<<irr<<endl; |
a53658c6 |
208 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d1a22f9a |
209 | else view1->SetPerspective(); |
171f3f35 |
210 | view1->Front(); |
d1a22f9a |
211 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
212 | } // end if view1 |
d5219d0d |
213 | if(ISetits(5,-1)==1) ALIC->Raytrace(); |
171f3f35 |
214 | c1->cd(2); |
215 | ALIC->Draw(); |
216 | TPad *p2 = c1->GetPad(2); |
217 | TView *view2 = p2->GetView(); |
218 | if(view2){ |
d1a22f9a |
219 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
220 | if(irr) cout <<"error="<<irr<<endl; |
a53658c6 |
221 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d1a22f9a |
222 | else view2->SetPerspective(); |
171f3f35 |
223 | view2->RotateView(60.,30.); |
d1a22f9a |
224 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
171f3f35 |
225 | } // end if view2 |
d5219d0d |
226 | if(ISetits(5,-1)==1) ALIC->Raytrace(); |
171f3f35 |
227 | c1->cd(3); |
171f3f35 |
228 | ALIC->Draw(); |
d1a22f9a |
229 | c1->SetPhi(90.0); c1->SetTheta(90.0); |
171f3f35 |
230 | TPad *p3 = c1->GetPad(3); |
231 | TView *view3 = p3->GetView(); |
232 | if(view3){ |
d1a22f9a |
233 | view3->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
234 | if(irr) cout <<"error="<<irr<<endl; |
a53658c6 |
235 | if(ISetits(4,-1)==0) view3->SetParallel(); |
d1a22f9a |
236 | else view3->SetPerspective(); |
171f3f35 |
237 | view3->Top(); |
d1a22f9a |
238 | if(ISetits(3,-1)!=0) view3->ShowAxis(); |
171f3f35 |
239 | } // end if view3 |
d5219d0d |
240 | if(ISetits(5,-1)==1) ALIC->Raytrace(); |
171f3f35 |
241 | c1->cd(4); |
541f7ba6 |
242 | ALIC->Draw(); |
171f3f35 |
243 | TPad *p4 = c1->GetPad(4); |
244 | TView *view4 = p4->GetView(); |
245 | if(view4){ |
d1a22f9a |
246 | view4->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
247 | if(irr) cout <<"error="<<irr<<endl; |
a53658c6 |
248 | if(ISetits(4,-1)==0) view4->SetParallel(); |
d1a22f9a |
249 | else view4->SetPerspective(); |
171f3f35 |
250 | view4->Side(); |
d1a22f9a |
251 | if(ISetits(3,-1)!=0) view4->ShowAxis(); |
171f3f35 |
252 | } // end if view4 |
d5219d0d |
253 | if(ISetits(5,-1)==1) ALIC->Raytrace(); |
541f7ba6 |
254 | // |
255 | } |
d1a22f9a |
256 | //---------------------------------------------------------------------- |
012f0f4c |
257 | void EngineeringSPDSector(){ |
258 | // Display SPD Sector Geometry |
db486a6e |
259 | // Inputs: |
260 | // none. |
261 | // Outputs: |
262 | // none. |
263 | // Retrurn: |
264 | // none. |
265 | Int_t irr; |
266 | // |
267 | TGeoManager *mgr2 = gGeoManager; |
268 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
269 | TCanvas *c4; |
270 | if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
271 | c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500); |
012f0f4c |
272 | TGeoVolume *ITS,*ITSspd,*SPDLay=0; |
db486a6e |
273 | TGeoNode *node; |
274 | TArrow *arrow=new TArrow(); |
275 | // |
276 | node = ALIC->FindNode("ITSV_1"); |
277 | ITS = node->GetVolume(); |
012f0f4c |
278 | node = ITS->FindNode("ITSspd_1"); |
279 | ITSspd = node->GetVolume(); |
280 | node = ITSspd->FindNode("ITSSPDCarbonFiberSectorV_1"); |
281 | //node = ITSspd->FindNode("ITSSPDTempSPDMotherVolume_1"); |
db486a6e |
282 | SPDLay = node->GetVolume(); |
283 | // |
284 | mgr2->SetNsegments(ISetits(1,-1)); |
285 | // |
286 | mgr2->SetVisLevel(6); |
287 | mgr2->SetVisOption(0); |
288 | //mgr2->CheckOverlaps(0.01); |
289 | //mgr2->PrintOverlaps(); |
290 | if(ISetits(2,-1)==1){ |
291 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
292 | mgr2->SetClippingShape(clip); |
293 | } // end if |
294 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
295 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
296 | // |
297 | SPDLay->Draw(); |
298 | TView *view1 = c4->GetView(); |
299 | if(view1){ |
300 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
301 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
302 | if(ISetits(4,-1)==0) view1->SetParallel(); |
db486a6e |
303 | else view1->SetPerspective(); |
304 | view1->Front(); |
305 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
306 | } // end if view1 |
307 | if(ISetits(5,-1)==1) SPDLay->Raytrace(); |
308 | // |
309 | if(!(c5 = (TCanvas*)gROOT->FindObject("C5"))) |
012f0f4c |
310 | c5 = new TCanvas("C5","ITS SPD Sector Geometry End View",500,500); |
db486a6e |
311 | SPDLay->Draw(); |
312 | TView *view2 = c5->GetView(); |
313 | if(view2){ |
314 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
315 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
316 | if(ISetits(4,-1)==0) view2->SetParallel(); |
db486a6e |
317 | else view2->SetPerspective(); |
318 | view2->Top(); |
319 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
320 | } // end if view2 |
321 | if(ISetits(5,-1)==1) SPDLay->Raytrace(); |
322 | // |
323 | } |
324 | //---------------------------------------------------------------------- |
012f0f4c |
325 | void EngineeringSPDCenter(){ |
326 | // Display SPD Centeral Geometry |
327 | // Inputs: |
328 | // none. |
329 | // Outputs: |
330 | // none. |
331 | // Retrurn: |
332 | // none. |
333 | Int_t irr; |
334 | // |
335 | TGeoManager *mgr2 = gGeoManager; |
336 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
337 | TCanvas *c4; |
338 | if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
339 | c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500); |
340 | TGeoVolume *ITS,*ITSspd,*SPDLay=0; |
341 | TGeoNode *node; |
342 | TArrow *arrow=new TArrow(); |
343 | // |
344 | node = ALIC->FindNode("ITSV_1"); |
345 | ITS = node->GetVolume(); |
346 | node = ITS->FindNode("ITSspd_1"); |
347 | ITSspd = node->GetVolume(); |
348 | // |
349 | mgr2->SetNsegments(ISetits(1,-1)); |
350 | // |
351 | mgr2->SetVisLevel(6); |
352 | mgr2->SetVisOption(0); |
353 | //mgr2->CheckOverlaps(0.01); |
354 | //mgr2->PrintOverlaps(); |
355 | if(ISetits(2,-1)==1){ |
356 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
357 | mgr2->SetClippingShape(clip); |
358 | } // end if |
359 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
360 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
361 | // |
362 | ITSspd->Draw(); |
363 | TView *view1 = c4->GetView(); |
364 | if(view1){ |
365 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
366 | if(irr) cout <<"error="<<irr<<endl; |
367 | if(ISetits(4,-1)==0) view1->SetParallel(); |
368 | else view1->SetPerspective(); |
369 | view1->Front(); |
370 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
371 | } // end if view1 |
372 | if(ISetits(5,-1)==1) SPDLay->Raytrace(); |
373 | // |
374 | if(!(c5 = (TCanvas*)gROOT->FindObject("C5"))) |
375 | c5 = new TCanvas("C5","ITS SPD Centeral Geometry End View",500,500); |
376 | ITSspd->Draw(); |
377 | TView *view2 = c5->GetView(); |
378 | if(view2){ |
379 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
380 | if(irr) cout <<"error="<<irr<<endl; |
381 | if(ISetits(4,-1)==0) view2->SetParallel(); |
382 | else view2->SetPerspective(); |
383 | view2->Top(); |
384 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
385 | } // end if view2 |
386 | if(ISetits(5,-1)==1) ITSspd->Raytrace(); |
387 | // |
388 | } |
389 | //---------------------------------------------------------------------- |
4830bf84 |
390 | void EngineeringSPDThS(){ |
391 | // Display SPD Thermal Sheald Geometry |
392 | // Inputs: |
393 | // none. |
394 | // Outputs: |
395 | // none. |
396 | // Retrurn: |
397 | // none. |
398 | Int_t irr; |
399 | // |
400 | TGeoManager *mgr2 = gGeoManager; |
401 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
402 | TCanvas *c4; |
403 | if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
404 | c4 = new TCanvas("C4","ITS SDD Cylinder Geometry",900,450); |
405 | c4->Divide(2,1); |
406 | TGeoVolume *ITS,*SPDThS=0; |
407 | TGeoNode *node; |
408 | TArrow *arrow=new TArrow(); |
409 | // |
410 | node = ALIC->FindNode("ITSV_1"); |
411 | ITS = node->GetVolume(); |
012f0f4c |
412 | node = ITS->FindNode("ITSspdThermalShealdMother_1"); |
4830bf84 |
413 | SPDThS = node->GetVolume(); |
414 | // |
415 | mgr2->SetNsegments(ISetits(1,-1)); |
416 | // |
417 | mgr2->SetVisLevel(6); |
418 | mgr2->SetVisOption(0); |
419 | //mgr2->CheckOverlaps(0.01); |
420 | //mgr2->PrintOverlaps(); |
d5219d0d |
421 | if(ISetits(2,-1)==1){ |
422 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
423 | mgr2->SetClippingShape(clip); |
424 | } // end if |
4830bf84 |
425 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
426 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
427 | // |
428 | c4->cd(1); |
429 | SPDThS->Draw(); |
430 | TPad *p1 = c4->GetPad(1); |
431 | TView *view1 = p1->GetView(); |
432 | if(view1){ |
433 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
434 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
435 | if(ISetits(4,-1)==0) view1->SetParallel(); |
4830bf84 |
436 | else view1->SetPerspective(); |
437 | view1->Front(); |
438 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
439 | } // end if view1 |
d5219d0d |
440 | if(ISetits(5,-1)==1) SPDThS->Raytrace(); |
4830bf84 |
441 | // |
442 | c4->cd(2); |
443 | SPDThS->Draw(); |
444 | TPad *p2 = c4->GetPad(2); |
445 | TView *view2 = p2->GetView(); |
446 | if(view2){ |
447 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
448 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
449 | if(ISetits(4,-1)==0) view2->SetParallel(); |
4830bf84 |
450 | else view2->SetPerspective(); |
451 | view2->Top(); |
452 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
453 | } // end if view2 |
d5219d0d |
454 | if(ISetits(5,-1)==1) SPDThS->Raytrace(); |
4830bf84 |
455 | // |
456 | } |
457 | //---------------------------------------------------------------------- |
db486a6e |
458 | void EngineeringSDDLayer3(){ |
459 | // Display SDD Layer 3 Geometry |
460 | // Inputs: |
461 | // none. |
462 | // Outputs: |
463 | // none. |
464 | // Retrurn: |
465 | // none. |
466 | Int_t irr; |
467 | // |
468 | TGeoManager *mgr2 = gGeoManager; |
469 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
470 | TCanvas *c4; |
471 | if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
472 | c4 = new TCanvas("C4","ITS SDD Layer 3 Geometry Side View",500,500); |
473 | TGeoVolume *ITS,*SDDLay3=0; |
474 | TGeoNode *node; |
475 | TArrow *arrow=new TArrow(); |
476 | // |
477 | node = ALIC->FindNode("ITSV_1"); |
478 | ITS = node->GetVolume(); |
479 | node = ITS->FindNode("ITSsddLayer3_1"); |
480 | SDDLay3 = node->GetVolume(); |
481 | // |
482 | mgr2->SetNsegments(ISetits(1,-1)); |
483 | // |
484 | mgr2->SetVisLevel(6); |
485 | mgr2->SetVisOption(0); |
486 | //mgr2->CheckOverlaps(0.01); |
487 | //mgr2->PrintOverlaps(); |
488 | if(ISetits(2,-1)==1){ |
489 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
490 | mgr2->SetClippingShape(clip); |
491 | } // end if |
492 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
493 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
494 | // |
495 | SDDLay3->Draw(); |
496 | TView *view1 = c4->GetView(); |
497 | if(view1){ |
498 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
499 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
500 | if(ISetits(4,-1)==0) view1->SetParallel(); |
db486a6e |
501 | else view1->SetPerspective(); |
502 | view1->Front(); |
503 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
504 | } // end if view1 |
505 | if(ISetits(5,-1)==1) SDDLay3->Raytrace(); |
506 | // |
507 | if(!(c5 = (TCanvas*)gROOT->FindObject("C5"))) |
508 | c5 = new TCanvas("C5","ITS SDD Layer 3 Geometry End View",500,500); |
509 | SDDLay3->Draw(); |
510 | TView *view2 = c5->GetView(); |
511 | if(view2){ |
512 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
513 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
514 | if(ISetits(4,-1)==0) view2->SetParallel(); |
db486a6e |
515 | else view2->SetPerspective(); |
516 | view2->Top(); |
517 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
518 | } // end if view2 |
519 | if(ISetits(5,-1)==1) SDDLay3->Raytrace(); |
520 | // |
521 | } |
522 | //---------------------------------------------------------------------- |
523 | void EngineeringSDDLayer4(){ |
524 | // Display SDD Layer 4 Geometry |
525 | // Inputs: |
526 | // none. |
527 | // Outputs: |
528 | // none. |
529 | // Retrurn: |
530 | // none. |
531 | Int_t irr; |
532 | // |
533 | TGeoManager *mgr2 = gGeoManager; |
534 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
535 | TCanvas *c4; |
536 | if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
537 | c4 = new TCanvas("C4","ITS SDD Layer 4 Geometry Side View",500,500); |
538 | TGeoVolume *ITS,*SDDLay4=0; |
539 | TGeoNode *node; |
540 | TArrow *arrow=new TArrow(); |
541 | // |
542 | node = ALIC->FindNode("ITSV_1"); |
543 | ITS = node->GetVolume(); |
544 | node = ITS->FindNode("ITSsddLayer4_1"); |
545 | SDDLay4 = node->GetVolume(); |
546 | // |
547 | mgr2->SetNsegments(ISetits(1,-1)); |
548 | // |
549 | mgr2->SetVisLevel(6); |
550 | mgr2->SetVisOption(0); |
551 | //mgr2->CheckOverlaps(0.01); |
552 | //mgr2->PrintOverlaps(); |
553 | if(ISetits(2,-1)==1){ |
554 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
555 | mgr2->SetClippingShape(clip); |
556 | } // end if |
557 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
558 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
559 | // |
560 | SDDLay4->Draw(); |
561 | TView *view1 = c4->GetView(); |
562 | if(view1){ |
563 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
564 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
565 | if(ISetits(4,-1)==0) view1->SetParallel(); |
db486a6e |
566 | else view1->SetPerspective(); |
567 | view1->Front(); |
568 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
569 | } // end if view1 |
570 | if(ISetits(5,-1)==1) SDDLay4->Raytrace(); |
571 | // |
572 | if(!(c5 = (TCanvas*)gROOT->FindObject("C5"))) |
573 | c5 = new TCanvas("C5","ITS SDD Layer 4 Geometry End View",500,500); |
574 | SDDLay4->Draw(); |
575 | TView *view2 = c5->GetView(); |
576 | if(view2){ |
577 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
578 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
579 | if(ISetits(4,-1)==0) view2->SetParallel(); |
db486a6e |
580 | else view2->SetPerspective(); |
581 | view2->Top(); |
582 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
583 | } // end if view2 |
584 | if(ISetits(5,-1)==1) SDDLay4->Raytrace(); |
585 | // |
586 | } |
587 | //---------------------------------------------------------------------- |
d1a22f9a |
588 | void EngineeringSDDCone(){ |
589 | // Display SDD Cone Geometry |
590 | // Inputs: |
591 | // none. |
592 | // Outputs: |
593 | // none. |
594 | // Retrurn: |
595 | // none. |
596 | Int_t irr; |
597 | // |
598 | TGeoManager *mgr2 = gGeoManager; |
599 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
600 | TCanvas *c2; |
601 | if(!(c2 = (TCanvas*)gROOT->FindObject("C2"))) |
602 | c2 = new TCanvas("C2","ITS SDD Cone Geometry",900,450); |
603 | c2->Divide(2,1); |
604 | TGeoVolume *ITS,*SDD=0; |
605 | TGeoNode *node; |
606 | // |
607 | node = ALIC->FindNode("ITSV_1"); |
608 | ITS = node->GetVolume(); |
609 | node = ITS->FindNode("ITSsddConeL_1"); |
610 | SDD = node->GetVolume(); |
611 | // |
612 | mgr2->SetNsegments(ISetits(1,-1)); |
613 | // |
614 | mgr2->SetVisLevel(6); |
615 | mgr2->SetVisOption(0); |
616 | //mgr2->CheckOverlaps(0.01); |
617 | //mgr2->PrintOverlaps(); |
d5219d0d |
618 | if(ISetits(2,-1)==1){ |
619 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
620 | mgr2->SetClippingShape(clip); |
621 | } // end if |
d1a22f9a |
622 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
623 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
624 | // |
625 | c2->cd(1); |
626 | SDD->Draw(); |
627 | TPad *p1 = c2->GetPad(1); |
628 | TView *view1 = p1->GetView(); |
629 | if(view1){ |
630 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
631 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
632 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d1a22f9a |
633 | else view1->SetPerspective(); |
634 | view1->Front(); |
635 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
636 | } // end if view1 |
d5219d0d |
637 | if(ISetits(5,-1)==1) SDD->Raytrace(); |
d1a22f9a |
638 | // |
639 | c2->cd(2); |
640 | SDD->Draw(); |
641 | TPad *p2 = c2->GetPad(2); |
642 | TView *view2 = p2->GetView(); |
643 | if(view2){ |
644 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
645 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
646 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d1a22f9a |
647 | else view2->SetPerspective(); |
648 | view2->Top(); |
649 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
650 | } // end if view1 |
d5219d0d |
651 | if(ISetits(5,-1)==1) SDD->Raytrace(); |
d1a22f9a |
652 | // |
653 | } |
654 | //---------------------------------------------------------------------- |
655 | void EngineeringSDDCylinder(){ |
656 | // Display SDD Cylinder Geometry |
657 | // Inputs: |
658 | // none. |
659 | // Outputs: |
660 | // none. |
661 | // Retrurn: |
662 | // none. |
663 | Int_t irr; |
664 | // |
665 | TGeoManager *mgr2 = gGeoManager; |
666 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
667 | TCanvas *c3; |
668 | if(!(c3 = (TCanvas*)gROOT->FindObject("C3"))) |
669 | c3 = new TCanvas("C3","ITS SDD Cylinder Geometry",900,450); |
670 | c3->Divide(2,1); |
671 | TGeoVolume *ITS,*SDD=0; |
672 | TGeoNode *node; |
673 | TArrow *arrow=new TArrow(); |
674 | // |
675 | node = ALIC->FindNode("ITSV_1"); |
676 | ITS = node->GetVolume(); |
677 | node = ITS->FindNode("ITSsddCentCylCF_1"); |
678 | SDD = node->GetVolume(); |
679 | Double_t Rmin = ((TGeoTube*)(SDD->GetShape()))->GetRmin(); |
680 | Double_t Rmax = ((TGeoTube*)(SDD->GetShape()))->GetRmax(); |
681 | Double_t Dz = ((TGeoTube*)(SDD->GetShape()))->GetDz(); |
682 | // |
683 | mgr2->SetNsegments(ISetits(1,-1)); |
684 | // |
685 | mgr2->SetVisLevel(6); |
686 | mgr2->SetVisOption(0); |
687 | //mgr2->CheckOverlaps(0.01); |
688 | //mgr2->PrintOverlaps(); |
d5219d0d |
689 | if(ISetits(2,-1)==1){ |
690 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
691 | mgr2->SetClippingShape(clip); |
692 | } // end if |
d1a22f9a |
693 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
694 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
695 | // |
696 | c3->cd(1); |
697 | SDD->Draw(); |
698 | TPad *p1 = c3->GetPad(1); |
699 | TView *view1 = p1->GetView(); |
700 | if(view1){ |
701 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
702 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
703 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d1a22f9a |
704 | else view1->SetPerspective(); |
705 | view1->Front(); |
706 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
707 | } // end if view1 |
d5219d0d |
708 | if(ISetits(5,-1)==1) SDD->Raytrace(); |
709 | //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz); |
d1a22f9a |
710 | // |
711 | c3->cd(2); |
712 | SDD->Draw(); |
713 | TPad *p2 = c3->GetPad(2); |
714 | TView *view2 = p2->GetView(); |
715 | if(view2){ |
716 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
717 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
718 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d1a22f9a |
719 | else view2->SetPerspective(); |
720 | view2->Top(); |
721 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
722 | } // end if view2 |
d5219d0d |
723 | if(ISetits(5,-1)==1) SDD->Raytrace(); |
724 | //arrow->DrawArrow(Rmax,0.0,Rmax,0.0); |
725 | //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7); |
726 | //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s); |
727 | // |
728 | } |
729 | //---------------------------------------------------------------------- |
730 | void EngineeringSSDCone(){ |
731 | // Display SSD Cone Geometry |
732 | // Inputs: |
733 | // none. |
734 | // Outputs: |
735 | // none. |
736 | // Retrurn: |
737 | // none. |
738 | Int_t irr; |
739 | // |
740 | TGeoManager *mgr2 = gGeoManager; |
741 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
742 | TCanvas *c2; |
743 | if(!(c2 = (TCanvas*)gROOT->FindObject("C2"))) |
744 | c2 = new TCanvas("C2","ITS SSD Cone Geometry",900,450); |
745 | c2->Divide(2,1); |
746 | TGeoVolume *ITS,*SSD=0; |
747 | TGeoNode *node; |
748 | // |
749 | node = ALIC->FindNode("ITSV_1"); |
750 | ITS = node->GetVolume(); |
751 | node = ITS->FindNode("ITSssdConeA_1"); |
752 | SSD = node->GetVolume(); |
753 | // |
754 | mgr2->SetNsegments(ISetits(1,-1)); |
755 | // |
756 | mgr2->SetVisLevel(6); |
757 | mgr2->SetVisOption(0); |
758 | //mgr2->CheckOverlaps(0.01); |
759 | //mgr2->PrintOverlaps(); |
760 | if(ISetits(2,-1)==1){ |
761 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
762 | mgr2->SetClippingShape(clip); |
763 | } // end if |
764 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
765 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
766 | // |
767 | c2->cd(1); |
768 | SSD->Draw(); |
769 | TPad *p1 = c2->GetPad(1); |
770 | TView *view1 = p1->GetView(); |
771 | if(view1){ |
772 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
773 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
774 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d5219d0d |
775 | else view1->SetPerspective(); |
776 | view1->Top(); |
777 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
778 | } // end if view1 |
779 | if(ISetits(5,-1)==1) SSD->Raytrace(); |
780 | // |
781 | c2->cd(2); |
782 | SSD->Draw(); |
783 | TPad *p2 = c2->GetPad(2); |
784 | TView *view2 = p2->GetView(); |
785 | if(view2){ |
786 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
787 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
788 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d5219d0d |
789 | else view2->SetPerspective(); |
790 | view2->Front(); |
791 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
792 | } // end if view1 |
793 | if(ISetits(5,-1)==1) SSD->Raytrace(); |
794 | // |
795 | } |
796 | //---------------------------------------------------------------------- |
797 | void EngineeringSSDCylinder(){ |
798 | // Display SSD Cylinder Geometry |
799 | // Inputs: |
800 | // none. |
801 | // Outputs: |
802 | // none. |
803 | // Retrurn: |
804 | // none. |
805 | Int_t irr; |
806 | // |
807 | TGeoManager *mgr2 = gGeoManager; |
808 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
809 | TCanvas *c3; |
810 | if(!(c3 = (TCanvas*)gROOT->FindObject("C3"))) |
811 | c3 = new TCanvas("C3","ITS SSD Cylinder Geometry",900,450); |
812 | c3->Divide(2,1); |
813 | TGeoVolume *ITS,*SSD=0; |
814 | TGeoNode *node; |
815 | TArrow *arrow=new TArrow(); |
816 | // |
817 | node = ALIC->FindNode("ITSV_1"); |
818 | ITS = node->GetVolume(); |
819 | node = ITS->FindNode("ITSssdCentCylCA_1"); |
820 | SSD = node->GetVolume(); |
db486a6e |
821 | //Double_t Rmin = ((TGeoPcon*)(SSD->GetShape()))->GetRmin(); |
822 | //Double_t Rmax = ((TGeoPcon*)(SSD->GetShape()))->GetRmax(); |
823 | //Double_t Dz = ((TGeoPcon*)(SSD->GetShape()))->GetDz(); |
d5219d0d |
824 | // |
825 | mgr2->SetNsegments(ISetits(1,-1)); |
826 | // |
827 | mgr2->SetVisLevel(6); |
828 | mgr2->SetVisOption(0); |
829 | //mgr2->CheckOverlaps(0.01); |
830 | //mgr2->PrintOverlaps(); |
831 | if(ISetits(2,-1)==1){ |
832 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
833 | mgr2->SetClippingShape(clip); |
834 | } // end if |
835 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
836 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
837 | // |
838 | c3->cd(1); |
839 | SSD->Draw(); |
840 | TPad *p1 = c3->GetPad(1); |
841 | TView *view1 = p1->GetView(); |
842 | if(view1){ |
843 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
844 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
845 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d5219d0d |
846 | else view1->SetPerspective(); |
847 | view1->Front(); |
848 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
849 | } // end if view1 |
850 | if(ISetits(5,-1)==1) SSD->Raytrace(); |
851 | //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz); |
852 | // |
853 | c3->cd(2); |
854 | SSD->Draw(); |
855 | TPad *p2 = c3->GetPad(2); |
856 | TView *view2 = p2->GetView(); |
857 | if(view2){ |
858 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
859 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
860 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d5219d0d |
861 | else view2->SetPerspective(); |
862 | view2->Top(); |
863 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
864 | } // end if view2 |
865 | if(ISetits(5,-1)==1) SSD->Raytrace(); |
866 | //arrow->DrawArrow(Rmax,0.0,Rmax,0.0); |
867 | //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7); |
868 | //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s); |
d1a22f9a |
869 | // |
870 | } |
871 | //---------------------------------------------------------------------- |
872 | void EngineeringSupRB24(){ |
d5219d0d |
873 | // Display RB 24 side cable tray support structure Geometry |
d1a22f9a |
874 | // Inputs: |
875 | // none. |
876 | // Outputs: |
877 | // none. |
878 | // Retrurn: |
879 | // none. |
880 | Int_t irr; |
881 | // |
882 | TGeoManager *mgr2 = gGeoManager; |
883 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
884 | TCanvas *c4; |
885 | if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
886 | c4 = new TCanvas("C4","ITS SDD Cylinder Geometry",900,450); |
887 | c4->Divide(2,1); |
888 | TGeoVolume *ITS,*SUPRB24=0; |
889 | TGeoNode *node; |
890 | TArrow *arrow=new TArrow(); |
891 | // |
892 | node = ALIC->FindNode("ITSV_1"); |
893 | ITS = node->GetVolume(); |
894 | node = ITS->FindNode("ITSsupFrameM24_1"); |
895 | SUPRB24 = node->GetVolume(); |
896 | // |
897 | mgr2->SetNsegments(ISetits(1,-1)); |
898 | // |
899 | mgr2->SetVisLevel(6); |
900 | mgr2->SetVisOption(0); |
901 | //mgr2->CheckOverlaps(0.01); |
902 | //mgr2->PrintOverlaps(); |
d5219d0d |
903 | if(ISetits(2,-1)==1){ |
904 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
905 | mgr2->SetClippingShape(clip); |
906 | } // end if |
d1a22f9a |
907 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
908 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
909 | // |
910 | c4->cd(1); |
911 | SUPRB24->Draw(); |
912 | TPad *p1 = c4->GetPad(1); |
913 | TView *view1 = p1->GetView(); |
914 | if(view1){ |
915 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
916 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
917 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d1a22f9a |
918 | else view1->SetPerspective(); |
919 | view1->Front(); |
920 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
921 | } // end if view1 |
d5219d0d |
922 | if(ISetits(5,-1)==1) SUPRB24->Raytrace(); |
d1a22f9a |
923 | // |
924 | c4->cd(2); |
925 | SUPRB24->Draw(); |
926 | TPad *p2 = c4->GetPad(2); |
927 | TView *view2 = p2->GetView(); |
928 | if(view2){ |
929 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
930 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
931 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d1a22f9a |
932 | else view2->SetPerspective(); |
933 | view2->Top(); |
934 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
935 | } // end if view2 |
d5219d0d |
936 | if(ISetits(5,-1)==1) SUPRB24->Raytrace(); |
d1a22f9a |
937 | // |
938 | } |
db486a6e |
939 | //---------------------------------------------------------------------- |
940 | void EngineeringSupTrayRB24(){ |
941 | // Display RB 24 side cable tray support structure Geometry |
942 | // Inputs: |
943 | // none. |
944 | // Outputs: |
945 | // none. |
946 | // Retrurn: |
947 | // none. |
948 | Int_t irr; |
949 | // |
950 | TGeoManager *mgr2 = gGeoManager; |
951 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
952 | TCanvas *c4,*c5; |
953 | //if(!(c4 = (TCanvas*)gROOT->FindObject("C4"))) |
954 | c4 = new TCanvas("C4","ITS RB24 Cable Trays and Patch Pannels",500,500); |
955 | //c4->Divide(2,1); |
956 | TGeoVolume *ITS,*SUPRB24=0; |
957 | TGeoNode *node; |
958 | TArrow *arrow=new TArrow(); |
959 | // |
960 | node = ALIC->FindNode("ITSV_1"); |
961 | ITS = node->GetVolume(); |
962 | node = ITS->FindNode("ITSsupCableTrayMotherMT24_1"); |
963 | SUPRB24 = node->GetVolume(); |
964 | // |
965 | mgr2->SetNsegments(ISetits(1,-1)); |
966 | // |
967 | mgr2->SetVisLevel(6); |
968 | mgr2->SetVisOption(0); |
969 | //mgr2->CheckOverlaps(0.01); |
970 | //mgr2->PrintOverlaps(); |
971 | if(ISetits(2,-1)==1){ |
972 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
973 | mgr2->SetClippingShape(clip); |
974 | } // end if |
975 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
976 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
977 | // |
978 | c4->cd(1); |
979 | SUPRB24->Draw(); |
980 | //TPad *p1 = c4->GetPad(1); |
981 | //TView *view1 = p1->GetView(); |
982 | TView *view1 = c4->GetView(); |
983 | if(view1){ |
984 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
985 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
986 | if(ISetits(4,-1)==0) view1->SetParallel(); |
db486a6e |
987 | else view1->SetPerspective(); |
988 | view1->Front(); |
989 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
990 | } // end if view1 |
991 | if(ISetits(5,-1)==1) SUPRB24->Raytrace(); |
992 | // |
993 | //c4->cd(2); |
994 | c5 = new TCanvas("C5","ITS RB24 Cable Trays and Patch Pannels",500,500); |
995 | c5->cd(1); |
996 | SUPRB24->Draw(); |
997 | //TPad *p2 = c5->GetPad(1); |
998 | //TView *view2 = p2->GetView(); |
999 | TView *view2 = c5->GetView(); |
1000 | if(view2){ |
1001 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
1002 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
1003 | if(ISetits(4,-1)==0) view2->SetParallel(); |
db486a6e |
1004 | else view2->SetPerspective(); |
1005 | view2->Top(); |
1006 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
1007 | } // end if view2 |
1008 | if(ISetits(5,-1)==1) SUPRB24->Raytrace(); |
1009 | // |
1010 | } |
d1a22f9a |
1011 | //---------------------------------------------------------------------- |
1012 | void EngineeringSupRB26(){ |
d5219d0d |
1013 | // Display RB 26 side cable tray support structure |
d1a22f9a |
1014 | // Inputs: |
1015 | // none. |
1016 | // Outputs: |
1017 | // none. |
1018 | // Retrurn: |
1019 | // none. |
1020 | Int_t irr; |
1021 | // |
1022 | TGeoManager *mgr2 = gGeoManager; |
1023 | TGeoVolume *ALIC = mgr2->GetTopVolume(); |
1024 | TCanvas *c5; |
1025 | if(!(c5 = (TCanvas*)gROOT->FindObject("C5"))) |
1026 | c5 = new TCanvas("C5","ITS SDD Cylinder Geometry",900,450); |
1027 | c5->Divide(2,1); |
1028 | TGeoVolume *ITS,*SUPRB26=0; |
1029 | TGeoNode *node; |
1030 | TArrow *arrow=new TArrow(); |
1031 | // |
1032 | node = ALIC->FindNode("ITSV_1"); |
1033 | ITS = node->GetVolume(); |
1034 | node = ITS->FindNode("ITSsupFrameM26_1"); |
1035 | SUPRB26 = node->GetVolume(); |
1036 | // |
1037 | mgr2->SetNsegments(ISetits(1,-1)); |
1038 | // |
1039 | mgr2->SetVisLevel(6); |
1040 | mgr2->SetVisOption(0); |
1041 | //mgr2->CheckOverlaps(0.01); |
1042 | //mgr2->PrintOverlaps(); |
d5219d0d |
1043 | if(ISetits(2,-1)==1){ |
1044 | TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90); |
1045 | mgr2->SetClippingShape(clip); |
1046 | } // end if |
d1a22f9a |
1047 | mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
1048 | if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.)); |
1049 | // |
1050 | c5->cd(1); |
1051 | SUPRB26->Draw(); |
1052 | TPad *p1 = c5->GetPad(1); |
1053 | TView *view1 = p1->GetView(); |
1054 | if(view1){ |
1055 | view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
1056 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
1057 | if(ISetits(4,-1)==0) view1->SetParallel(); |
d1a22f9a |
1058 | else view1->SetPerspective(); |
1059 | view1->Front(); |
1060 | if(ISetits(3,-1)!=0) view1->ShowAxis(); |
1061 | } // end if view1 |
d5219d0d |
1062 | if(ISetits(5,-1)==1) SUPRB26->Raytrace(); |
d1a22f9a |
1063 | // |
1064 | c5->cd(2); |
1065 | SUPRB26->Draw(); |
1066 | TPad *p2 = c5->GetPad(2); |
1067 | TView *view2 = p2->GetView(); |
1068 | if(view2){ |
1069 | view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr); |
1070 | if(irr) cout <<"error="<<irr<<endl; |
012f0f4c |
1071 | if(ISetits(4,-1)==0) view2->SetParallel(); |
d1a22f9a |
1072 | else view2->SetPerspective(); |
1073 | view2->Top(); |
1074 | if(ISetits(3,-1)!=0) view2->ShowAxis(); |
1075 | } // end if view2 |
d5219d0d |
1076 | if(ISetits(5,-1)==1) SUPRB26->Raytrace(); |
d1a22f9a |
1077 | // |
1078 | } |