10 if (
gROOT->GetListOfGlobals()->FindObject(
"gGeoManager")) {
13 printf(
"Preserving existing gGeoManager.\n");
15 new TGeoManager(
"magnet geometry",
"temporary geometry manager for magnet");
20 Double_t theta, phi, h1, bl1, tl1, alpha1, h2, bl2, tl2, alpha2;
23 Double_t rmin, rmax, rmin1, rmax1, rmin2, rmax2;
29 Double_t thx, phx, thy, phy, thz, phz;
30 Double_t alpha, theta1, theta2, phi1, phi2, dphi;
36 Int_t nel, numed, nz, nedges, nvert;
47 pMat6->DefineElement(0, a, z, w);
51 pMat6->DefineElement(1, a, z, w);
55 pMat6->DefineElement(2, a, z, w);
59 pMat6->DefineElement(3, a, z, w);
71 pMed6 =
new TGeoMedium(
"air", numed, pMat6, par);
79 pMat5->DefineElement(0, a, z, w);
83 pMat5->DefineElement(1, a, z, w);
87 pMat5->DefineElement(2, a, z, w);
91 pMat5->DefineElement(3, a, z, w);
95 pMat5->DefineElement(4, a, z, w);
107 pMed5 =
new TGeoMedium(
"steel", numed, pMat5, par);
114 pMat1 =
new TGeoMaterial(
"iron", a, z, density, radl, absl);
126 pMed1 =
new TGeoMedium(
"iron", numed, pMat1, par);
133 pMat2 =
new TGeoMaterial(
"copper", a, z, density, radl, absl);
145 pMed2 =
new TGeoMedium(
"copper", numed, pMat2, par);
446 pmagnet_1f48cf0 =
new TGeoVolume(
"magnet", ModifiedTopVolumeS, pMed6);
447 pmagnet_1f48cf0->SetVisLeaves(
kTRUE);
452 top_assembly->
AddNode(pmagnet_1f48cf0, 0, MagPos_trans);
502 pBoolNode =
new TGeoSubtraction(pyoke_12_4, pinner_space_5, 0, pMatrix4);
506 piron_yoke_1f98e60 =
new TGeoVolume(
"iron_yoke", pyoke_120_6, pMed5);
507 piron_yoke_1f98e60->SetVisLeaves(
kTRUE);
508 pmagnet_1f48cf0->AddNode(piron_yoke_1f98e60, 0, pMatrix8);
536 ppole_1fa6ca0 =
new TGeoVolume(
"pole", ppole_12_9, pMed1);
537 ppole_1fa6ca0->SetVisLeaves(
kTRUE);
538 pmagnet_1f48cf0->AddNode(ppole_1fa6ca0, 0, pMatrix10);
539 pmagnet_1f48cf0->AddNode(ppole_1fa6ca0, 0, pMatrix12);
546 TGeoShape* pcoil_container_curve_10 =
new TGeoTubeSeg(
"coil_container_curve", rmin, rmax, dz, phi1, phi2);
548 pcoil_container_corner_1fa6fb0 =
new TGeoVolume(
"coil_container_corner", pcoil_container_curve_10, pMed5);
549 pcoil_container_corner_1fa6fb0->SetVisLeaves(
kTRUE);
550 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix14);
551 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix16);
556 TGeoShape* pcoil_container_side_1_12 =
new TGeoBBox(
"coil_container_side_1", dx, dy, dz);
558 pcoil_container_short_1fac210 =
new TGeoVolume(
"coil_container_short", pcoil_container_side_1_12, pMed5);
559 pcoil_container_short_1fac210->SetVisLeaves(
kTRUE);
560 pmagnet_1f48cf0->AddNode(pcoil_container_short_1fac210, 0, pMatrix18);
565 TGeoShape* pcoil_container_side_2_14 =
new TGeoBBox(
"coil_container_side_2", dx, dy, dz);
567 pcoil_container_long_1fac770 =
new TGeoVolume(
"coil_container_long", pcoil_container_side_2_14, pMed5);
568 pcoil_container_long_1fac770->SetVisLeaves(
kTRUE);
569 pmagnet_1f48cf0->AddNode(pcoil_container_long_1fac770, 0, pMatrix20);
570 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix22);
571 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix24);
572 pmagnet_1f48cf0->AddNode(pcoil_container_short_1fac210, 0, pMatrix26);
573 pmagnet_1f48cf0->AddNode(pcoil_container_long_1fac770, 0, pMatrix28);
574 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix30);
575 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix32);
576 pmagnet_1f48cf0->AddNode(pcoil_container_short_1fac210, 0, pMatrix34);
577 pmagnet_1f48cf0->AddNode(pcoil_container_long_1fac770, 0, pMatrix36);
578 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix38);
579 pmagnet_1f48cf0->AddNode(pcoil_container_corner_1fa6fb0, 0, pMatrix40);
580 pmagnet_1f48cf0->AddNode(pcoil_container_short_1fac210, 0, pMatrix42);
581 pmagnet_1f48cf0->AddNode(pcoil_container_long_1fac770, 0, pMatrix44);
590 pcoil_corner_1fa71c0 =
new TGeoVolume(
"coil_corner", pcoil_curve_11, pMed2);
591 pcoil_corner_1fa71c0->SetVisLeaves(
kTRUE);
592 pcoil_container_corner_1fa6fb0->AddNode(pcoil_corner_1fa71c0, 0, pMatrix46);
599 pcoil_short_1fac4a0 =
new TGeoVolume(
"coil_short", pcoil_side_1_13, pMed2);
600 pcoil_short_1fac4a0->SetVisLeaves(
kTRUE);
601 pcoil_container_short_1fac210->AddNode(pcoil_short_1fac4a0, 0, pMatrix48);
608 pcoil_long_1faca00 =
new TGeoVolume(
"coil_long", pcoil_side_2_15, pMed2);
609 pcoil_long_1faca00->SetVisLeaves(
kTRUE);
610 pcoil_container_long_1fac770->AddNode(pcoil_long_1faca00, 0, pMatrix50);
614 TFile f(
"magnet.root",
"RECREATE");
616 top_assembly->
Write();
621 printf(
"Restoring old gGeoManager.\n");