]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ITS/Displayv11.C
Adding router nr in dcs configuration file and removing ClassDef macro in AliITSOnlin...
[u/mrichter/AliRoot.git] / ITS / Displayv11.C
... / ...
CommitLineData
1//----------------------------------------------------------------------
2void 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 //
13 if(gGeoManager) delete gGeoManager;
14 mgr2 = gGeoManager = new TGeoManager("ITSGeometry",
15 " ITS Simulation Geometry Manager");
16 //
17 TGeoMaterial *vacmat = new TGeoMaterial("Vacume",0,0,0);
18 TGeoMedium *vacmed = new TGeoMedium("Vacume_med",1,vacmat);
19 TGeoVolume *ALIC = mgr2->MakeBox("ALIC",vacmed,1000.,1000.,2000.);
20 mgr2->SetTopVolume(ALIC);
21 TGeoVolume *ITS = mgr2->MakeBox("ITSV",vacmed,990.,990.,1990.);
22 TGeoVolumeAssembly *ITSspd = new TGeoVolumeAssembly("ITSspd");
23 ITS->AddNode(ITSspd,1);
24 ALIC->AddNode(ITS,1);
25 //
26 /*
27 AliITSv11 *its = new AliITSv11(0,3);
28 its->SetDebug(ISetits(0,-1));
29 its->GetSPDGeometry()->SetDebug(ISetits(0,-1));
30 its->GetSupGeometry()->SetDebug(ISetits(0,-1));
31 its->CreateMaterials();
32 its->CreateGeometry();
33 */
34 AliITSv11GeometrySPD *gspd = new AliITSv11GeometrySPD(0);
35 //AliITSv11GeometrySDD *gsdd = new AliITSv11GeometrySDD();
36 AliITSv11GeometrySupport *gsupp = new AliITSv11GeometrySupport(0);
37 //AliITSv11GeometrySSD *gssd = new AliITSv11GeometrySSD();
38 //
39 Int_t imat=1,imed=1;
40 gspd->CreateSPDCenteralMaterials(imed,imat);
41 gspd->SPDSector(ITSspd,mgr2);
42 gsupp->SPDCone(ITS,mgr2);
43 gsupp->SetDebug(0);
44 gsupp->SDDCone(ITS,mgr2);
45 //gsdd->Layer3(ITS);
46 //gsdd->Layer4(ITS);
47 gsupp->SSDCone(ITS,mgr2);
48 gsupp->ServicesCableSupport(ITS);
49 //
50 mgr2->CloseGeometry();
51 //
52 TControlBar *bar=new TControlBar("vertical","ITS Geometry Display",10,10);
53 bar->AddButton("Set Clipping on","ISetits(2,1)","Clipping on");
54 bar->AddButton("Set Cllipping off","ISetits(2,0)","Clipping off");
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");
59 bar->AddButton("Set RayTrace on","ISetits(5,1)","Perspective on");
60 bar->AddButton("Set RayTrace off","ISetits(5,0)","Perspective off");
61 bar->AddButton("Set circle/80","ISetits(1,80)","circles ~ by 80 lines");
62 bar->AddButton("Display Geometry","Displayit()","Run Displayit");
63 bar->AddButton("Display SPD Sector Volume","EngineeringSPDSector()",
64 "Run EngineeringSPDSector");
65 bar->AddButton("Display SPD Ceneral Volume","EngineeringSPDCenter()",
66 "Run EngineeringSPDCenter");
67 bar->AddButton("Display SPD Thermal Sheald","EngineeringSPDThS()",
68 "Run EngineeringSPDThS");
69 bar->AddButton("Display SDD Layer 3","EngineeringSDDLayer3()",
70 "Run EngineeringSDDLayer3");
71 bar->AddButton("Display SDD Layer 4","EngineeringSDDLayer4()",
72 "Run EngineeringSDDLayer4");
73 bar->AddButton("Display SDD Cone","EngineeringSDDCone()",
74 "Run EngineeringSDDCone");
75 bar->AddButton("Display SDD Centeral Cylinder","EngineeringSDDCylinder()",
76 "Run EngineeringSDDCylinder");
77 bar->AddButton("Display SSD Cone","EngineeringSSDCone()",
78 "Run EngineeringSSDCone");
79 bar->AddButton("Display SSD Centeral Cylinder","EngineeringSSDCylinder()",
80 "Run EngineeringSSDCylinder");
81 bar->AddButton("Display SUP RB24 side","EngineeringSupRB24()",
82 "Run EngineeringSupRB24");
83 bar->AddButton("Display Cable Trays RB24 side","EngineeringSupTrayRB24()",
84 "Run EngineeringSupTrayRB24");
85 bar->AddButton("Display SUP RB26 side","EngineeringSupRB26()",
86 "Run EngineeringSupRB26");
87 bar->AddButton("Save Geometry to File","ExportToFile()",
88 "Run ExportToFile");
89 bar->AddButton("Quit/Exit",".q","Exit");
90 bar->Show();
91 gROOT->SaveContext();
92 //Displayit();
93}
94//----------------------------------------------------------------------
95void 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//----------------------------------------------------------------------
111Int_t ISetits(Int_t t,Int_t v){
112 static Int_t itsdebug=1,nsegments=80,cut=0,axis=1,perspective=0,ray=0;
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;
135 case 5:
136 if(v<0) return ray;
137 ray = v;
138 break;
139 }// end switch
140 return 0;
141}
142//----------------------------------------------------------------------
143Double_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//----------------------------------------------------------------------
172void 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));
190 //
191 mgr2->SetVisLevel(6);
192 mgr2->SetVisOption(0);
193 //mgr2->CheckOverlaps(0.01);
194 //mgr2->PrintOverlaps();
195 if(ISetits(2,-1)==1){
196 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
197 mgr2->SetClippingShape(clip);
198 } // end if
199 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
200 //
201 c1->cd(1);
202 ALIC->Draw();
203 TPad *p1 = c1->GetPad(1);
204 TView *view1 = p1->GetView();
205 if(view1){
206 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
207 if(irr) cout <<"error="<<irr<<endl;
208 if(ISetits(4,-1)==0) view1->SetParallel();
209 else view1->SetPerspective();
210 view1->Front();
211 if(ISetits(3,-1)!=0) view1->ShowAxis();
212 } // end if view1
213 if(ISetits(5,-1)==1) ALIC->Raytrace();
214 c1->cd(2);
215 ALIC->Draw();
216 TPad *p2 = c1->GetPad(2);
217 TView *view2 = p2->GetView();
218 if(view2){
219 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
220 if(irr) cout <<"error="<<irr<<endl;
221 if(ISetits(4,-1)==0) view2->SetParallel();
222 else view2->SetPerspective();
223 view2->RotateView(60.,30.);
224 if(ISetits(3,-1)!=0) view2->ShowAxis();
225 } // end if view2
226 if(ISetits(5,-1)==1) ALIC->Raytrace();
227 c1->cd(3);
228 ALIC->Draw();
229 c1->SetPhi(90.0); c1->SetTheta(90.0);
230 TPad *p3 = c1->GetPad(3);
231 TView *view3 = p3->GetView();
232 if(view3){
233 view3->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
234 if(irr) cout <<"error="<<irr<<endl;
235 if(ISetits(4,-1)==0) view3->SetParallel();
236 else view3->SetPerspective();
237 view3->Top();
238 if(ISetits(3,-1)!=0) view3->ShowAxis();
239 } // end if view3
240 if(ISetits(5,-1)==1) ALIC->Raytrace();
241 c1->cd(4);
242 ALIC->Draw();
243 TPad *p4 = c1->GetPad(4);
244 TView *view4 = p4->GetView();
245 if(view4){
246 view4->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
247 if(irr) cout <<"error="<<irr<<endl;
248 if(ISetits(4,-1)==0) view4->SetParallel();
249 else view4->SetPerspective();
250 view4->Side();
251 if(ISetits(3,-1)!=0) view4->ShowAxis();
252 } // end if view4
253 if(ISetits(5,-1)==1) ALIC->Raytrace();
254 //
255}
256//----------------------------------------------------------------------
257void EngineeringSPDSector(){
258 // Display SPD Sector Geometry
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);
272 TGeoVolume *ITS,*ITSspd,*SPDLay=0;
273 TGeoNode *node;
274 TArrow *arrow=new TArrow();
275 //
276 node = ALIC->FindNode("ITSV_1");
277 ITS = node->GetVolume();
278 node = ITS->FindNode("ITSspd_1");
279 ITSspd = node->GetVolume();
280 node = ITSspd->FindNode("ITSSPDCarbonFiberSectorV_1");
281 //node = ITSspd->FindNode("ITSSPDTempSPDMotherVolume_1");
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;
302 if(ISetits(4,-1)==0) view1->SetParallel();
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")))
310 c5 = new TCanvas("C5","ITS SPD Sector Geometry End View",500,500);
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;
316 if(ISetits(4,-1)==0) view2->SetParallel();
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//----------------------------------------------------------------------
325void 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//----------------------------------------------------------------------
390void 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();
412 node = ITS->FindNode("ITSspdThermalShealdMother_1");
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();
421 if(ISetits(2,-1)==1){
422 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
423 mgr2->SetClippingShape(clip);
424 } // end if
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;
435 if(ISetits(4,-1)==0) view1->SetParallel();
436 else view1->SetPerspective();
437 view1->Front();
438 if(ISetits(3,-1)!=0) view1->ShowAxis();
439 } // end if view1
440 if(ISetits(5,-1)==1) SPDThS->Raytrace();
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;
449 if(ISetits(4,-1)==0) view2->SetParallel();
450 else view2->SetPerspective();
451 view2->Top();
452 if(ISetits(3,-1)!=0) view2->ShowAxis();
453 } // end if view2
454 if(ISetits(5,-1)==1) SPDThS->Raytrace();
455 //
456}
457//----------------------------------------------------------------------
458void 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;
500 if(ISetits(4,-1)==0) view1->SetParallel();
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;
514 if(ISetits(4,-1)==0) view2->SetParallel();
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//----------------------------------------------------------------------
523void 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;
565 if(ISetits(4,-1)==0) view1->SetParallel();
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;
579 if(ISetits(4,-1)==0) view2->SetParallel();
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//----------------------------------------------------------------------
588void 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();
618 if(ISetits(2,-1)==1){
619 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
620 mgr2->SetClippingShape(clip);
621 } // end if
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;
632 if(ISetits(4,-1)==0) view1->SetParallel();
633 else view1->SetPerspective();
634 view1->Front();
635 if(ISetits(3,-1)!=0) view1->ShowAxis();
636 } // end if view1
637 if(ISetits(5,-1)==1) SDD->Raytrace();
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;
646 if(ISetits(4,-1)==0) view2->SetParallel();
647 else view2->SetPerspective();
648 view2->Top();
649 if(ISetits(3,-1)!=0) view2->ShowAxis();
650 } // end if view1
651 if(ISetits(5,-1)==1) SDD->Raytrace();
652 //
653}
654//----------------------------------------------------------------------
655void 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();
689 if(ISetits(2,-1)==1){
690 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
691 mgr2->SetClippingShape(clip);
692 } // end if
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;
703 if(ISetits(4,-1)==0) view1->SetParallel();
704 else view1->SetPerspective();
705 view1->Front();
706 if(ISetits(3,-1)!=0) view1->ShowAxis();
707 } // end if view1
708 if(ISetits(5,-1)==1) SDD->Raytrace();
709 //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
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;
718 if(ISetits(4,-1)==0) view2->SetParallel();
719 else view2->SetPerspective();
720 view2->Top();
721 if(ISetits(3,-1)!=0) view2->ShowAxis();
722 } // end if view2
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//----------------------------------------------------------------------
730void 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;
774 if(ISetits(4,-1)==0) view1->SetParallel();
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;
788 if(ISetits(4,-1)==0) view2->SetParallel();
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//----------------------------------------------------------------------
797void 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();
821 //Double_t Rmin = ((TGeoPcon*)(SSD->GetShape()))->GetRmin();
822 //Double_t Rmax = ((TGeoPcon*)(SSD->GetShape()))->GetRmax();
823 //Double_t Dz = ((TGeoPcon*)(SSD->GetShape()))->GetDz();
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;
845 if(ISetits(4,-1)==0) view1->SetParallel();
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;
860 if(ISetits(4,-1)==0) view2->SetParallel();
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);
869 //
870}
871//----------------------------------------------------------------------
872void EngineeringSupRB24(){
873 // Display RB 24 side cable tray support structure Geometry
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();
903 if(ISetits(2,-1)==1){
904 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
905 mgr2->SetClippingShape(clip);
906 } // end if
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;
917 if(ISetits(4,-1)==0) view1->SetParallel();
918 else view1->SetPerspective();
919 view1->Front();
920 if(ISetits(3,-1)!=0) view1->ShowAxis();
921 } // end if view1
922 if(ISetits(5,-1)==1) SUPRB24->Raytrace();
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;
931 if(ISetits(4,-1)==0) view2->SetParallel();
932 else view2->SetPerspective();
933 view2->Top();
934 if(ISetits(3,-1)!=0) view2->ShowAxis();
935 } // end if view2
936 if(ISetits(5,-1)==1) SUPRB24->Raytrace();
937 //
938}
939//----------------------------------------------------------------------
940void 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;
986 if(ISetits(4,-1)==0) view1->SetParallel();
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;
1003 if(ISetits(4,-1)==0) view2->SetParallel();
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}
1011//----------------------------------------------------------------------
1012void EngineeringSupRB26(){
1013 // Display RB 26 side cable tray support structure
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();
1043 if(ISetits(2,-1)==1){
1044 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
1045 mgr2->SetClippingShape(clip);
1046 } // end if
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;
1057 if(ISetits(4,-1)==0) view1->SetParallel();
1058 else view1->SetPerspective();
1059 view1->Front();
1060 if(ISetits(3,-1)!=0) view1->ShowAxis();
1061 } // end if view1
1062 if(ISetits(5,-1)==1) SUPRB26->Raytrace();
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;
1071 if(ISetits(4,-1)==0) view2->SetParallel();
1072 else view2->SetPerspective();
1073 view2->Top();
1074 if(ISetits(3,-1)!=0) view2->ShowAxis();
1075 } // end if view2
1076 if(ISetits(5,-1)==1) SUPRB26->Raytrace();
1077 //
1078}