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