Commit d9bc7d99 authored by Petr's avatar Petr
Browse files

Adds vacuum in the beampipe geometries for 21e - max beam deflection 2.5deg;...

Adds vacuum in the beampipe geometries for 21e - max beam deflection 2.5deg; 21f - no beam deflection; 21g - Au beam with 3.3 AGeV/c with 50% MF; 21h - Au beam with 12 AGeV/c with 100% MF
parent b2a639c3
Pipeline #17684 failed with stages
in 27 seconds
......@@ -281,10 +281,17 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
//TGeoVolume* conical_beam_pipe = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE);
TGeoVolume* vacuum_conical_beam_pipe = new TGeoVolumeAssembly("vacuum_conical_beam_pipe");
vacuum_conical_beam_pipe->SetVisibility(kFALSE);
//TGeoVolume* bellow_ass = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);
sub_t_plate1->SetLineColor(kGray);
......@@ -494,26 +501,44 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
r_arb1->SetVertex(7, rail_cord[3], rail_cord[1] + rail_cord[4]);
TGeoBBox* flange_box = new TGeoBBox("flange_box", 15.2, 15.2, 1.5);
TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 2.5);
TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 1.6);
// DOWNSTREAM_CARBON-FIBRE_RICH_MUCH_FLANGE_TO_BELLOW_ASS------------------------------------------------------------------------------------
TGeoBBox* rich_much_flange_box = new TGeoBBox("rich_much_flange_box", 15.2, 15.2, 1.5);
TGeoTube* rich_much_flange_hole = new TGeoTube("rich_much_flange_hole", 0., 12.5, 2.5);
TGeoTube* rich_much_flange_hole = new TGeoTube("rich_much_flange_hole", 0., 12.55, 1.6);
TGeoCompositeShape* rich_much_flange_composite =
new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole");
TGeoVolume* rich_much_downstream_flange =
new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF);
rich_much_downstream_flange->SetLineColor(kGray);
// CONICAL_BEAM_PIPE WITH CARBONE-FIBRE FLANGE AND TILTED END PIECE OF TUBE TO STS SECTION------------------------------------------------------------------------------------
// VACUUM IN THE FLANGE----------------------------------------------------------------------------------------------
TGeoTube* vacuum_flange_hole = new TGeoTube("vacuum_flange_hole", 0., 12.5, 1.5);
TGeoVolume* vacuum_downstream_flange =
new TGeoVolume("vacuum_downstream_flange", vacuum_flange_hole, Vacuum);
vacuum_downstream_flange->SetLineColor(kRed);
// CONICAL_BEAM_PIPE----------------------------------------------------------------------------------------------------------
TGeoCone* conus = new TGeoCone("conus", conus_lenght, rmin1, rmax1, rmin2, rmax2);
TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF);
conus_volume->SetLineColor(kGray);
//-------------------------------VACUUM IN CONE-------------------------------------------------------------------
TGeoCone* vacuum_conus = new TGeoCone("vacuum_conus", conus_lenght, 0, rmin1, 0, rmin2);
TGeoVolume* vacuum_conus_volume = new TGeoVolume("vacuum_conus_volume", vacuum_conus, Vacuum);
vacuum_conus_volume->SetLineColor(kGreen);
// CONNECTING TUBE--------------------------------------------------------------------------------------------------------------------------------------------------------
TGeoCtub* tube_connection = new TGeoCtub("tube_connection", 55. * mm, 56. * mm, 15. * mm, 0., 360., -0.05235892, 0., 4.99972585, 0., 0., 1.);
TGeoVolume* tube_connection_volume = new TGeoVolume("tube_connection_volume", tube_connection, CF);
tube_connection_volume->SetLineColor(kGray);
//------------------------VACUUM IN THE CONNECTING TUBE--------------------------------------------------------------
TGeoCtub* vacuum_tube_connection = new TGeoCtub("vacuum_tube_connection", 0. * mm, 55. * mm, 15. * mm, 0., 360., -0.05235892, 0., 4.99972585, 0., 0., 1.);
TGeoVolume* vacuum_tube_connection_volume = new TGeoVolume("vacuum_tube_connection_volume", vacuum_tube_connection, Vacuum);
vacuum_tube_connection_volume->SetLineColor(kGreen);
// STS tube-----------------------------------------------------------------------------------------------------
TGeoCtub* tube_connection_sts = new TGeoCtub("tube_connection_sts", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0., 0., 1., 0.05235892, 0., 4.99972585);
TGeoVolume* tube_connection_sts_volume = new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
tube_connection_sts_volume->SetLineColor(kGray);
......@@ -538,23 +563,50 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
TGeoVolume* bellow_3 = new TGeoVolume("bellow_s3", bellow_s3, Stainless);
bellow_3->SetLineColor(kRed);
TGeoCtub* bellow_s4 = new TGeoCtub("bellow_s4", 124. * mm, 142. * mm, 25.30673722 * mm, 0., 360., -0.024210927, 0.,
TGeoCtub* bellow_s4 = new TGeoCtub("bellow_s4", 124. * mm, 142. * mm, 25.306 * mm, 0., 360., -0.024210927, 0.,
-0.999706873, -0.083697266, 0., 0.996491228);
TGeoVolume* bellow_4 = new TGeoVolume("bellow_s3", bellow_s4, Stainless);
bellow_4->SetLineColor(kRed);
//-------------------------------VACUUM BELLOW DEFINITION----------------------------------------------------------------
TGeoVolume* vacuum_bellow_flange_0 = new TGeoVolume("vacuum_bellow_flange_0", vacuum_flange_hole, Vacuum);
vacuum_bellow_flange_0->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s1 = new TGeoCtub("vacuum_bellow_s1", 0. * mm, 123.8 * mm, 29.87452196 * mm, 0., 360., -0.083697266, 0.,
-0.996491228, -0.122217128, 0., 0.992503387);
TGeoVolume* vacuum_bellow_1 = new TGeoVolume("vacuum_bellow_s1", vacuum_bellow_s1, Vacuum);
vacuum_bellow_1->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s2 = new TGeoCtub("vacuum_bellow_s1", 0. * mm, 123.8 * mm, 96.682942995 * mm, 0., 360., -0.122217128, 0.,
-0.992503387, 0.089898314, 0, 0.995950949);
TGeoVolume* vacuum_bellow_2 = new TGeoVolume("vacuum_bellow_s2", vacuum_bellow_s2, Vacuum);
vacuum_bellow_2->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s3 = new TGeoCtub("vacuum_bellow_s3", 0. * mm, 123.8 * mm, 22.10506784 * mm, 0., 360., -0.089898314, 0.,
-0.995950949, -0.024210927, 0., 0.999706873);
TGeoVolume* vacuum_bellow_3 = new TGeoVolume("vacuum_bellow_s3", vacuum_bellow_s3, Vacuum);
vacuum_bellow_3->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s4 = new TGeoCtub("vacuum_bellow_s4", 0. * mm, 123.8 * mm, 25.306 * mm, 0., 360., -0.024210927, 0.,
-0.999706873, -0.083697266, 0., 0.996491228);
TGeoVolume* vacuum_bellow_4 = new TGeoVolume("vacuum_bellow_s4", vacuum_bellow_s4, Vacuum);
vacuum_bellow_4->SetLineColor(kGreen);
TGeoBBox* roll_plate_s = new TGeoBBox("roll_plate_s", 75. * mm, 12.5 * mm, 90. * mm);
TGeoVolume* roll_plate = new TGeoVolume("roll_plate", roll_plate_s, Al);
roll_plate->SetLineColor(kBlue);
TGeoTube* flange_cyl = new TGeoTube("flange_cyl", 0., 15., 1.5);
TGeoTube* flange_cyl_hole = new TGeoTube("flange_cyl_hole", 0., 8.9, 2.5);
TGeoTube* flange_cyl_hole = new TGeoTube("flange_cyl_hole", 0., 8.9, 1.6);
TGeoCompositeShape* flange_cyl_composite = new TGeoCompositeShape(
"flange_cyl_composite", "((flange_cyl-flange_cyl_hole)-roll_plate_s:tr_plate_up)-roll_plate_s:tr_plate_down");
TGeoVolume* bellow_flange_1 = new TGeoVolume("bellow_flange_1", flange_cyl_composite, Stainless);
bellow_flange_1->SetLineColor(kRed);
//-------------------------------VACUUM FLANGE BELLOW------------------------------------------------------------------
TGeoTube* vacuum_flange_cyl_hole = new TGeoTube("vacuum_flange_cyl_hole", 0., 8.9, 1.5);
TGeoVolume* vacuum_bellow_flange_1 = new TGeoVolume("vacuum_bellow_flange_1", vacuum_flange_cyl_hole, Vacuum);
vacuum_bellow_flange_1->SetLineColor(kGreen);
TGeoTube* lead_screw_s = new TGeoTube("lead_screw_s", 0. * mm, 6. * mm, 205. * mm);
TGeoTube* nut_small_s = new TGeoTube("nut_small_s", 6. * mm, 14. * mm, 50. * mm);
......@@ -575,6 +627,11 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF);
psd_tube->SetLineColor(kGray);
//------------------------------VACUUM PSD TUBE-------------------------------------------------------------------------
TGeoTube* vacuum_psd_tube_s = new TGeoTube("vacuum_psd_tube_s", 0. * mm, 90. * mm, 7230. * mm);
TGeoVolume* vacuum_psd_tube = new TGeoVolume("vacuum_psd_tube", vacuum_psd_tube_s, Vacuum);
vacuum_psd_tube->SetLineColor(kGreen);
//------------------TOP plate------------------------------
bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a);
bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a);
......@@ -627,6 +684,15 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
bellow_ass->AddNode(bellow_4, 1, ctr_s4);
bellow_ass->AddNode(bellow_flange_1, 1, ctr_s5);
//-----------------Vacuum in bellow and flanges
vacuum_bellow_ass->AddNode(vacuum_bellow_flange_0, 1, new TGeoTranslation(0, 0, 1.5));
vacuum_bellow_ass->AddNode(vacuum_bellow_1, 1, ctr_s1);
vacuum_bellow_ass->AddNode(vacuum_bellow_2, 1, ctr_s2);
vacuum_bellow_ass->AddNode(vacuum_bellow_3, 1, ctr_s3);
vacuum_bellow_ass->AddNode(vacuum_bellow_4, 1, ctr_s4);
vacuum_bellow_ass->AddNode(vacuum_bellow_flange_1, 1, ctr_s5);
//------------------DRIVE assembly--------------------------------------
bellow_ass->AddNode(roll_plate, 1, ctr_plate_up);
bellow_ass->AddNode(roll_plate, 2, ctr_plate_down);
......@@ -640,10 +706,18 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
//conical_beam_pipe->AddNode(tube_connection_sts_volume, 1, ctr_sts_tube); //unexplained "nonexisting" overlap
//conical_beam_pipe->AddNode(rich_much_upstream_tube_connection_volume, 1, ctr_sts_tube);
//-------------------VACUUM in CONICAL section--------------------------------------------------
//vacuum_conical_beam_pipe->AddNode(vacuum_downstream_flange, 1, new TGeoTranslation(0, 0, 1570 * mm)); // not needed
vacuum_conical_beam_pipe->AddNode(vacuum_conus_volume, 1, new TGeoTranslation(0, 0, 0));
vacuum_conical_beam_pipe->AddNode(vacuum_tube_connection_volume, 1, ctr_sts_conus_connection);
//------------------INSERT into top volume
full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(bellow_ass, 1, origin_combi);
full_assembly->AddNode(psd_tube, 1, ctr_psd_tube);
full_assembly->AddNode(vacuum_conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(vacuum_bellow_ass, 1, origin_combi);
full_assembly->AddNode(vacuum_psd_tube, 1, ctr_psd_tube);
//beampipe->AddNode(full_assembly,1, new TGeoTranslation(0, 0, 0*mm));
// --- close the geometry
......@@ -668,6 +742,6 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
binfile->Close();
//--- close the geometry
geom->CloseGeometry();
// gGeoManager->CheckOverlaps(0.0001);
// gGeoManager->GetListOfOverlaps()->Print();
//gGeoManager->CheckOverlaps(0.000001);
//gGeoManager->GetListOfOverlaps()->Print();
}
......@@ -279,10 +279,17 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
//TGeoVolume* conical_beam_pipe = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE);
TGeoVolume* vacuum_conical_beam_pipe = new TGeoVolumeAssembly("vacuum_conical_beam_pipe");
vacuum_conical_beam_pipe->SetVisibility(kFALSE);
//TGeoVolume* bellow_ass = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);
sub_t_plate1->SetLineColor(kGray);
......@@ -492,27 +499,45 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
r_arb1->SetVertex(7, rail_cord[3], rail_cord[1] + rail_cord[4]);
TGeoBBox* flange_box = new TGeoBBox("flange_box", 15.2, 15.2, 1.5);
TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 2.5);
TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 1.6);
// DOWNSTREAM_CARBON-FIBRE_RICH_MUCH_FLANGE_TO_BELLOW_ASS------------------------------------------------------------------------------------
TGeoBBox* rich_much_flange_box = new TGeoBBox("rich_much_flange_box", 15.2, 15.2, 1.5);
TGeoTube* rich_much_flange_hole = new TGeoTube("rich_much_flange_hole", 0., 12.5, 2.5);
TGeoTube* rich_much_flange_hole = new TGeoTube("rich_much_flange_hole", 0., 12.55, 1.6);
TGeoCompositeShape* rich_much_flange_composite =
new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole");
TGeoVolume* rich_much_downstream_flange =
new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF);
rich_much_downstream_flange->SetLineColor(kGray);
// CONICAL_BEAM_PIPE WITH CARBONE-FIBRE FLANGE AND TILTED END PIECE OF TUBE TO STS SECTION------------------------------------------------------------------------------------
// VACUUM IN THE FLANGE----------------------------------------------------------------------------------------------
TGeoTube* vacuum_flange_hole = new TGeoTube("vacuum_flange_hole", 0., 12.5, 1.5);
TGeoVolume* vacuum_downstream_flange =
new TGeoVolume("vacuum_downstream_flange", vacuum_flange_hole, Vacuum);
vacuum_downstream_flange->SetLineColor(kRed);
// CONICAL_BEAM_PIPE----------------------------------------------------------------------------------------------------------
TGeoCone* conus = new TGeoCone("conus", conus_lenght, rmin1, rmax1, rmin2, rmax2);
TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF);
conus_volume->SetLineColor(kGray);
TGeoCtub* tube_connection = new TGeoCtub("tube_connection", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0.05235892, 0., 4.99972585, 0., 0., 1.);
//-------------------------------VACUUM IN CONE-------------------------------------------------------------------
TGeoCone* vacuum_conus = new TGeoCone("vacuum_conus", conus_lenght, 0, rmin1, 0, rmin2);
TGeoVolume* vacuum_conus_volume = new TGeoVolume("vacuum_conus_volume", vacuum_conus, Vacuum);
vacuum_conus_volume->SetLineColor(kGreen);
// CONNECTING TUBE--------------------------------------------------------------------------------------------------------------------------------------------------------
TGeoCtub* tube_connection = new TGeoCtub("tube_connection", 55. * mm, 56. * mm, 15. * mm, 0., 360., -0.05235892, 0., 4.99972585, 0., 0., 1.);
TGeoVolume* tube_connection_volume = new TGeoVolume("tube_connection_volume", tube_connection, CF);
tube_connection_volume->SetLineColor(kGray);
TGeoCtub* tube_connection_sts = new TGeoCtub("tube_connection_sts", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0., 0., 1., -0.05235892, 0., 4.99972585);
//------------------------VACUUM IN THE CONNECTING TUBE--------------------------------------------------------------
TGeoCtub* vacuum_tube_connection = new TGeoCtub("vacuum_tube_connection", 0. * mm, 55. * mm, 15. * mm, 0., 360., -0.05235892, 0., 4.99972585, 0., 0., 1.);
TGeoVolume* vacuum_tube_connection_volume = new TGeoVolume("vacuum_tube_connection_volume", vacuum_tube_connection, Vacuum);
vacuum_tube_connection_volume->SetLineColor(kGreen);
// STS tube-----------------------------------------------------------------------------------------------------
TGeoCtub* tube_connection_sts = new TGeoCtub("tube_connection_sts", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0., 0., 1., 0.05235892, 0., 4.99972585);
TGeoVolume* tube_connection_sts_volume = new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
tube_connection_sts_volume->SetLineColor(kGray);
......@@ -541,18 +566,46 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
TGeoVolume* bellow_4 = new TGeoVolume("bellow_s3", bellow_s4, Stainless);
bellow_4->SetLineColor(kRed);
//-------------------------------VACUUM BELLOW DEFINITION----------------------------------------------------------------
TGeoVolume* vacuum_bellow_flange_0 = new TGeoVolume("vacuum_bellow_flange_0", vacuum_flange_hole, Vacuum);
vacuum_bellow_flange_0->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s1 = new TGeoCtub("vacuum_bellow_s1", 0 * mm, 121.9435 * mm, 55.64459032 * mm, 0., 360., -0.206, 0.,
-0.979, -0.206, 0., 0.979);
TGeoVolume* vacuum_bellow_1 = new TGeoVolume("vacuum_bellow_s1", vacuum_bellow_s1, Vacuum);
vacuum_bellow_1->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s2 = new TGeoCtub("vacuum_bellow_s2", 0 * mm, 124.842 * mm, 58.3156 * mm, 0., 360., -0.04705248, 0.,
-0.998892419, 0.04705248, 0, 0.998892419);
TGeoVolume* vacuum_bellow_2 = new TGeoVolume("vacuum_bellow_s2", vacuum_bellow_s2, Vacuum);
vacuum_bellow_2->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s3 = new TGeoCtub("vacuum_bellow_s3", 0 * mm, 123.5175 * mm, 40.5 * mm, 0., 360., -0.1439, 0.,
-0.9896, -0.1439, 0., 0.9896);
TGeoVolume* vacuum_bellow_3 = new TGeoVolume("vacuum_bellow_s3", vacuum_bellow_s3, Vacuum);
vacuum_bellow_3->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s4 = new TGeoCtub("vacuum_bellow_s4", 0 * mm, 124.8025 * mm, 22.5 * mm, 0., 360., -0.0526, 0.,
-0.9972, -0.0526, 0., 0.9972);
TGeoVolume* vacuum_bellow_4 = new TGeoVolume("vacuum_bellow_s3", vacuum_bellow_s4, Vacuum);
vacuum_bellow_4->SetLineColor(kGreen);
TGeoBBox* roll_plate_s = new TGeoBBox("roll_plate_s", 75. * mm, 12.5 * mm, 90. * mm);
TGeoVolume* roll_plate = new TGeoVolume("roll_plate", roll_plate_s, Al);
roll_plate->SetLineColor(kBlue);
TGeoTube* flange_cyl = new TGeoTube("flange_cyl", 0., 15., 1.5);
TGeoTube* flange_cyl_hole = new TGeoTube("flange_cyl_hole", 0., 8.9, 2.5);
TGeoTube* flange_cyl_hole = new TGeoTube("flange_cyl_hole", 0., 8.9, 1.6);
TGeoCompositeShape* flange_cyl_composite = new TGeoCompositeShape(
"flange_cyl_composite", "((flange_cyl-flange_cyl_hole)-roll_plate_s:tr_plate_up)-roll_plate_s:tr_plate_down");
TGeoVolume* bellow_flange_1 = new TGeoVolume("bellow_flange_1", flange_cyl_composite, Stainless);
bellow_flange_1->SetLineColor(kRed);
//-------------------------------VACUUM FLANGE BELLOW------------------------------------------------------------------
TGeoTube* vacuum_flange_cyl_hole = new TGeoTube("vacuum_flange_cyl_hole", 0., 8.9, 1.5);
TGeoVolume* vacuum_bellow_flange_1 = new TGeoVolume("vacuum_bellow_flange_1", vacuum_flange_cyl_hole, Vacuum);
vacuum_bellow_flange_1->SetLineColor(kGreen);
TGeoTube* lead_screw_s = new TGeoTube("lead_screw_s", 0. * mm, 6. * mm, 205. * mm);
TGeoTube* nut_small_s = new TGeoTube("nut_small_s", 6. * mm, 14. * mm, 50. * mm);
......@@ -573,6 +626,11 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF);
psd_tube->SetLineColor(kGray);
//------------------------------VACUUM PSD TUBE-------------------------------------------------------------------------
TGeoTube* vacuum_psd_tube_s = new TGeoTube("vacuum_psd_tube_s", 0. * mm, 90. * mm, 7230. * mm);
TGeoVolume* vacuum_psd_tube = new TGeoVolume("vacuum_psd_tube", vacuum_psd_tube_s, Vacuum);
vacuum_psd_tube->SetLineColor(kGreen);
//------------------TOP plate------------------------------
bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a);
bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a);
......@@ -625,6 +683,14 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
bellow_ass->AddNode(bellow_4, 1, ctr_s4);
bellow_ass->AddNode(bellow_flange_1, 1, ctr_s5);
//-----------------Vacuum in bellow and flanges
vacuum_bellow_ass->AddNode(vacuum_bellow_flange_0, 1, new TGeoTranslation(0, 0, 1.5));
vacuum_bellow_ass->AddNode(vacuum_bellow_1, 1, ctr_s1);
vacuum_bellow_ass->AddNode(vacuum_bellow_2, 1, ctr_s2);
vacuum_bellow_ass->AddNode(vacuum_bellow_3, 1, ctr_s3);
vacuum_bellow_ass->AddNode(vacuum_bellow_4, 1, ctr_s4);
vacuum_bellow_ass->AddNode(vacuum_bellow_flange_1, 1, ctr_s5);
//------------------DRIVE assembly--------------------------------------
bellow_ass->AddNode(roll_plate, 1, ctr_plate_up);
bellow_ass->AddNode(roll_plate, 2, ctr_plate_down);
......@@ -638,10 +704,18 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
conical_beam_pipe->AddNode(tube_connection_volume, 1, ctr_sts_conus_connection);
//conical_beam_pipe->AddNode(tube_connection_sts_volume, 1, ctr_sts_tube); //unexplained "nonexisting" overlap
//-------------------VACUUM in CONICAL section--------------------------------------------------
//vacuum_conical_beam_pipe->AddNode(vacuum_downstream_flange, 1, new TGeoTranslation(0, 0, 1570 * mm)); // not needed
vacuum_conical_beam_pipe->AddNode(vacuum_conus_volume, 1, new TGeoTranslation(0, 0, 0));
vacuum_conical_beam_pipe->AddNode(vacuum_tube_connection_volume, 1, ctr_sts_conus_connection);
//------------------INSERT into top volume
full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(bellow_ass, 1, origin_combi);
full_assembly->AddNode(psd_tube, 1, ctr_psd_tube);
full_assembly->AddNode(vacuum_conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(vacuum_bellow_ass, 1, origin_combi);
full_assembly->AddNode(vacuum_psd_tube, 1, ctr_psd_tube);
//beampipe->AddNode(full_assembly,1, new TGeoTranslation(0, 0, 0*mm));
// --- close the geometry
......@@ -666,6 +740,6 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
binfile->Close();
//--- close the geometry
geom->CloseGeometry();
// gGeoManager->CheckOverlaps(0.0001);
// gGeoManager->GetListOfOverlaps()->Print();
//gGeoManager->CheckOverlaps(0.000001);
//gGeoManager->GetListOfOverlaps()->Print();
}
......@@ -286,10 +286,17 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
//TGeoVolume* conical_beam_pipe = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE);
TGeoVolume* vacuum_conical_beam_pipe = new TGeoVolumeAssembly("vacuum_conical_beam_pipe");
vacuum_conical_beam_pipe->SetVisibility(kFALSE);
//TGeoVolume* bellow_ass = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);
sub_t_plate1->SetLineColor(kGray);
......@@ -499,34 +506,46 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
r_arb1->SetVertex(7, rail_cord[3], rail_cord[1] + rail_cord[4]);
TGeoBBox* flange_box = new TGeoBBox("flange_box", 15.2, 15.2, 1.5);
TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 2.5);
TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 1.6);
// DOWNSTREAM_CARBON-FIBRE_RICH_MUCH_FLANGE_TO_BELLOW_ASS------------------------------------------------------------------------------------
TGeoBBox* rich_much_flange_box = new TGeoBBox("rich_much_flange_box", 15.2, 15.2, 1.5);
TGeoTube* rich_much_flange_hole = new TGeoTube("rich_much_flange_hole", 0., 12.5, 2.5);
TGeoTube* rich_much_flange_hole = new TGeoTube("rich_much_flange_hole", 0., 12.55, 1.6);
TGeoCompositeShape* rich_much_flange_composite =
new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole");
TGeoVolume* rich_much_downstream_flange =
new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF);
rich_much_downstream_flange->SetLineColor(kGray);
// CONICAL_BEAM_PIPE WITH CARBONE-FIBRE FLANGE AND TILTED END PIECE OF TUBE TO STS SECTION------------------------------------------------------------------------------------
// VACUUM IN THE FLANGE----------------------------------------------------------------------------------------------
TGeoTube* vacuum_flange_hole = new TGeoTube("vacuum_flange_hole", 0., 12.5, 1.5);
TGeoVolume* vacuum_downstream_flange =
new TGeoVolume("vacuum_downstream_flange", vacuum_flange_hole, Vacuum);
vacuum_downstream_flange->SetLineColor(kRed);
// CONICAL_BEAM_PIPE----------------------------------------------------------------------------------------------------------
TGeoCone* conus = new TGeoCone("conus", conus_lenght, rmin1, rmax1, rmin2, rmax2);
TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF);
conus_volume->SetLineColor(kGray);
TGeoCtub* tube_connection =
new TGeoCtub("tube_connection", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0.05235892, 0.,
4.99972585, 0., 0., 1.);
TGeoVolume* tube_connection_volume =
new TGeoVolume("tube_connection_volume", tube_connection, CF);
//-------------------------------VACUUM IN CONE-------------------------------------------------------------------
TGeoCone* vacuum_conus = new TGeoCone("vacuum_conus", conus_lenght, 0, rmin1, 0, rmin2);
TGeoVolume* vacuum_conus_volume = new TGeoVolume("vacuum_conus_volume", vacuum_conus, Vacuum);
vacuum_conus_volume->SetLineColor(kGreen);
// CONNECTING TUBE--------------------------------------------------------------------------------------------------------------------------------------------------------
TGeoCtub* tube_connection = new TGeoCtub("tube_connection", 55. * mm, 56. * mm, 15. * mm, 0., 360., -0.05235892, 0., 4.99972585, 0., 0., 1.);
TGeoVolume* tube_connection_volume = new TGeoVolume("tube_connection_volume", tube_connection, CF);
tube_connection_volume->SetLineColor(kGray);
TGeoCtub* tube_connection_sts =
new TGeoCtub("tube_connection_sts", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0., 0., 1.,
-0.05235892, 0., 4.99972585);
TGeoVolume* tube_connection_sts_volume =
new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
//------------------------VACUUM IN THE CONNECTING TUBE--------------------------------------------------------------
TGeoCtub* vacuum_tube_connection = new TGeoCtub("vacuum_tube_connection", 0. * mm, 55. * mm, 15. * mm, 0., 360., -0.05235892, 0., 4.99972585, 0., 0., 1.);
TGeoVolume* vacuum_tube_connection_volume = new TGeoVolume("vacuum_tube_connection_volume", vacuum_tube_connection, Vacuum);
vacuum_tube_connection_volume->SetLineColor(kGreen);
// STS tube-----------------------------------------------------------------------------------------------------
TGeoCtub* tube_connection_sts = new TGeoCtub("tube_connection_sts", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0., 0., 1., 0.05235892, 0., 4.99972585);
TGeoVolume* tube_connection_sts_volume = new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
tube_connection_sts_volume->SetLineColor(kGray);
//-------------------------------BELLOW DEFINITION----------------------------------------------------------------
......@@ -564,6 +583,40 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
TGeoVolume* bellow_5 = new TGeoVolume("bellow_s5", bellow_s5, Stainless);
bellow_5->SetLineColor(kRed);
//-------------------------------VACUUM BELLOW DEFINITION----------------------------------------------------------------
TGeoVolume* vacuum_bellow_flange_0 = new TGeoVolume("vacuum_bellow_flange_0", vacuum_flange_hole, Vacuum);
vacuum_bellow_flange_0->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s1 = new TGeoCtub("vacuum_bellow_s1", 0 * mm, 122.5 * mm, 35 / 2 * mm, 0., 360.,
sin((90 - 89.091) * (pi / 180)), 0., -cos((90 - 89.091) * (pi / 180)),
sin((90 - 87.296) * (pi / 180)), 0., cos((90 - 87.296) * (pi / 180)));
TGeoVolume* vacuum_bellow_1 = new TGeoVolume("vacuum_bellow_s1", vacuum_bellow_s1, Vacuum);
vacuum_bellow_1->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s2 = new TGeoCtub("vacuum_bellow_s1", 0 * mm, 122.5 * mm, 70 / 2 * mm, 0., 360.,
sin((90 - 87.296) * (pi / 180)), 0., -cos((90 - 87.296) * (pi / 180)),
sin((90 - 86.744) * (pi / 180)), 0., cos((90 - 86.744) * (pi / 180)));
TGeoVolume* vacuum_bellow_2 = new TGeoVolume("vacuum_bellow_s2", vacuum_bellow_s2, Vacuum);
vacuum_bellow_2->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s3 =
new TGeoCtub("vacuum_bellow_s3", 0 * mm, 122.5 * mm, 83.124 / 2 * mm, 0., 360., sin((90 - 86.744) * (pi / 180)), 0.,
-cos((90 - 86.744) * (pi / 180)), sin((90 - 92.23) * (pi / 180)), 0., cos((90 - 92.23) * (pi / 180)));
TGeoVolume* vacuum_bellow_3 = new TGeoVolume("vacuum_bellow_s3", vacuum_bellow_s3, Vacuum);
vacuum_bellow_3->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s4 =
new TGeoCtub("vacuum_bellow_s4", 0 * mm, 122.5 * mm, 70 / 2 * mm, 0., 360., sin((90 - 92.23) * (pi / 180)), 0.,
-cos((90 - 92.23) * (pi / 180)), sin((90 - 93.025) * (pi / 180)), 0., cos((90 - 93.025) * (pi / 180)));
TGeoVolume* vacuum_bellow_4 = new TGeoVolume("vacuum_bellow_s4", vacuum_bellow_s4, Vacuum);
vacuum_bellow_4->SetLineColor(kGreen);
TGeoCtub* vacuum_bellow_s5 = new TGeoCtub("vacuum_bellow_s5", 0 * mm, 122.5 * mm, 35 / 2 * mm, 0., 360.,
sin((90 - 93.025) * (pi / 180)), 0., -cos((90 - 93.025) * (pi / 180)),
sin((90 - 91.854) * (pi / 180)), 0., cos((90 - 91.854) * (pi / 180)));
TGeoVolume* vacuum_bellow_5 = new TGeoVolume("vacuum_bellow_s5", vacuum_bellow_s5, Vacuum);
vacuum_bellow_5->SetLineColor(kGreen);
TGeoBBox* roll_plate_s = new TGeoBBox("roll_plate_s", 75. * mm, 12.5 * mm, 90. * mm);
TGeoVolume* roll_plate = new TGeoVolume("roll_plate", roll_plate_s, Al);
......@@ -576,6 +629,11 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
TGeoVolume* bellow_flange_1 = new TGeoVolume("bellow_flange_1", flange_cyl_composite, Stainless);
bellow_flange_1->SetLineColor(kRed);
//-------------------------------VACUUM FLANGE BELLOW------------------------------------------------------------------
TGeoTube* vacuum_flange_cyl_hole = new TGeoTube("vacuum_flange_cyl_hole", 0., 8.9, 1.5);
TGeoVolume* vacuum_bellow_flange_1 = new TGeoVolume("vacuum_bellow_flange_1", vacuum_flange_cyl_hole, Vacuum);
vacuum_bellow_flange_1->SetLineColor(kGreen);
TGeoTube* lead_screw_s = new TGeoTube("lead_screw_s", 0. * mm, 6. * mm, 205. * mm);
TGeoTube* nut_small_s = new TGeoTube("nut_small_s", 6. * mm, 14. * mm, 50. * mm);
......@@ -596,6 +654,11 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF);
psd_tube->SetLineColor(kGray);
//------------------------------VACUUM PSD TUBE-------------------------------------------------------------------------
TGeoTube* vacuum_psd_tube_s = new TGeoTube("vacuum_psd_tube_s", 0. * mm, 90. * mm, 7230. * mm);
TGeoVolume* vacuum_psd_tube = new TGeoVolume("vacuum_psd_tube", vacuum_psd_tube_s, Vacuum);
vacuum_psd_tube->SetLineColor(kGreen);
//------------------TOP plate------------------------------
bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a);
bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a);
......@@ -649,6 +712,15 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
bellow_ass->AddNode(bellow_5, 1, ctr_s5);
bellow_ass->AddNode(bellow_flange_1, 1, ctr_s6);
//----------------Vacuum in bellow and flanges-----------------------------
vacuum_bellow_ass->AddNode(vacuum_bellow_flange_0, 1, new TGeoTranslation(0, 0, 1.5));
vacuum_bellow_ass->AddNode(vacuum_bellow_1, 1, ctr_s1);
vacuum_bellow_ass->AddNode(vacuum_bellow_2, 1, ctr_s2);
vacuum_bellow_ass->AddNode(vacuum_bellow_3, 1, ctr_s3);
vacuum_bellow_ass->AddNode(vacuum_bellow_4, 1, ctr_s4);
vacuum_bellow_ass->AddNode(vacuum_bellow_5, 1, ctr_s5);
vacuum_bellow_ass->AddNode(vacuum_bellow_flange_1, 1, ctr_s6);
//------------------DRIVE assembly--------------------------------------
bellow_ass->AddNode(roll_plate, 1, ctr_plate_up);
bellow_ass->AddNode(roll_plate, 2, ctr_plate_down);
......@@ -662,10 +734,19 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
conical_beam_pipe->AddNode(tube_connection_volume, 1, ctr_sts_conus_connection);
//conical_beam_pipe->AddNode(tube_connection_sts_volume, 1, ctr_sts_tube); //unexplained "nonexisting" overlap
//-------------------VACUUM in CONICAL section--------------------------------------------------
//vacuum_conical_beam_pipe->AddNode(vacuum_downstream_flange, 1, new TGeoTranslation(0, 0, 1570 * mm)); // not needed
vacuum_conical_beam_pipe->AddNode(vacuum_conus_volume, 1, new TGeoTranslation(0, 0, 0));
vacuum_conical_beam_pipe->AddNode(vacuum_tube_connection_volume, 1, ctr_sts_conus_connection);
//------------------INSERT into top volume
full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(bellow_ass, 1, origin_combi);
full_assembly->AddNode(psd_tube, 1, ctr_psd_tube);
full_assembly->AddNode(vacuum_conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(vacuum_bellow_ass, 1, origin_combi);
full_assembly->AddNode(vacuum_psd_tube, 1, ctr_psd_tube);
//beampipe->AddNode(full_assembly,1, new TGeoTranslation(0, 0, 0*mm));
// --- close the geometry
......@@ -690,6 +771,6 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g")
binfile->Close();
//--- close the geometry
geom->CloseGeometry();
//gGeoManager->CheckOverlaps(0.0001);
//gGeoManager->CheckOverlaps(0.000001);
//gGeoManager->GetListOfOverlaps()->Print();
}
......@@ -279,17 +279,24 @@ void create_bpipe_geometry_v21h(const char* geoTag = "v21h")
Double_t worldx = 800 * mm;
Double_t worldy = 220 * mm;
Double_t worldz = 18100 * mm;
//TGeoVolume* full_assembly = geom->MakeBox("pipe_v21h", Vacuum, worldx, worldy, worldz);
TGeoVolumeAssembly* full_assembly = new TGeoVolumeAssembly("pipe_v21h");
//TGeoVolume* full_assembly = geom->MakeBox("pipe_v21g", Vacuum, worldx, worldy, worldz);
TGeoVolumeAssembly* full_assembly = new TGeoVolumeAssembly("pipe_v21g");
geom->SetTopVolume(full_assembly);
full_assembly->SetVisibility(kTRUE);
//TGeoVolume* conical_beam_pipe = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE);
TGeoVolume* vacuum_conical_beam_pipe = new TGeoVolumeAssembly("vacuum_conical_beam_pipe");
vacuum_conical_beam_pipe->SetVisibility(kFALSE);
//TGeoVolume* bellow_ass = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);