1 //----------------------------------------------------------------------
2 void Displayv11(const char* filename=""){
3 // Display AliITSv11 Geometry
5 // const char* filename output file with the display in it
11 gSystem->Load("libGeom");
13 if(gGeoManager) delete gGeoManager;
14 mgr2 = gGeoManager = new TGeoManager("ITSGeometry",
15 " ITS Simulation Geometry Manager");
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,100.,100.,200.);
20 mgr2->SetTopVolume(ALIC);
21 TGeoVolume *ITS = mgr2->MakeBox("ITSV",vacmed,99.,99.,199.);
25 AliITSv11 *its = new AliITSv11(0,3);
26 its->SetDebug(ISetits(0,-1));
27 its->GetSPDGeometry()->SetDebug(ISetits(0,-1));
28 its->GetSupGeometry()->SetDebug(ISetits(0,-1));
29 its->CreateMaterials();
30 its->CreateGeometry();
32 AliITSv11GeometrySPD *gspd = new AliITSv11GeometrySPD();
33 //AliITSv11GeometrySDD *gsdd = new AliITSgeometrySDD();
34 //AliITSv11GeometrySupport *gsupp = new AliITSGeometrySupport();
35 //AliITSv11GeometrySSD *gssd = new AliITSGeometrySSD();
38 gspd->CreateSPDCenteralMaterials(imed,imat);
39 gspd->SPDSector(ITS,mgr2);
41 mgr2->CloseGeometry();
43 TControlBar *bar=new TControlBar("vertical","ITS Geometry Display",10,10);
44 bar->AddButton("Set Clipping on","ISetits(2,1)","Clipping on");
45 bar->AddButton("Set Cllipping off","ISetits(2,0)","Clipping off");
46 bar->AddButton("Set axis on","ISetits(3,1)","Show Axis on");
47 bar->AddButton("Set axis off","ISetits(3,0)","Show Axis off");
48 bar->AddButton("Set perspective on","ISetits(4,1)","Perspective on");
49 bar->AddButton("Set perspective off","ISetits(4,0)","Perspective off");
50 bar->AddButton("Set RayTrace on","ISetits(5,1)","Perspective on");
51 bar->AddButton("Set RayTrace off","ISetits(5,0)","Perspective off");
52 bar->AddButton("Set circle/80","ISetits(1,80)","circles ~ by 80 lines");
53 bar->AddButton("Display Geometry","Displayit()","Run Displayit");
54 bar->AddButton("Display SPD Ceneral Volume","EngineeringSPDLayer()",
55 "Run EngineeringSPDLayer");
56 bar->AddButton("Display SPD Thermal Sheald","EngineeringSPDThS()",
57 "Run EngineeringSPDThS");
58 bar->AddButton("Display SDD Layer 3","EngineeringSDDLayer3()",
59 "Run EngineeringSDDLayer3");
60 bar->AddButton("Display SDD Layer 4","EngineeringSDDLayer4()",
61 "Run EngineeringSDDLayer4");
62 bar->AddButton("Display SDD Cone","EngineeringSDDCone()",
63 "Run EngineeringSDDCone");
64 bar->AddButton("Display SDD Centeral Cylinder","EngineeringSDDCylinder()",
65 "Run EngineeringSDDCylinder");
66 bar->AddButton("Display SSD Cone","EngineeringSSDCone()",
67 "Run EngineeringSSDCone");
68 bar->AddButton("Display SSD Centeral Cylinder","EngineeringSSDCylinder()",
69 "Run EngineeringSSDCylinder");
70 bar->AddButton("Display SUP RB24 side","EngineeringSupRB24()",
71 "Run EngineeringSupRB24");
72 bar->AddButton("Display Cable Trays RB24 side","EngineeringSupTrayRB24()",
73 "Run EngineeringSupTrayRB24");
74 bar->AddButton("Display SUP RB26 side","EngineeringSupRB26()",
75 "Run EngineeringSupRB26");
76 bar->AddButton("Save Geometry to File","ExportToFile()",
78 bar->AddButton("Quit/Exit",".q","Exit");
83 //----------------------------------------------------------------------
85 // Quirry file name and write geometry to a root file.
87 // const char* filename output file with the display in it
94 printf("Eneter File name:");
97 gGeoManager->Export(filename);
99 //----------------------------------------------------------------------
100 Int_t ISetits(Int_t t,Int_t v){
101 static Int_t itsdebug=1,nsegments=80,cut=0,axis=1,perspective=0,ray=0;
105 if(v<0) return itsdebug;
109 if(v<0) return nsegments;
121 if(v<0) return perspective;
131 //----------------------------------------------------------------------
132 Double_t DSetits(Int_t t,Double_t v){
133 static Double_t phimincut=0.0,phimaxcut=180.0;
134 static Double_t longitude=90.0,latitude=0.0,psi=0.0;
138 if(v<0.) return phimincut;
142 if(v<0.) return phimaxcut;
146 if(v<0.) return longitude;
150 if(v<0.) return latitude;
154 if(v<0.) return latitude;
160 //----------------------------------------------------------------------
162 // Display AliITSv11 Geometry
164 // const char* filename output file with the display in it
171 TGeoManager *mgr2 = gGeoManager;
172 TGeoVolume *ALIC = mgr2->GetTopVolume();
174 if(!(c1 = (TCanvas*)gROOT->FindObject("C1")))
175 c1 = new TCanvas("C1","ITS Simulation Geometry",900,900);
178 mgr2->SetNsegments(ISetits(1,-1));
180 mgr2->SetVisLevel(6);
181 mgr2->SetVisOption(0);
182 //mgr2->CheckOverlaps(0.01);
183 //mgr2->PrintOverlaps();
184 if(ISetits(2,-1)==1){
185 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
186 mgr2->SetClippingShape(clip);
188 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
192 TPad *p1 = c1->GetPad(1);
193 TView *view1 = p1->GetView();
195 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
196 if(irr) cout <<"error="<<irr<<endl;
197 if(ISetits(4,-1)==0) view1->SetParallel();
198 else view1->SetPerspective();
200 if(ISetits(3,-1)!=0) view1->ShowAxis();
202 if(ISetits(5,-1)==1) ALIC->Raytrace();
205 TPad *p2 = c1->GetPad(2);
206 TView *view2 = p2->GetView();
208 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
209 if(irr) cout <<"error="<<irr<<endl;
210 if(ISetits(4,-1)==0) view2->SetParallel();
211 else view2->SetPerspective();
212 view2->RotateView(60.,30.);
213 if(ISetits(3,-1)!=0) view2->ShowAxis();
215 if(ISetits(5,-1)==1) ALIC->Raytrace();
218 c1->SetPhi(90.0); c1->SetTheta(90.0);
219 TPad *p3 = c1->GetPad(3);
220 TView *view3 = p3->GetView();
222 view3->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
223 if(irr) cout <<"error="<<irr<<endl;
224 if(ISetits(4,-1)==0) view3->SetParallel();
225 else view3->SetPerspective();
227 if(ISetits(3,-1)!=0) view3->ShowAxis();
229 if(ISetits(5,-1)==1) ALIC->Raytrace();
232 TPad *p4 = c1->GetPad(4);
233 TView *view4 = p4->GetView();
235 view4->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
236 if(irr) cout <<"error="<<irr<<endl;
237 if(ISetits(4,-1)==0) view4->SetParallel();
238 else view4->SetPerspective();
240 if(ISetits(3,-1)!=0) view4->ShowAxis();
242 if(ISetits(5,-1)==1) ALIC->Raytrace();
245 //----------------------------------------------------------------------
246 void EngineeringSPDLayer(){
247 // Display SPD Layer Geometry
256 TGeoManager *mgr2 = gGeoManager;
257 TGeoVolume *ALIC = mgr2->GetTopVolume();
259 if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
260 c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500);
261 TGeoVolume *ITS,*SPDLay=0;
263 TArrow *arrow=new TArrow();
265 node = ALIC->FindNode("ITSV_1");
266 ITS = node->GetVolume();
267 node = ITS->FindNode("ITSSPDCarbonFiberSectorV_1");
268 //node = ITS->FindNode("ITSSPDTempSPDMotherVolume_1");
269 SPDLay = node->GetVolume();
271 mgr2->SetNsegments(ISetits(1,-1));
273 mgr2->SetVisLevel(6);
274 mgr2->SetVisOption(0);
275 //mgr2->CheckOverlaps(0.01);
276 //mgr2->PrintOverlaps();
277 if(ISetits(2,-1)==1){
278 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
279 mgr2->SetClippingShape(clip);
281 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
282 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
285 TView *view1 = c4->GetView();
287 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
288 if(irr) cout <<"error="<<irr<<endl;
289 if(ISetits(4,-1)==0) view1->SetParralel();
290 else view1->SetPerspective();
292 if(ISetits(3,-1)!=0) view1->ShowAxis();
294 if(ISetits(5,-1)==1) SPDLay->Raytrace();
296 if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
297 c5 = new TCanvas("C5","ITS SPD Layer Geometry End View",500,500);
299 TView *view2 = c5->GetView();
301 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
302 if(irr) cout <<"error="<<irr<<endl;
303 if(ISetits(4,-1)==0) view2->SetParralel();
304 else view2->SetPerspective();
306 if(ISetits(3,-1)!=0) view2->ShowAxis();
308 if(ISetits(5,-1)==1) SPDLay->Raytrace();
311 //----------------------------------------------------------------------
312 void EngineeringSPDThS(){
313 // Display SPD Thermal Sheald Geometry
322 TGeoManager *mgr2 = gGeoManager;
323 TGeoVolume *ALIC = mgr2->GetTopVolume();
325 if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
326 c4 = new TCanvas("C4","ITS SDD Cylinder Geometry",900,450);
328 TGeoVolume *ITS,*SPDThS=0;
330 TArrow *arrow=new TArrow();
332 node = ALIC->FindNode("ITSV_1");
333 ITS = node->GetVolume();
334 node = ITS->FindNode("ITSspdThermalShealdMotherM_1");
335 SPDThS = node->GetVolume();
337 mgr2->SetNsegments(ISetits(1,-1));
339 mgr2->SetVisLevel(6);
340 mgr2->SetVisOption(0);
341 //mgr2->CheckOverlaps(0.01);
342 //mgr2->PrintOverlaps();
343 if(ISetits(2,-1)==1){
344 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
345 mgr2->SetClippingShape(clip);
347 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
348 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
352 TPad *p1 = c4->GetPad(1);
353 TView *view1 = p1->GetView();
355 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
356 if(irr) cout <<"error="<<irr<<endl;
357 if(ISetits(4,-1)==0) view1->SetParralel();
358 else view1->SetPerspective();
360 if(ISetits(3,-1)!=0) view1->ShowAxis();
362 if(ISetits(5,-1)==1) SPDThS->Raytrace();
366 TPad *p2 = c4->GetPad(2);
367 TView *view2 = p2->GetView();
369 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
370 if(irr) cout <<"error="<<irr<<endl;
371 if(ISetits(4,-1)==0) view2->SetParralel();
372 else view2->SetPerspective();
374 if(ISetits(3,-1)!=0) view2->ShowAxis();
376 if(ISetits(5,-1)==1) SPDThS->Raytrace();
379 //----------------------------------------------------------------------
380 void EngineeringSDDLayer3(){
381 // Display SDD Layer 3 Geometry
390 TGeoManager *mgr2 = gGeoManager;
391 TGeoVolume *ALIC = mgr2->GetTopVolume();
393 if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
394 c4 = new TCanvas("C4","ITS SDD Layer 3 Geometry Side View",500,500);
395 TGeoVolume *ITS,*SDDLay3=0;
397 TArrow *arrow=new TArrow();
399 node = ALIC->FindNode("ITSV_1");
400 ITS = node->GetVolume();
401 node = ITS->FindNode("ITSsddLayer3_1");
402 SDDLay3 = node->GetVolume();
404 mgr2->SetNsegments(ISetits(1,-1));
406 mgr2->SetVisLevel(6);
407 mgr2->SetVisOption(0);
408 //mgr2->CheckOverlaps(0.01);
409 //mgr2->PrintOverlaps();
410 if(ISetits(2,-1)==1){
411 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
412 mgr2->SetClippingShape(clip);
414 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
415 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
418 TView *view1 = c4->GetView();
420 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
421 if(irr) cout <<"error="<<irr<<endl;
422 if(ISetits(4,-1)==0) view1->SetParralel();
423 else view1->SetPerspective();
425 if(ISetits(3,-1)!=0) view1->ShowAxis();
427 if(ISetits(5,-1)==1) SDDLay3->Raytrace();
429 if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
430 c5 = new TCanvas("C5","ITS SDD Layer 3 Geometry End View",500,500);
432 TView *view2 = c5->GetView();
434 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
435 if(irr) cout <<"error="<<irr<<endl;
436 if(ISetits(4,-1)==0) view2->SetParralel();
437 else view2->SetPerspective();
439 if(ISetits(3,-1)!=0) view2->ShowAxis();
441 if(ISetits(5,-1)==1) SDDLay3->Raytrace();
444 //----------------------------------------------------------------------
445 void EngineeringSDDLayer4(){
446 // Display SDD Layer 4 Geometry
455 TGeoManager *mgr2 = gGeoManager;
456 TGeoVolume *ALIC = mgr2->GetTopVolume();
458 if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
459 c4 = new TCanvas("C4","ITS SDD Layer 4 Geometry Side View",500,500);
460 TGeoVolume *ITS,*SDDLay4=0;
462 TArrow *arrow=new TArrow();
464 node = ALIC->FindNode("ITSV_1");
465 ITS = node->GetVolume();
466 node = ITS->FindNode("ITSsddLayer4_1");
467 SDDLay4 = node->GetVolume();
469 mgr2->SetNsegments(ISetits(1,-1));
471 mgr2->SetVisLevel(6);
472 mgr2->SetVisOption(0);
473 //mgr2->CheckOverlaps(0.01);
474 //mgr2->PrintOverlaps();
475 if(ISetits(2,-1)==1){
476 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
477 mgr2->SetClippingShape(clip);
479 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
480 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
483 TView *view1 = c4->GetView();
485 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
486 if(irr) cout <<"error="<<irr<<endl;
487 if(ISetits(4,-1)==0) view1->SetParralel();
488 else view1->SetPerspective();
490 if(ISetits(3,-1)!=0) view1->ShowAxis();
492 if(ISetits(5,-1)==1) SDDLay4->Raytrace();
494 if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
495 c5 = new TCanvas("C5","ITS SDD Layer 4 Geometry End View",500,500);
497 TView *view2 = c5->GetView();
499 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
500 if(irr) cout <<"error="<<irr<<endl;
501 if(ISetits(4,-1)==0) view2->SetParralel();
502 else view2->SetPerspective();
504 if(ISetits(3,-1)!=0) view2->ShowAxis();
506 if(ISetits(5,-1)==1) SDDLay4->Raytrace();
509 //----------------------------------------------------------------------
510 void EngineeringSDDCone(){
511 // Display SDD Cone Geometry
520 TGeoManager *mgr2 = gGeoManager;
521 TGeoVolume *ALIC = mgr2->GetTopVolume();
523 if(!(c2 = (TCanvas*)gROOT->FindObject("C2")))
524 c2 = new TCanvas("C2","ITS SDD Cone Geometry",900,450);
526 TGeoVolume *ITS,*SDD=0;
529 node = ALIC->FindNode("ITSV_1");
530 ITS = node->GetVolume();
531 node = ITS->FindNode("ITSsddConeL_1");
532 SDD = node->GetVolume();
534 mgr2->SetNsegments(ISetits(1,-1));
536 mgr2->SetVisLevel(6);
537 mgr2->SetVisOption(0);
538 //mgr2->CheckOverlaps(0.01);
539 //mgr2->PrintOverlaps();
540 if(ISetits(2,-1)==1){
541 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
542 mgr2->SetClippingShape(clip);
544 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
545 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
549 TPad *p1 = c2->GetPad(1);
550 TView *view1 = p1->GetView();
552 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
553 if(irr) cout <<"error="<<irr<<endl;
554 if(ISetits(4,-1)==0) view1->SetParralel();
555 else view1->SetPerspective();
557 if(ISetits(3,-1)!=0) view1->ShowAxis();
559 if(ISetits(5,-1)==1) SDD->Raytrace();
563 TPad *p2 = c2->GetPad(2);
564 TView *view2 = p2->GetView();
566 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
567 if(irr) cout <<"error="<<irr<<endl;
568 if(ISetits(4,-1)==0) view2->SetParralel();
569 else view2->SetPerspective();
571 if(ISetits(3,-1)!=0) view2->ShowAxis();
573 if(ISetits(5,-1)==1) SDD->Raytrace();
576 //----------------------------------------------------------------------
577 void EngineeringSDDCylinder(){
578 // Display SDD Cylinder Geometry
587 TGeoManager *mgr2 = gGeoManager;
588 TGeoVolume *ALIC = mgr2->GetTopVolume();
590 if(!(c3 = (TCanvas*)gROOT->FindObject("C3")))
591 c3 = new TCanvas("C3","ITS SDD Cylinder Geometry",900,450);
593 TGeoVolume *ITS,*SDD=0;
595 TArrow *arrow=new TArrow();
597 node = ALIC->FindNode("ITSV_1");
598 ITS = node->GetVolume();
599 node = ITS->FindNode("ITSsddCentCylCF_1");
600 SDD = node->GetVolume();
601 Double_t Rmin = ((TGeoTube*)(SDD->GetShape()))->GetRmin();
602 Double_t Rmax = ((TGeoTube*)(SDD->GetShape()))->GetRmax();
603 Double_t Dz = ((TGeoTube*)(SDD->GetShape()))->GetDz();
605 mgr2->SetNsegments(ISetits(1,-1));
607 mgr2->SetVisLevel(6);
608 mgr2->SetVisOption(0);
609 //mgr2->CheckOverlaps(0.01);
610 //mgr2->PrintOverlaps();
611 if(ISetits(2,-1)==1){
612 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
613 mgr2->SetClippingShape(clip);
615 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
616 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
620 TPad *p1 = c3->GetPad(1);
621 TView *view1 = p1->GetView();
623 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
624 if(irr) cout <<"error="<<irr<<endl;
625 if(ISetits(4,-1)==0) view1->SetParralel();
626 else view1->SetPerspective();
628 if(ISetits(3,-1)!=0) view1->ShowAxis();
630 if(ISetits(5,-1)==1) SDD->Raytrace();
631 //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
635 TPad *p2 = c3->GetPad(2);
636 TView *view2 = p2->GetView();
638 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
639 if(irr) cout <<"error="<<irr<<endl;
640 if(ISetits(4,-1)==0) view2->SetParralel();
641 else view2->SetPerspective();
643 if(ISetits(3,-1)!=0) view2->ShowAxis();
645 if(ISetits(5,-1)==1) SDD->Raytrace();
646 //arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
647 //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
648 //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
651 //----------------------------------------------------------------------
652 void EngineeringSSDCone(){
653 // Display SSD Cone Geometry
662 TGeoManager *mgr2 = gGeoManager;
663 TGeoVolume *ALIC = mgr2->GetTopVolume();
665 if(!(c2 = (TCanvas*)gROOT->FindObject("C2")))
666 c2 = new TCanvas("C2","ITS SSD Cone Geometry",900,450);
668 TGeoVolume *ITS,*SSD=0;
671 node = ALIC->FindNode("ITSV_1");
672 ITS = node->GetVolume();
673 node = ITS->FindNode("ITSssdConeA_1");
674 SSD = node->GetVolume();
676 mgr2->SetNsegments(ISetits(1,-1));
678 mgr2->SetVisLevel(6);
679 mgr2->SetVisOption(0);
680 //mgr2->CheckOverlaps(0.01);
681 //mgr2->PrintOverlaps();
682 if(ISetits(2,-1)==1){
683 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
684 mgr2->SetClippingShape(clip);
686 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
687 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
691 TPad *p1 = c2->GetPad(1);
692 TView *view1 = p1->GetView();
694 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
695 if(irr) cout <<"error="<<irr<<endl;
696 if(ISetits(4,-1)==0) view1->SetParralel();
697 else view1->SetPerspective();
699 if(ISetits(3,-1)!=0) view1->ShowAxis();
701 if(ISetits(5,-1)==1) SSD->Raytrace();
705 TPad *p2 = c2->GetPad(2);
706 TView *view2 = p2->GetView();
708 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
709 if(irr) cout <<"error="<<irr<<endl;
710 if(ISetits(4,-1)==0) view2->SetParralel();
711 else view2->SetPerspective();
713 if(ISetits(3,-1)!=0) view2->ShowAxis();
715 if(ISetits(5,-1)==1) SSD->Raytrace();
718 //----------------------------------------------------------------------
719 void EngineeringSSDCylinder(){
720 // Display SSD Cylinder Geometry
729 TGeoManager *mgr2 = gGeoManager;
730 TGeoVolume *ALIC = mgr2->GetTopVolume();
732 if(!(c3 = (TCanvas*)gROOT->FindObject("C3")))
733 c3 = new TCanvas("C3","ITS SSD Cylinder Geometry",900,450);
735 TGeoVolume *ITS,*SSD=0;
737 TArrow *arrow=new TArrow();
739 node = ALIC->FindNode("ITSV_1");
740 ITS = node->GetVolume();
741 node = ITS->FindNode("ITSssdCentCylCA_1");
742 SSD = node->GetVolume();
743 //Double_t Rmin = ((TGeoPcon*)(SSD->GetShape()))->GetRmin();
744 //Double_t Rmax = ((TGeoPcon*)(SSD->GetShape()))->GetRmax();
745 //Double_t Dz = ((TGeoPcon*)(SSD->GetShape()))->GetDz();
747 mgr2->SetNsegments(ISetits(1,-1));
749 mgr2->SetVisLevel(6);
750 mgr2->SetVisOption(0);
751 //mgr2->CheckOverlaps(0.01);
752 //mgr2->PrintOverlaps();
753 if(ISetits(2,-1)==1){
754 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
755 mgr2->SetClippingShape(clip);
757 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
758 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
762 TPad *p1 = c3->GetPad(1);
763 TView *view1 = p1->GetView();
765 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
766 if(irr) cout <<"error="<<irr<<endl;
767 if(ISetits(4,-1)==0) view1->SetParralel();
768 else view1->SetPerspective();
770 if(ISetits(3,-1)!=0) view1->ShowAxis();
772 if(ISetits(5,-1)==1) SSD->Raytrace();
773 //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
777 TPad *p2 = c3->GetPad(2);
778 TView *view2 = p2->GetView();
780 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
781 if(irr) cout <<"error="<<irr<<endl;
782 if(ISetits(4,-1)==0) view2->SetParralel();
783 else view2->SetPerspective();
785 if(ISetits(3,-1)!=0) view2->ShowAxis();
787 if(ISetits(5,-1)==1) SSD->Raytrace();
788 //arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
789 //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
790 //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
793 //----------------------------------------------------------------------
794 void EngineeringSupRB24(){
795 // Display RB 24 side cable tray support structure Geometry
804 TGeoManager *mgr2 = gGeoManager;
805 TGeoVolume *ALIC = mgr2->GetTopVolume();
807 if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
808 c4 = new TCanvas("C4","ITS SDD Cylinder Geometry",900,450);
810 TGeoVolume *ITS,*SUPRB24=0;
812 TArrow *arrow=new TArrow();
814 node = ALIC->FindNode("ITSV_1");
815 ITS = node->GetVolume();
816 node = ITS->FindNode("ITSsupFrameM24_1");
817 SUPRB24 = node->GetVolume();
819 mgr2->SetNsegments(ISetits(1,-1));
821 mgr2->SetVisLevel(6);
822 mgr2->SetVisOption(0);
823 //mgr2->CheckOverlaps(0.01);
824 //mgr2->PrintOverlaps();
825 if(ISetits(2,-1)==1){
826 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
827 mgr2->SetClippingShape(clip);
829 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
830 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
834 TPad *p1 = c4->GetPad(1);
835 TView *view1 = p1->GetView();
837 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
838 if(irr) cout <<"error="<<irr<<endl;
839 if(ISetits(4,-1)==0) view1->SetParralel();
840 else view1->SetPerspective();
842 if(ISetits(3,-1)!=0) view1->ShowAxis();
844 if(ISetits(5,-1)==1) SUPRB24->Raytrace();
848 TPad *p2 = c4->GetPad(2);
849 TView *view2 = p2->GetView();
851 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
852 if(irr) cout <<"error="<<irr<<endl;
853 if(ISetits(4,-1)==0) view2->SetParralel();
854 else view2->SetPerspective();
856 if(ISetits(3,-1)!=0) view2->ShowAxis();
858 if(ISetits(5,-1)==1) SUPRB24->Raytrace();
861 //----------------------------------------------------------------------
862 void EngineeringSupTrayRB24(){
863 // Display RB 24 side cable tray support structure Geometry
872 TGeoManager *mgr2 = gGeoManager;
873 TGeoVolume *ALIC = mgr2->GetTopVolume();
875 //if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
876 c4 = new TCanvas("C4","ITS RB24 Cable Trays and Patch Pannels",500,500);
878 TGeoVolume *ITS,*SUPRB24=0;
880 TArrow *arrow=new TArrow();
882 node = ALIC->FindNode("ITSV_1");
883 ITS = node->GetVolume();
884 node = ITS->FindNode("ITSsupCableTrayMotherMT24_1");
885 SUPRB24 = node->GetVolume();
887 mgr2->SetNsegments(ISetits(1,-1));
889 mgr2->SetVisLevel(6);
890 mgr2->SetVisOption(0);
891 //mgr2->CheckOverlaps(0.01);
892 //mgr2->PrintOverlaps();
893 if(ISetits(2,-1)==1){
894 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
895 mgr2->SetClippingShape(clip);
897 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
898 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
902 //TPad *p1 = c4->GetPad(1);
903 //TView *view1 = p1->GetView();
904 TView *view1 = c4->GetView();
906 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
907 if(irr) cout <<"error="<<irr<<endl;
908 if(ISetits(4,-1)==0) view1->SetParralel();
909 else view1->SetPerspective();
911 if(ISetits(3,-1)!=0) view1->ShowAxis();
913 if(ISetits(5,-1)==1) SUPRB24->Raytrace();
916 c5 = new TCanvas("C5","ITS RB24 Cable Trays and Patch Pannels",500,500);
919 //TPad *p2 = c5->GetPad(1);
920 //TView *view2 = p2->GetView();
921 TView *view2 = c5->GetView();
923 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
924 if(irr) cout <<"error="<<irr<<endl;
925 if(ISetits(4,-1)==0) view2->SetParralel();
926 else view2->SetPerspective();
928 if(ISetits(3,-1)!=0) view2->ShowAxis();
930 if(ISetits(5,-1)==1) SUPRB24->Raytrace();
933 //----------------------------------------------------------------------
934 void EngineeringSupRB26(){
935 // Display RB 26 side cable tray support structure
944 TGeoManager *mgr2 = gGeoManager;
945 TGeoVolume *ALIC = mgr2->GetTopVolume();
947 if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
948 c5 = new TCanvas("C5","ITS SDD Cylinder Geometry",900,450);
950 TGeoVolume *ITS,*SUPRB26=0;
952 TArrow *arrow=new TArrow();
954 node = ALIC->FindNode("ITSV_1");
955 ITS = node->GetVolume();
956 node = ITS->FindNode("ITSsupFrameM26_1");
957 SUPRB26 = node->GetVolume();
959 mgr2->SetNsegments(ISetits(1,-1));
961 mgr2->SetVisLevel(6);
962 mgr2->SetVisOption(0);
963 //mgr2->CheckOverlaps(0.01);
964 //mgr2->PrintOverlaps();
965 if(ISetits(2,-1)==1){
966 TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
967 mgr2->SetClippingShape(clip);
969 mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
970 if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
974 TPad *p1 = c5->GetPad(1);
975 TView *view1 = p1->GetView();
977 view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
978 if(irr) cout <<"error="<<irr<<endl;
979 if(ISetits(4,-1)==0) view1->SetParralel();
980 else view1->SetPerspective();
982 if(ISetits(3,-1)!=0) view1->ShowAxis();
984 if(ISetits(5,-1)==1) SUPRB26->Raytrace();
988 TPad *p2 = c5->GetPad(2);
989 TView *view2 = p2->GetView();
991 view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
992 if(irr) cout <<"error="<<irr<<endl;
993 if(ISetits(4,-1)==0) view2->SetParralel();
994 else view2->SetPerspective();
996 if(ISetits(3,-1)!=0) view2->ShowAxis();
998 if(ISetits(5,-1)==1) SUPRB26->Raytrace();