#include "TSystem.h" #include "TGeoManager.h" void lego() { TGeoManager *geom = new TGeoManager("geom", "My first 3D geometry"); TGeoMaterial *vacuum = new TGeoMaterial("vacuum", 0, 0, 0); TGeoMaterial *Fe = new TGeoMaterial("Fe", 55.845, 26, 7.87); TGeoMedium *Air = new TGeoMedium("Vacuum", 0, vacuum); TGeoMedium *Iron = new TGeoMedium("Iron", 1, Fe); // create volume TGeoVolume *top = geom->MakeBox("top", Air, 100, 100, 100); geom->SetTopVolume(top); geom->SetTopVisible(false); // If you want to see the boundary, please input the number, 1 instead of 0. // Like this, geom->SetTopVisible(1); //---------------------------------------------------------------------- TGeoVolume *ha1 = geom->MakeSphere("ha1", Iron, 0, 10, 80, 90, 0, 360); ha1->SetLineColor(41); top->AddNodeOverlap(ha1, 1, new TGeoCombiTrans(0, 0, 4, new TGeoRotation("ha1", 0, 0, 0))); TGeoVolume *ha2 = geom->MakeSphere("ha2", Iron, 0, 7, 90, 180, 0, 360); ha2->SetLineColor(41); top->AddNodeOverlap(ha2, 1, new TGeoCombiTrans(0, 0, 4, new TGeoRotation("ha2", 0, 180, 0))); TGeoVolume *ha3 = geom->MakeSphere("ha3", Iron, 0, 7.3, 80, 90, 0, 360); ha3->SetLineColor(2); top->AddNodeOverlap(ha3, 1, new TGeoCombiTrans(0, 0, 4.8, new TGeoRotation("ha3", 0, 0, 0))); TGeoVolume *h1 = geom->MakeTubs("h1", Iron, 0, 6, 4.5, 0, 0); h1->SetLineColor(5); top->AddNodeOverlap(h1, 1, new TGeoCombiTrans(0, 0, 0, new TGeoRotation("h1", 0, 0, 0))); TGeoVolume *h2 = geom->MakeSphere("h2", Iron, 0, 7.5, 0, 52.5, 0, 360); h2->SetLineColor(5); top->AddNodeOverlap(h2, 1, new TGeoCombiTrans(0, 0, 0, new TGeoRotation("h2", 0, 0, 0))); TGeoVolume *h3 = geom->MakeSphere("h3", Iron, 0, 7.5, 0, 52.5, 0, 360); h3->SetLineColor(5); top->AddNodeOverlap(h3, 1, new TGeoCombiTrans(0, 0, 0, new TGeoRotation("h3", 180, 180, 0))); TGeoVolume *h4 = geom->MakeTubs("h4", Iron, 2.5, 3.5, 1.5, 0, 0); h4->SetLineColor(5); top->AddNodeOverlap(h4, 1, new TGeoCombiTrans(0, 0, 7.5, new TGeoRotation("h4", 0, 0, 0))); TGeoVolume *t1_1 = geom->MakeTubs("t1_1", Iron, 0, 0.8, 1, 0, 360); t1_1->SetLineColor(12); top->AddNodeOverlap(t1_1, 1, new TGeoCombiTrans(-5, 2, 1.5, new TGeoRotation("t1_1", -90, 90, 0))); TGeoVolume *t2_1 = geom->MakeTubs("t2_1", Iron, 0, 0.8, 1, 0, 360); t2_1->SetLineColor(12); top->AddNodeOverlap(t2_1, 1, new TGeoCombiTrans(-5, -2, 1.5, new TGeoRotation("t2_1", -90, 90, 0))); TGeoVolume *fb1 = geom->MakeTubs("fb1", Iron, 2, 2.3, 1, 100, 260); fb1->SetLineColor(12); top->AddNodeOverlap(fb1, 1, new TGeoCombiTrans(-5, 0, -1, new TGeoRotation("fb1", 90, 90, 90))); TGeoVolume *m1 = geom->MakeBox("m1", Iron, 7, 8, 4); m1->SetLineColor(2); top->AddNodeOverlap(m1, 1, new TGeoCombiTrans(0, 0, -17, new TGeoRotation("m1", 90, 90, 0))); TGeoVolume *m2 = geom->MakeTubs("m2", Iron, 0, 1, 7, 90, 180); m2->SetLineColor(2); top->AddNodeOverlap(m2, 1, new TGeoCombiTrans(-3, 0, -9, new TGeoRotation("m2", 0, 90, 0))); TGeoVolume *m3 = geom->MakeTubs("m3", Iron, 0, 1, 7, 0, 90); m3->SetLineColor(2); top->AddNodeOverlap(m3, 1, new TGeoCombiTrans(3, 0, -9, new TGeoRotation("m3", 0, 90, 0))); TGeoVolume *m4 = geom->MakeBox("m4", Iron, 3, 7, 0.5); m4->SetLineColor(2); top->AddNodeOverlap(m4, 1, new TGeoCombiTrans(0, 0, -8.5, new TGeoRotation("m4", 90, 0, 90))); TGeoVolume *m5 = geom->MakeTubs("m5", Iron, 0, 1.5, 1.2, 0, 0); m5->SetLineColor(5); top->AddNodeOverlap(m5, 1, new TGeoCombiTrans(0, 0, -7.8, new TGeoRotation("m5", 0, 0, 0))); TGeoVolume *m6 = geom->MakeTrd2("m6", Iron, 4, 4, 0, 2, 8); m6->SetLineColor(2); top->AddNodeOverlap(m6, 1, new TGeoCombiTrans(0, -7, -17, new TGeoRotation("m6", 0, 180, 0))); TGeoVolume *m7 = geom->MakeTrd2("m7", Iron, 4, 4, 0, 2, 8); m7->SetLineColor(2); top->AddNodeOverlap(m7, 1, new TGeoCombiTrans(0, 7, -17, new TGeoRotation("m7", 0, 180, 0))); TGeoVolume *md1 = geom->MakeBox("md1", Iron, 4, 8.5, 0.7); md1->SetLineColor(37); top->AddNodeOverlap(md1, 1, new TGeoCombiTrans(0, 0, -25.5, new TGeoRotation("md1", 0, 0, 0))); TGeoVolume *md2 = geom->MakeBox("md2", Iron, 3, 0.4, 2); md2->SetLineColor(37); top->AddNodeOverlap(md2, 1, new TGeoCombiTrans(0, 0, -28, new TGeoRotation("md2", 0, 0, 0))); TGeoVolume *d1 = geom->MakeTrd2("d1", Iron, 3, 4, 4, 4, 7); d1->SetLineColor(37); top->AddNodeOverlap(d1, 1, new TGeoCombiTrans(-4.8, 4.5, -35, new TGeoRotation("d1", 90, 45, -90))); TGeoVolume *d2 = geom->MakeTrd2("d2", Iron, 3, 4, 4, 4, 7); d2->SetLineColor(37); top->AddNodeOverlap(d2, 1, new TGeoCombiTrans(0, -4.5, -37, new TGeoRotation("d2", 0, 0, 0))); TGeoVolume *d3 = geom->MakeTubs("d3", Iron, 0, 4, 3.98, 0, 180); d3->SetLineColor(37); top->AddNodeOverlap(d3, 1, new TGeoCombiTrans(0, 4.5, -30.2, new TGeoRotation("d3", 0, 90, -45))); TGeoVolume *d4 = geom->MakeTubs("d4", Iron, 0, 4, 3.98, 0, 180); d4->SetLineColor(37); top->AddNodeOverlap(d4, 1, new TGeoCombiTrans(0, -4.5, -30, new TGeoRotation("d4", 0, 90, 0))); TGeoVolume *d5 = geom->MakeBox("d5", Iron, 4, 4, 1); d5->SetLineColor(37); top->AddNodeOverlap(d5, 1, new TGeoCombiTrans(-10.2, 4.5, -39, new TGeoRotation("d5", 90, 45, -90))); TGeoVolume *d6 = geom->MakeBox("d6", Iron, 4, 4, 1); d6->SetLineColor(37); top->AddNodeOverlap(d6, 1, new TGeoCombiTrans(-1, -4.5, -43.4, new TGeoRotation("d6", 0, 0, 0))); TGeoVolume *a1 = geom->MakeTubs("a1", Iron, 0, 1.5, 4, 0, 0); a1->SetLineColor(1); top->AddNodeOverlap(a1, 1, new TGeoCombiTrans(0, 10, -15.1, new TGeoRotation("a1", 0, 20, 45))); TGeoVolume *a2 = geom->MakeSphere("a2", Iron, 0, 1.48, 0, 180, 0, 200); a2->SetLineColor(1); top->AddNodeOverlap(a2, 1, new TGeoCombiTrans(0, 8.6, -11.5, new TGeoRotation("a2", 120, 80, 20))); TGeoVolume *a3 = geom->MakeTubs("a3", Iron, 0, 1.5, 2.2, 0, 0); a3->SetLineColor(1); top->AddNodeOverlap(a3, 1, new TGeoCombiTrans(0, 11.3, -20.6, new TGeoRotation("a3", 300, 0, 40))); TGeoVolume *a4 = geom->MakeTubs("a4", Iron, 0, 1, 1, 0, 0); a4->SetLineColor(5); top->AddNodeOverlap(a4, 1, new TGeoCombiTrans(0, 11.3, -23.8, new TGeoRotation("a4", 75, 0, 30))); TGeoVolume *a5 = geom->MakeTubs("a5", Iron, 1.5, 2.5, 2, 0, 270); a5->SetLineColor(5); top->AddNodeOverlap(a5, 1, new TGeoCombiTrans(0, 11.3, -26.5, new TGeoRotation("a5", -90, 90, 00))); TGeoVolume *a1_1 = geom->MakeTubs("a1_1", Iron, 0, 1.5, 4, 0, 0); a1_1->SetLineColor(1); top->AddNodeOverlap(a1_1, 1, new TGeoCombiTrans(0, -10, -15.1, new TGeoRotation("a1_1", 0, -20, -45))); TGeoVolume *a2_1 = geom->MakeSphere("a2_1", Iron, 0, 1.48, 0, 180, 0, 200); a2_1->SetLineColor(1); top->AddNodeOverlap(a2_1, 1, new TGeoCombiTrans(0, -8.6, -11.5, new TGeoRotation("a2_1", 120, 80, -20))); TGeoVolume *a3_1 = geom->MakeTubs("a3_1", Iron, 0, 1.5, 2.2, 0, 0); a3_1->SetLineColor(1); top->AddNodeOverlap(a3_1, 1, new TGeoCombiTrans(0, -11.3, -20.6, new TGeoRotation("a3_1", -300, 0, -40))); TGeoVolume *a4_1 = geom->MakeTubs("a4_1", Iron, 0, 1, 1, 0, 0); a4_1->SetLineColor(5); top->AddNodeOverlap(a4_1, 1, new TGeoCombiTrans(0, -11.3, -23.8, new TGeoRotation("a4_1", -75, 0, -30))); a5 = geom->MakeTubs("a5_1", Iron, 1.5, 2.5, 2, 0, 270); a5->SetLineColor(5); top->AddNodeOverlap(a5, 1, new TGeoCombiTrans(0, -11.3, -26.5, new TGeoRotation("a5", 90, 90, 00))); //**********************************NO,2****************** TGeoVolume *ha_1 = geom->MakeSphere("ha_1", Iron, 0, 10, 80, 90, 0, 360); ha_1->SetLineColor(6); top->AddNodeOverlap(ha_1, 1, new TGeoCombiTrans(0, 36, 4, new TGeoRotation("ha_1", 0, 0, 0))); TGeoVolume *ha_2 = geom->MakeTubs("ha_2", Iron, 0, 6, 5, 0, 0); ha_2->SetLineColor(6); top->AddNodeOverlap(ha_2, 1, new TGeoCombiTrans(0, 36, 10, new TGeoRotation("ha_2", 0, 180, 0))); TGeoVolume *ha_3 = geom->MakeTubs("ha_3", Iron, 0, 1, 12, 0, 0); ha_3->SetLineColor(28); top->AddNodeOverlap(ha_3, 1, new TGeoCombiTrans(0, 36, 8, new TGeoRotation("ha_3", 0, 90, 0))); TGeoVolume *ha_4 = geom->MakeTubs("ha_4", Iron, 0, 1, 3, 0, 0); ha_4->SetLineColor(28); top->AddNodeOverlap(ha_4, 1, new TGeoCombiTrans(0, 22, 10, new TGeoRotation("ha_4", 0, 0, 0))); TGeoVolume *ha_5 = geom->MakeTubs("ha_5", Iron, 0, 1, 3, 0, 0); ha_5->SetLineColor(28); top->AddNodeOverlap(ha_5, 1, new TGeoCombiTrans(0, 46, 10, new TGeoRotation("ha_5", 0, 0, 0))); TGeoVolume *ha_6 = geom->MakeTubs("ha_6", Iron, 0, 1, 3, 0, 0); ha_6->SetLineColor(28); top->AddNodeOverlap(ha_6, 1, new TGeoCombiTrans(0, 24, 10, new TGeoRotation("ha_6", 0, 0, 0))); TGeoVolume *ha_7 = geom->MakeTubs("ha_7", Iron, 0, 1, 3, 0, 0); ha_7->SetLineColor(28); top->AddNodeOverlap(ha_7, 1, new TGeoCombiTrans(0, 48, 10, new TGeoRotation("ha_7", 0, 0, 0))); TGeoVolume *ha_8 = geom->MakeBox("ha_8", Iron, 2, 0.5, 2); ha_8->SetLineColor(19); top->AddNodeOverlap(ha_8, 1, new TGeoCombiTrans(-4.2, 36, 9, new TGeoRotation("ha_8", 0, 45, 0))); TGeoVolume *ha_9 = geom->MakeBox("ha_9", Iron, 2, 0.5, 2); ha_9->SetLineColor(19); top->AddNodeOverlap(ha_9, 1, new TGeoCombiTrans(-4.2, 36, 9, new TGeoRotation("ha_9", 0, 135, 0))); TGeoVolume *h_1 = geom->MakeTubs("h_1", Iron, 0, 6, 4.5, 0, 0); h_1->SetLineColor(5); top->AddNodeOverlap(h_1, 1, new TGeoCombiTrans(0, 36, 0, new TGeoRotation("h_1", 0, 0, 0))); TGeoVolume *h_2 = geom->MakeSphere("h_2", Iron, 0, 7.5, 0, 52.5, 0, 360); h_2->SetLineColor(5); top->AddNodeOverlap(h_2, 1, new TGeoCombiTrans(0, 36, 0, new TGeoRotation("h_2", 0, 0, 0))); TGeoVolume *h_3 = geom->MakeSphere("h_3", Iron, 0, 7.5, 0, 52.5, 0, 360); h_3->SetLineColor(5); top->AddNodeOverlap(h_3, 1, new TGeoCombiTrans(0, 36, 0, new TGeoRotation("h_3", 180, 180, 0))); TGeoVolume *h_4 = geom->MakeTubs("h_4", Iron, 2.5, 3.5, 1.5, 0, 0); h_4->SetLineColor(5); top->AddNodeOverlap(h_4, 1, new TGeoCombiTrans(0, 36, 7.5, new TGeoRotation("h_4", 0, 0, 0))); TGeoVolume *fa1 = geom->MakeTubs("fa1", Iron, 0, 0.5, 1, 0, 360); fa1->SetLineColor(12); top->AddNodeOverlap(fa1, 1, new TGeoCombiTrans(-5, 38, 1.5, new TGeoRotation("fa1", -90, 90, 0))); TGeoVolume *fa2 = geom->MakeTubs("fa2", Iron, 0, 0.5, 1, 0, 360); fa2->SetLineColor(12); top->AddNodeOverlap(fa2, 1, new TGeoCombiTrans(-5, 34, 1.5, new TGeoRotation("fa2", -90, 90, 0))); TGeoVolume *fa1_1 = geom->MakeTubs("fa1_1", Iron, 1, 1.2, 1, 0, 360); fa1_1->SetLineColor(12); top->AddNodeOverlap(fa1_1, 1, new TGeoCombiTrans(-5, 38, 1.5, new TGeoRotation("fa1_1", -90, 90, 0))); TGeoVolume *fa2_1 = geom->MakeTubs("fa2_1", Iron, 1, 1.2, 1, 0, 360); fa2_1->SetLineColor(12); top->AddNodeOverlap(fa2_1, 1, new TGeoCombiTrans(-5, 34, 1.5, new TGeoRotation("fa2_1", -90, 90, 0))); TGeoVolume *fa3 = geom->MakeTubs("fa3", Iron, 2, 2.3, 1, 90, 270); fa3->SetLineColor(12); top->AddNodeOverlap(fa3, 1, new TGeoCombiTrans(-5, 36, -1, new TGeoRotation("fa3", 90, 90, 90))); TGeoVolume *m_1 = geom->MakeBox("m_1", Iron, 7, 8, 4); m_1->SetLineColor(25); top->AddNodeOverlap(m_1, 1, new TGeoCombiTrans(0, 36, -17, new TGeoRotation("m_1", 90, 90, 0))); TGeoVolume *m_2 = geom->MakeTubs("m_2", Iron, 0, 1, 7, 90, 180); m_2->SetLineColor(25); top->AddNodeOverlap(m_2, 1, new TGeoCombiTrans(-3, 36, -9, new TGeoRotation("m_2", 0, 90, 0))); TGeoVolume *m_3 = geom->MakeTubs("m_3", Iron, 0, 1, 7, 0, 90); m_3->SetLineColor(25); top->AddNodeOverlap(m_3, 1, new TGeoCombiTrans(3, 36, -9, new TGeoRotation("m_3", 0, 90, 0))); TGeoVolume *m_4 = geom->MakeBox("m_4", Iron, 3, 7, 0.5); m_4->SetLineColor(25); top->AddNodeOverlap(m_4, 1, new TGeoCombiTrans(0, 36, -8.5, new TGeoRotation("m_4", 90, 0, 90))); TGeoVolume *m_5 = geom->MakeTubs("m_5", Iron, 0, 1.5, 1.2, 0, 0); m_5->SetLineColor(5); top->AddNodeOverlap(m_5, 1, new TGeoCombiTrans(0, 36, -7.8, new TGeoRotation("m_5", 0, 0, 0))); TGeoVolume *m_6 = geom->MakeTrd2("m_6", Iron, 4, 4, 0, 2, 8); m_6->SetLineColor(25); top->AddNodeOverlap(m_6, 1, new TGeoCombiTrans(0, 29, -17, new TGeoRotation("m_6", 0, 180, 0))); TGeoVolume *m_7 = geom->MakeTrd2("m_7", Iron, 4, 4, 0, 2, 8); m_7->SetLineColor(25); top->AddNodeOverlap(m_7, 1, new TGeoCombiTrans(0, 43, -17, new TGeoRotation("m_7", 0, 180, 0))); TGeoVolume *md_1 = geom->MakeBox("md_1", Iron, 4, 8.5, 0.7); md_1->SetLineColor(48); top->AddNodeOverlap(md_1, 1, new TGeoCombiTrans(0, 36, -25.5, new TGeoRotation("md_1", 0, 0, 0))); TGeoVolume *md_2 = geom->MakeBox("md_2", Iron, 3, 0.4, 2); md_2->SetLineColor(48); top->AddNodeOverlap(md_2, 1, new TGeoCombiTrans(0, 36, -28, new TGeoRotation("md_2", 0, 0, 0))); TGeoVolume *d_1 = geom->MakeTrd2("d_1", Iron, 3, 4, 4, 4, 7); d_1->SetLineColor(48); top->AddNodeOverlap(d_1, 1, new TGeoCombiTrans(0, 40.5, -37.2, new TGeoRotation("d_1", 0, 0, 0))); TGeoVolume *d_2 = geom->MakeTrd2("d_2", Iron, 3, 4, 4, 4, 7); d_2->SetLineColor(48); top->AddNodeOverlap(d_2, 1, new TGeoCombiTrans(0, 31.5, -37.2, new TGeoRotation("d_2", 0, 0, 0))); TGeoVolume *d_3 = geom->MakeTubs("d_3", Iron, 0, 4, 3.98, 0, 180); d_3->SetLineColor(48); top->AddNodeOverlap(d_3, 1, new TGeoCombiTrans(0, 40.5, -30.2, new TGeoRotation("d_3", 0, 90, 0))); TGeoVolume *d_4 = geom->MakeTubs("d_4", Iron, 0, 4, 3.98, 0, 180); d_4->SetLineColor(48); top->AddNodeOverlap(d_4, 1, new TGeoCombiTrans(0, 31.5, -30.2, new TGeoRotation("d_4", 0, 90, 0))); TGeoVolume *d_5 = geom->MakeBox("d_5", Iron, 4, 4, 1); d_5->SetLineColor(48); top->AddNodeOverlap(d_5, 1, new TGeoCombiTrans(-1, 40.5, -43.7, new TGeoRotation("d_5", 0, 0, 0))); TGeoVolume *d_6 = geom->MakeBox("d_6", Iron, 4, 4, 1); d_6->SetLineColor(48); top->AddNodeOverlap(d_6, 1, new TGeoCombiTrans(-1, 31.5, -43.7, new TGeoRotation("d_6", 0, 0, 0))); TGeoVolume *a_1 = geom->MakeTubs("a_1", Iron, 0, 1.5, 4, 0, 0); a_1->SetLineColor(45); top->AddNodeOverlap(a_1, 1, new TGeoCombiTrans(0, 46, -15.1, new TGeoRotation("a_1", 0, 20, 45))); TGeoVolume *a_2 = geom->MakeSphere("a_2", Iron, 0, 1.48, 0, 180, 0, 200); a_2->SetLineColor(45); top->AddNodeOverlap(a_2, 1, new TGeoCombiTrans(0, 44.6, -11.5, new TGeoRotation("a_2", 120, 80, 20))); TGeoVolume *a_3 = geom->MakeTubs("a_3", Iron, 0, 1.5, 2.2, 0, 0); a_3->SetLineColor(45); top->AddNodeOverlap(a_3, 1, new TGeoCombiTrans(0, 47.3, -20.6, new TGeoRotation("a_3", 300, 0, 40))); TGeoVolume *a_4 = geom->MakeTubs("a_4", Iron, 0, 1, 1, 0, 0); a_4->SetLineColor(12); top->AddNodeOverlap(a_4, 1, new TGeoCombiTrans(0, 47.3, -23.8, new TGeoRotation("a_4", 75, 0, 30))); TGeoVolume *a_5 = geom->MakeTubs("a_5", Iron, 1.5, 2.5, 2, 0, 270); a_5->SetLineColor(12); top->AddNodeOverlap(a_5, 1, new TGeoCombiTrans(0, 47.3, -26.5, new TGeoRotation("a_5", -90, 90, 0))); TGeoVolume *Aa1 = geom->MakeTubs("Aa1", Iron, 0, 1.5, 4, 0, 0); Aa1->SetLineColor(45); top->AddNodeOverlap(Aa1, 1, new TGeoCombiTrans(0, 26, -15.1, new TGeoRotation("Aa1", 0, -20, -45))); TGeoVolume *Aa2 = geom->MakeSphere("Aa2", Iron, 0, 1.48, 0, 180, 0, 200); Aa2->SetLineColor(45); top->AddNodeOverlap(Aa2, 1, new TGeoCombiTrans(0, 27.4, -11.5, new TGeoRotation("Aa2", 120, 80, -20))); TGeoVolume *Aa3 = geom->MakeTubs("Aa3", Iron, 0, 1.5, 2.2, 0, 0); Aa3->SetLineColor(45); top->AddNodeOverlap(Aa3, 1, new TGeoCombiTrans(0, 24.7, -20.6, new TGeoRotation("Aa3", -300, 0, -40))); TGeoVolume *Aa4 = geom->MakeTubs("Aa4", Iron, 0, 1, 1, 0, 0); Aa4->SetLineColor(12); top->AddNodeOverlap(Aa4, 1, new TGeoCombiTrans(0, 24.7, -23.8, new TGeoRotation("Aa4", -75, 0, -30))); TGeoVolume *Aa5 = geom->MakeTubs("Aa5", Iron, 1.5, 2.5, 2, 0, 270); Aa5->SetLineColor(12); top->AddNodeOverlap(Aa5, 1, new TGeoCombiTrans(0, 24.7, -26.5, new TGeoRotation("Aa5", 90, 90, 00))); TGeoVolume *bag1 = geom->MakeBox("bag1", Iron, 10, 4, 6); bag1->SetLineColor(19); top->AddNodeOverlap(bag1, 1, new TGeoCombiTrans(0, 48, -36, new TGeoRotation("bag1", 0, 0, 0))); TGeoVolume *bag2 = geom->MakeTubs("bag2", Iron, 3, 4, 1, 180, 360); bag2->SetLineColor(19); top->AddNodeOverlap(bag2, 1, new TGeoCombiTrans(0, 48, -30, new TGeoRotation("bag2", 0, 270, 0))); TGeoVolume *well = geom->MakeBox("well", Iron, 5, 10, 3); well->SetLineColor(18); top->AddNodeOverlap(well, 1, new TGeoCombiTrans(-26.5, -17, -42, new TGeoRotation("well", 0, 0, 0))); TGeoVolume *K5 = geom->MakeTubs("K5", Iron, 0, 3, 3, 0, 0); K5->SetLineColor(18); top->AddNodeOverlap(K5, 1, new TGeoCombiTrans(-27, -12.5, -39, new TGeoRotation("K5", 0, 0, 0))); TGeoVolume *K4 = geom->MakeTubs("K4", Iron, 0, 3, 3, 0, 0); K4->SetLineColor(18); top->AddNodeOverlap(K4, 1, new TGeoCombiTrans(-27, -21.5, -39, new TGeoRotation("K4", 0, 0, 0))); //==============Board========= char nB[100]; int Z = 0, Y = 0; TGeoVolume *bo1; while (Y < 6) { while (Z < 10) { sprintf(nB, "B%d_Y%d", Z, Y); bo1 = geom->MakeTubs(nB, Iron, 0, 3, 3, 0, 0); bo1->SetLineColor(8); top->AddNodeOverlap(bo1, 1, new TGeoCombiTrans(-27 + (Y * 9), -21.5 + (Z * 9), -45, new TGeoRotation("bo1", 0, 0, 0))); Z++; } Y++; Z = 0; } TGeoVolume *bo2 = geom->MakeBox("bo2", Iron, 27, 45, 3); bo2->SetLineColor(8); top->AddNodeOverlap(bo2, 1, new TGeoCombiTrans(-4.5, 18, -48, new TGeoRotation("bo2", 0, 0, 0))); top->SetVisibility(false); geom->CloseGeometry(); top->Draw("ogl"); }