Commit 98b05fee 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 a2f39f11
Pipeline #17685 failed with stages
in 35 seconds
...@@ -281,10 +281,17 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e") ...@@ -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 = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe"); TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE); 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 = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly"); TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE); bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE-------------------------------------------------------------------------------------- // TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]); TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);
sub_t_plate1->SetLineColor(kGray); sub_t_plate1->SetLineColor(kGray);
...@@ -494,26 +501,44 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e") ...@@ -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]); 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); 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------------------------------------------------------------------------------------ // 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); 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 = TGeoCompositeShape* rich_much_flange_composite =
new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole"); new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole");
TGeoVolume* rich_much_downstream_flange = TGeoVolume* rich_much_downstream_flange =
new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF); new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF);
rich_much_downstream_flange->SetLineColor(kGray); 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); TGeoCone* conus = new TGeoCone("conus", conus_lenght, rmin1, rmax1, rmin2, rmax2);
TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF); TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF);
conus_volume->SetLineColor(kGray); 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.); 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); TGeoVolume* tube_connection_volume = new TGeoVolume("tube_connection_volume", tube_connection, CF);
tube_connection_volume->SetLineColor(kGray); 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); 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); TGeoVolume* tube_connection_sts_volume = new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
tube_connection_sts_volume->SetLineColor(kGray); tube_connection_sts_volume->SetLineColor(kGray);
...@@ -538,23 +563,50 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e") ...@@ -538,23 +563,50 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
TGeoVolume* bellow_3 = new TGeoVolume("bellow_s3", bellow_s3, Stainless); TGeoVolume* bellow_3 = new TGeoVolume("bellow_s3", bellow_s3, Stainless);
bellow_3->SetLineColor(kRed); 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); -0.999706873, -0.083697266, 0., 0.996491228);
TGeoVolume* bellow_4 = new TGeoVolume("bellow_s3", bellow_s4, Stainless); TGeoVolume* bellow_4 = new TGeoVolume("bellow_s3", bellow_s4, Stainless);
bellow_4->SetLineColor(kRed); 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); 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); TGeoVolume* roll_plate = new TGeoVolume("roll_plate", roll_plate_s, Al);
roll_plate->SetLineColor(kBlue); roll_plate->SetLineColor(kBlue);
TGeoTube* flange_cyl = new TGeoTube("flange_cyl", 0., 15., 1.5); 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( 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"); "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); TGeoVolume* bellow_flange_1 = new TGeoVolume("bellow_flange_1", flange_cyl_composite, Stainless);
bellow_flange_1->SetLineColor(kRed); 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* 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); 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") ...@@ -575,6 +627,11 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF); TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF);
psd_tube->SetLineColor(kGray); 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------------------------------ //------------------TOP plate------------------------------
bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a); bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a);
bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a); bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a);
...@@ -627,6 +684,15 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e") ...@@ -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_4, 1, ctr_s4);
bellow_ass->AddNode(bellow_flange_1, 1, ctr_s5); 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-------------------------------------- //------------------DRIVE assembly--------------------------------------
bellow_ass->AddNode(roll_plate, 1, ctr_plate_up); bellow_ass->AddNode(roll_plate, 1, ctr_plate_up);
bellow_ass->AddNode(roll_plate, 2, ctr_plate_down); bellow_ass->AddNode(roll_plate, 2, ctr_plate_down);
...@@ -640,10 +706,18 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e") ...@@ -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(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); //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 //------------------INSERT into top volume
full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone); full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(bellow_ass, 1, origin_combi); full_assembly->AddNode(bellow_ass, 1, origin_combi);
full_assembly->AddNode(psd_tube, 1, ctr_psd_tube); 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)); //beampipe->AddNode(full_assembly,1, new TGeoTranslation(0, 0, 0*mm));
// --- close the geometry // --- close the geometry
...@@ -668,6 +742,6 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e") ...@@ -668,6 +742,6 @@ void create_bpipe_geometry_v21e(const char* geoTag = "v21e")
binfile->Close(); binfile->Close();
//--- close the geometry //--- close the geometry
geom->CloseGeometry(); geom->CloseGeometry();
// gGeoManager->CheckOverlaps(0.0001); //gGeoManager->CheckOverlaps(0.000001);
// gGeoManager->GetListOfOverlaps()->Print(); //gGeoManager->GetListOfOverlaps()->Print();
} }
...@@ -279,10 +279,17 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f") ...@@ -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 = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe"); TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE); 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 = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly"); TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE); bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE-------------------------------------------------------------------------------------- // TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]); TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);
sub_t_plate1->SetLineColor(kGray); sub_t_plate1->SetLineColor(kGray);
...@@ -492,27 +499,45 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f") ...@@ -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]); 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); 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------------------------------------------------------------------------------------ // 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); 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 = TGeoCompositeShape* rich_much_flange_composite =
new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole"); new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole");
TGeoVolume* rich_much_downstream_flange = TGeoVolume* rich_much_downstream_flange =
new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF); new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF);
rich_much_downstream_flange->SetLineColor(kGray); 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); TGeoCone* conus = new TGeoCone("conus", conus_lenght, rmin1, rmax1, rmin2, rmax2);
TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF); TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF);
conus_volume->SetLineColor(kGray); 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); TGeoVolume* tube_connection_volume = new TGeoVolume("tube_connection_volume", tube_connection, CF);
tube_connection_volume->SetLineColor(kGray); 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); TGeoVolume* tube_connection_sts_volume = new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
tube_connection_sts_volume->SetLineColor(kGray); tube_connection_sts_volume->SetLineColor(kGray);
...@@ -541,18 +566,46 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f") ...@@ -541,18 +566,46 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
TGeoVolume* bellow_4 = new TGeoVolume("bellow_s3", bellow_s4, Stainless); TGeoVolume* bellow_4 = new TGeoVolume("bellow_s3", bellow_s4, Stainless);
bellow_4->SetLineColor(kRed); 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); 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); TGeoVolume* roll_plate = new TGeoVolume("roll_plate", roll_plate_s, Al);
roll_plate->SetLineColor(kBlue); roll_plate->SetLineColor(kBlue);
TGeoTube* flange_cyl = new TGeoTube("flange_cyl", 0., 15., 1.5); 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( 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"); "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); TGeoVolume* bellow_flange_1 = new TGeoVolume("bellow_flange_1", flange_cyl_composite, Stainless);
bellow_flange_1->SetLineColor(kRed); 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* 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); 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") ...@@ -573,6 +626,11 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF); TGeoVolume* psd_tube = new TGeoVolume("psd_tube", psd_tube_s, CF);
psd_tube->SetLineColor(kGray); 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------------------------------ //------------------TOP plate------------------------------
bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a); bellow_ass->AddNode(sub_t_plate1, 1, tr_top_0a);
bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a); bellow_ass->AddNode(sub_t_plate2, 1, tr_top_1a);
...@@ -625,6 +683,14 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f") ...@@ -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_4, 1, ctr_s4);
bellow_ass->AddNode(bellow_flange_1, 1, ctr_s5); 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-------------------------------------- //------------------DRIVE assembly--------------------------------------
bellow_ass->AddNode(roll_plate, 1, ctr_plate_up); bellow_ass->AddNode(roll_plate, 1, ctr_plate_up);
bellow_ass->AddNode(roll_plate, 2, ctr_plate_down); bellow_ass->AddNode(roll_plate, 2, ctr_plate_down);
...@@ -638,10 +704,18 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f") ...@@ -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_volume, 1, ctr_sts_conus_connection);
//conical_beam_pipe->AddNode(tube_connection_sts_volume, 1, ctr_sts_tube); //unexplained "nonexisting" overlap //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 //------------------INSERT into top volume
full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone); full_assembly->AddNode(conical_beam_pipe, 1, origin_combi_cone);
full_assembly->AddNode(bellow_ass, 1, origin_combi); full_assembly->AddNode(bellow_ass, 1, origin_combi);
full_assembly->AddNode(psd_tube, 1, ctr_psd_tube); 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)); //beampipe->AddNode(full_assembly,1, new TGeoTranslation(0, 0, 0*mm));
// --- close the geometry // --- close the geometry
...@@ -666,6 +740,6 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f") ...@@ -666,6 +740,6 @@ void create_bpipe_geometry_v21f(const char* geoTag = "v21f")
binfile->Close(); binfile->Close();
//--- close the geometry //--- close the geometry
geom->CloseGeometry(); geom->CloseGeometry();
// gGeoManager->CheckOverlaps(0.0001); //gGeoManager->CheckOverlaps(0.000001);
// gGeoManager->GetListOfOverlaps()->Print(); //gGeoManager->GetListOfOverlaps()->Print();
} }
...@@ -286,10 +286,17 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g") ...@@ -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 = geom->MakeBox("conical_beam_pipe", Vacuum, 220 * mm, 220 * mm, 1825 * mm);
TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe"); TGeoVolume* conical_beam_pipe = new TGeoVolumeAssembly("conical_beam_pipe");
conical_beam_pipe->SetVisibility(kFALSE); 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 = geom->MakeBox("Bellow assembly", Vacuum, 350 * mm, 220 * mm, 600 * mm);
TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly"); TGeoVolume* bellow_ass = new TGeoVolumeAssembly("Bellow assembly");
bellow_ass->SetVisibility(kFALSE); bellow_ass->SetVisibility(kFALSE);
TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
vacuum_bellow_ass->SetVisibility(kFALSE);
// TOP PLATE-------------------------------------------------------------------------------------- // TOP PLATE--------------------------------------------------------------------------------------
TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]); TGeoVolume* sub_t_plate1 = geom->MakeArb8("sub_t_plate1", CF, top_plate_cord[2]);
sub_t_plate1->SetLineColor(kGray); sub_t_plate1->SetLineColor(kGray);
...@@ -499,34 +506,46 @@ void create_bpipe_geometry_v21g(const char* geoTag = "v21g") ...@@ -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]); 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); 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------------------------------------------------------------------------------------ // 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); 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 = TGeoCompositeShape* rich_much_flange_composite =
new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole"); new TGeoCompositeShape("flange_composite_rich", "rich_much_flange_box-rich_much_flange_hole");
TGeoVolume* rich_much_downstream_flange = TGeoVolume* rich_much_downstream_flange =
new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF); new TGeoVolume("rich_much_downstream_flange", rich_much_flange_composite, CF);
rich_much_downstream_flange->SetLineColor(kGray); 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); TGeoCone* conus = new TGeoCone("conus", conus_lenght, rmin1, rmax1, rmin2, rmax2);
TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF); TGeoVolume* conus_volume = new TGeoVolume("conus_volume", conus, CF);
conus_volume->SetLineColor(kGray); conus_volume->SetLineColor(kGray);
TGeoCtub* tube_connection = //-------------------------------VACUUM IN CONE-------------------------------------------------------------------
new TGeoCtub("tube_connection", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0.05235892, 0., TGeoCone* vacuum_conus = new TGeoCone("vacuum_conus", conus_lenght, 0, rmin1, 0, rmin2);
4.99972585, 0., 0., 1.); TGeoVolume* vacuum_conus_volume = new TGeoVolume("vacuum_conus_volume", vacuum_conus, Vacuum);
TGeoVolume* tube_connection_volume = vacuum_conus_volume->SetLineColor(kGreen);
new TGeoVolume("tube_connection_volume", tube_connection, CF);
// 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); tube_connection_volume->SetLineColor(kGray);
TGeoCtub* tube_connection_sts = //------------------------VACUUM IN THE CONNECTING TUBE--------------------------------------------------------------
new TGeoCtub("tube_connection_sts", 55. * mm, 56. * mm, 15. * mm, 0., 360., 0., 0., 1.,