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