From ab18ec5719595755fcb04a354d79e0b093f8221e Mon Sep 17 00:00:00 2001
From: Petr Chudoba <p.chudoba@gsi.de>
Date: Mon, 27 Jan 2025 23:46:50 +0000
Subject: [PATCH] Introduce pipe_v24 geometries.

Macro allows binaries to be generated at arbitrary angles.
Outer casing of bellows assembly removed.
Geometries v24e, v24f, v24h, v24i are provided.
---
 macro/pipe/fair/create_bpipe_geometry_gen.C | 442 ++++++++++++++++++++
 pipe/pipe_v24e.geo.info                     |   7 +
 pipe/pipe_v24e.geo.root                     | Bin 0 -> 10910 bytes
 pipe/pipe_v24f.geo.info                     |   4 +
 pipe/pipe_v24f.geo.root                     | Bin 0 -> 10899 bytes
 pipe/pipe_v24h.geo.info                     |   4 +
 pipe/pipe_v24h.geo.root                     | Bin 0 -> 10915 bytes
 pipe/pipe_v24i.geo.info                     |   4 +
 pipe/pipe_v24i.geo.root                     | Bin 0 -> 10899 bytes
 9 files changed, 461 insertions(+)
 create mode 100644 macro/pipe/fair/create_bpipe_geometry_gen.C
 create mode 100644 pipe/pipe_v24e.geo.info
 create mode 100644 pipe/pipe_v24e.geo.root
 create mode 100644 pipe/pipe_v24f.geo.info
 create mode 100644 pipe/pipe_v24f.geo.root
 create mode 100644 pipe/pipe_v24h.geo.info
 create mode 100644 pipe/pipe_v24h.geo.root
 create mode 100644 pipe/pipe_v24i.geo.info
 create mode 100644 pipe/pipe_v24i.geo.root

diff --git a/macro/pipe/fair/create_bpipe_geometry_gen.C b/macro/pipe/fair/create_bpipe_geometry_gen.C
new file mode 100644
index 00000000..e82078cb
--- /dev/null
+++ b/macro/pipe/fair/create_bpipe_geometry_gen.C
@@ -0,0 +1,442 @@
+/* Copyright (C) 2022 Czech Technical University in Prague,
+   Faculty of Nuclear Sciences and Physical Engineering
+   SPDX-License-Identifier: GPL-3.0-only
+   Authors: Petr Chudoba [committer]*/
+
+#include "TGeoArb8.h"
+#include "TGeoCompositeShape.h"
+#include "TGeoCone.h"
+#include "TGeoManager.h"
+#include "TGeoMatrix.h"
+#include "TGeoSystemOfUnits.h"
+#include "TGeoTube.h"
+#include "TPad.h"
+#include "TROOT.h"
+#include "TSystem.h"
+#include "TFile.h"
+#include "TVector3.h"
+
+#include "iostream"
+#include "stdio.h"
+#include "cmath"
+
+using namespace std;
+using namespace TGeoUnit;
+
+void create_bpipe_geometry_gen(const char* geoTag = "v24f", double beam_deflection_angle=0)
+{
+  //--- Definition of a simple geometry
+  gSystem->Load("libGeom");
+  TString geomMngr = "beampipe_";
+  geomMngr = geomMngr+geoTag;
+  TGeoManager* geom = new TGeoManager(geomMngr, "CBM beampipe geometry generator for user adjustable angles");
+
+  //--- define some materials
+  TGeoMixture* matCarbonFiber = new TGeoMixture("BP_carbonfiber", 4, 1.5);
+  matCarbonFiber->AddElement(12.001, 6.0, 0.8926);
+  matCarbonFiber->AddElement(1.0079, 1.0, 0.0192);
+  matCarbonFiber->AddElement(35.453, 17.0, 0.0271);
+  matCarbonFiber->AddElement(15.999, 8.0, 0.0611);
+
+  // TGeoMixture* matStainless = new TGeoMixture("BP_stainless", 10, 8.0);
+  // matStainless->AddElement(12.0, 6.0, 0.00035);
+  // matStainless->AddElement(51.94, 24.0, 0.175);
+  // matStainless->AddElement(54.94, 25.0, 0.01);
+  // matStainless->AddElement(95.94, 42.0, 0.025);
+  // matStainless->AddElement(14.0, 7.0, 0.0005);
+  // matStainless->AddElement(58.6934, 28.0, 0.115);
+  // matStainless->AddElement(30.97, 15.0, 0.000225);
+  // matStainless->AddElement(31.97, 16.0, 0.000075);
+  // matStainless->AddElement(27.98, 14.0, 0.005);
+  // matStainless->AddElement(55.93, 26.0, 0.67135);
+
+  TGeoMaterial* matVacuum = new TGeoMaterial("BP_vacuum", 1.e-16, 1.e-16, 1.e-16);
+  // TGeoMaterial* matAl     = new TGeoMaterial("BP_aluminium", 26.9815386, 13, 2.7, 24.01);
+
+  //   //--- define some media
+  TGeoMedium* Vacuum    = new TGeoMedium("BP_vacuum", 1, matVacuum);
+  // TGeoMedium* Al        = new TGeoMedium("BP_aluminium", 2, matAl);
+  TGeoMedium* CF        = new TGeoMedium("BP_carbonfiber", 3, matCarbonFiber);
+  // TGeoMedium* Stainless = new TGeoMedium("BP_stainless", 4, matStainless);
+
+  // Conus part dimensions
+  const Double_t conus_lenght = 1585 * mm;
+  const Double_t conus_rmin1        = 55 * mm;
+  const Double_t conus_rmax1        = 56 * mm;
+  const Double_t conus_rmin2        = 125 * mm;
+  const Double_t conus_rmax2        = 126 * mm;
+
+  const Double_t beam_pipe_length = 14460 * mm;
+  const Double_t beam_pipe_rmin = 90 * mm;
+  const Double_t beam_pipe_rmax = 92 * mm;
+
+  const Double_t dist_to_bellow = 4418 * mm; // center of mass of upstream flange
+  const Double_t bending_radius = 4737 * mm; // center of mass of downstream flange
+  const Double_t flange_thickness = 30 * mm;
+  const Double_t short_segment = 45 * mm;
+  const Double_t long_segment = 65 * mm;
+  const Double_t bellow_rmin = 137.5 * mm;
+  const Double_t bellow_rmax = 142.5 * mm;
+  const Double_t cone_deflection_angle = 1.277/radian; // from deg to rad
+  
+  beam_deflection_angle = beam_deflection_angle/radian;  // from deg to rad
+
+  Double_t pipe_deflection_radius = bending_radius+(flange_thickness/2)+(beam_pipe_length/2);
+
+  Double_t bellow_deflection_angle = beam_deflection_angle-cone_deflection_angle; // in radians
+  Double_t alpha = atan((bending_radius*sin(bellow_deflection_angle))/(bending_radius*cos(bellow_deflection_angle)-dist_to_bellow)); // in radians
+  Double_t direction=1.0;
+  if (alpha!=0){
+    direction=alpha/abs(alpha);
+  }
+  // Center of mass points of bellow flanges
+  TVector3 p_b0(0,0,flange_thickness/2);
+  TVector3 p_b6(bending_radius*sin(bellow_deflection_angle),0,bending_radius*cos(bellow_deflection_angle)-dist_to_bellow);
+   
+  // Vectors defining axis of each part of bellow
+  TVector3 b0(0,0,flange_thickness); // axis vector of the upstream flange
+  TVector3 b1(short_segment*sin(alpha/4),0,short_segment*cos(alpha/4)); // axis vector of the first bellow segment
+  TVector3 b2(long_segment*sin(alpha),0,long_segment*cos(alpha)); // axis vector of the second bellow segment
+  TVector3 b3; // axis vector of the third (middle) bellow segment - init only
+  TVector3 b4(long_segment*sin(alpha+bellow_deflection_angle),0,long_segment*cos(alpha+bellow_deflection_angle)); // axis vector of the fourth bellow segment
+  TVector3 b5(short_segment*sin((alpha/4)+bellow_deflection_angle),0,short_segment*cos((alpha/4)+bellow_deflection_angle)); // axis vector of the fifth bellow segment
+  TVector3 b6(flange_thickness*sin(bellow_deflection_angle),0,flange_thickness*cos(bellow_deflection_angle)); // axis vector of the downstream flange
+  b3 = (p_b6-(1./2)*b6-b5-b4)-(p_b0+(1./2)*b0+b1+b2); // axis vector of the third (middle) bellow segment
+
+  TVector3 pipe_vec(beam_pipe_length*sin(bellow_deflection_angle),0,beam_pipe_length*cos(bellow_deflection_angle));
+  
+  Double_t middle_segment = b3.Mag();
+
+
+  // Angles of separate part of bellow
+  Double_t beta0 = direction*b0.Theta();
+  Double_t beta1 = direction*b1.Theta();
+  Double_t beta2 = direction*b2.Theta();
+  Double_t beta3 = direction*b3.Theta();
+  Double_t beta4 = direction*b4.Theta();
+  Double_t beta5 = direction*b5.Theta();
+  Double_t beta6 = direction*b6.Theta();
+
+  // Normal vectors for CTub cut planes for bellow segments 
+  TVector3 n01(-sin((beta0-beta1)),0,-cos((beta0-beta1)));
+  TVector3 n12(-sin((beta1-beta2)/2),0,cos((beta1-beta2)/2));
+  TVector3 n21(sin((beta2-beta1)/2),0,-cos((beta2-beta1)/2));
+  TVector3 n23(-sin((beta2-beta3)/2),0,cos((beta2-beta3)/2));
+  TVector3 n32(sin((beta3-beta2)/2),0,-cos((beta3-beta2)/2));
+  TVector3 n34(-sin((beta3-beta4)/2),0,cos((beta3-beta4)/2));
+  TVector3 n43(sin((beta4-beta3)/2),0,-cos((beta4-beta3)/2));
+  TVector3 n45(-sin((beta4-beta5)/2),0,cos((beta4-beta5)/2));
+  TVector3 n54(sin((beta5-beta4)/2),0,-cos((beta5-beta4)/2));
+  TVector3 n56(-sin((beta5-beta6)),0,cos((beta5-beta6)));
+
+  //-----------------------DEFINITION OF TRANSFORMATIONS--------------------------------------------------------------------------------------
+
+  TGeoTranslation orig_translation("orig_translation", -0.15707676 * mm, 0, 3230 * mm);
+
+  TGeoTranslation orig_translation_cone("orig_translation_cone", -0.15707676 * mm, 0, 1645 * mm);
+
+
+  TGeoRotation orig_rotation("orig_rotation");
+  orig_rotation.RotateY(cone_deflection_angle*radian);
+
+
+  TGeoHMatrix orig_combi = orig_rotation * orig_translation;
+
+  TGeoHMatrix orig_combi_cone = orig_rotation * orig_translation_cone;
+
+  TGeoHMatrix* origin_combi = new TGeoHMatrix(orig_combi);
+
+  TGeoHMatrix* origin_combi_cone = new TGeoHMatrix(orig_combi_cone);
+
+
+  TGeoRotation* rot_sts_conus_connection = new TGeoRotation("rot_sts_conus_connection");
+  rot_sts_conus_connection->RotateZ(180);
+  TGeoCombiTrans* ctr_sts_conus_connection = new TGeoCombiTrans(0, 0, -1600 * mm, rot_sts_conus_connection);
+
+  TGeoRotation* rotation_of_sts_tube = new TGeoRotation("rotation_of_sts_tube");
+  rotation_of_sts_tube->RotateZ(180);
+  rotation_of_sts_tube->RotateY(-cone_deflection_angle*radian);
+  TGeoCombiTrans* ctr_sts_tube = new TGeoCombiTrans(0.3707676 * mm, 0, -1631.001 * mm, rotation_of_sts_tube);
+
+
+  TVector3 aux_vec;
+
+  aux_vec=(1./2)*b0;
+  TGeoRotation* rot_b0 = new TGeoRotation("rot_b0");
+  rot_b0->RotateY(beta0*radian);
+  TGeoCombiTrans* ctr_b0 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b0);
+
+  aux_vec=aux_vec+(1./2)*(b0+b1);
+  TGeoRotation* rot_b1 = new TGeoRotation("rot_b1");
+  rot_b1->RotateY(beta1*radian);
+  TGeoCombiTrans* ctr_b1 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b1);
+  
+  aux_vec=aux_vec+(1./2)*(b1+b2);
+  TGeoRotation* rot_b2 = new TGeoRotation("rot_b2");
+  rot_b2->RotateY(beta2*radian);
+  TGeoCombiTrans* ctr_b2 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b2);
+  
+  aux_vec=aux_vec+(1./2)*(b2+b3);
+  TGeoRotation* rot_b3 = new TGeoRotation("rot_b3");
+  rot_b3->RotateY(beta3*radian);
+  TGeoCombiTrans* ctr_b3 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b3);
+  
+  aux_vec=aux_vec+(1./2)*(b3+b4);
+  TGeoRotation* rot_b4 = new TGeoRotation("rot_b4");
+  rot_b4->RotateY(beta4*radian);
+  TGeoCombiTrans* ctr_b4 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b4);
+  
+  aux_vec=aux_vec+(1./2)*(b4+b5);
+  TGeoRotation* rot_b5 = new TGeoRotation("rot_b5");
+  rot_b5->RotateY(beta5*radian);
+  TGeoCombiTrans* ctr_b5 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b5);
+
+  aux_vec=aux_vec+(1./2)*(b5+b6);
+  TGeoRotation* rot_b6 = new TGeoRotation("rot_b6");
+  rot_b6->RotateY(beta6*radian);
+  TGeoCombiTrans* ctr_b6 = new TGeoCombiTrans(aux_vec.X(),aux_vec.Y(),aux_vec.Z(),rot_b6);
+
+  aux_vec=aux_vec+(1./2)*(b6+pipe_vec);
+  TGeoRotation rot_psd_tube_loc("rot_psd_tube_loc");
+  rot_psd_tube_loc.RotateY(beta6*radian);
+  TGeoTranslation tr_psd_tube_loc("tr_psd_tube", aux_vec.X(),aux_vec.Y(),aux_vec.Z());
+  
+  TGeoHMatrix ctr_psd_tube_aux = orig_combi*tr_psd_tube_loc*rot_psd_tube_loc;
+  TGeoHMatrix* ctr_psd_tube = new TGeoHMatrix(ctr_psd_tube_aux);
+
+  //------------------------------------DEFINITIONS OF VOLUMES----------------------------------------
+  //--- make the top container volume
+  Double_t worldx           = 800 * mm;
+  Double_t worldy           = 220 * mm;
+  Double_t worldz           = 18100 * mm;
+  TString assemblyName = "pipe_";
+  assemblyName=assemblyName+geoTag;
+  TGeoVolumeAssembly* full_assembly = new TGeoVolumeAssembly(assemblyName);
+  geom->SetTopVolume(full_assembly);
+  full_assembly->SetVisibility(kTRUE);
+  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 = new TGeoVolumeAssembly("Bellow assembly");
+  bellow_ass->SetVisibility(kFALSE);
+
+  TGeoVolume* vacuum_bellow_ass = new TGeoVolumeAssembly("Vacuum_bellow assembly");
+  vacuum_bellow_ass->SetVisibility(kFALSE);
+
+
+
+
+
+  // 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.6, 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);
+
+  // 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, conus_rmin1, conus_rmax1, conus_rmin2, conus_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, conus_rmin1, 0, conus_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.022286009, 0., -0.999751636, 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.022286009, 0., -0.999751636, 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.011143697, 0., 0.999937907);
+  TGeoVolume* tube_connection_sts_volume = new TGeoVolume("tube_connection_sts_volume", tube_connection_sts, CF);
+  tube_connection_sts_volume->SetLineColor(kGray);
+
+
+
+ 
+
+
+  //-------------------------------BELLOW DEFINITION----------------------------------------------------------------
+  //UPSTREAM FLANGE
+  TGeoBBox* flange_box  = new TGeoBBox("flange_box", 15.2, 15.2, 1.5);
+  TGeoTube* flange_hole = new TGeoTube("flange_hole", 0., 12.5, 1.6);
+
+  TGeoCompositeShape* flange_composite = new TGeoCompositeShape("flange_composite", "flange_box-flange_hole");
+  TGeoVolume* bellow_flange_0          = new TGeoVolume("bellow_flange_0", flange_composite, CF);
+  bellow_flange_0->SetLineColor(kRed);
+
+  //BELLOW SEGMENT 1
+  TGeoCtub* bellow_s1  = new TGeoCtub("bellow_s1", bellow_rmin, bellow_rmax, short_segment/2-0.001, 0., 360.,
+                                     n01.X(), n01.Y(), n01.Z(), n12.X(), n12.Y(), n12.Z());
+  TGeoVolume* bellow_1 = new TGeoVolume("bellow_s1", bellow_s1, CF);
+  bellow_1->SetLineColor(kRed);
+
+  //BELLOW SEGMENT 2
+  TGeoCtub* bellow_s2  = new TGeoCtub("bellow_s2", bellow_rmin, bellow_rmax, long_segment/2-0.001, 0., 360.,
+                                     n21.X(), n21.Y(), n21.Z(), n23.X(), n23.Y(), n23.Z());
+  TGeoVolume* bellow_2 = new TGeoVolume("bellow_s2", bellow_s2, CF);
+  bellow_2->SetLineColor(kRed);
+
+  //BELLOW SEGMENT 3
+  TGeoCtub* bellow_s3  = new TGeoCtub("bellow_s3", bellow_rmin, bellow_rmax, middle_segment/2-0.001, 0., 360.,
+                                     n32.X(), n32.Y(), n32.Z(), n34.X(), n34.Y(), n34.Z());
+  TGeoVolume* bellow_3 = new TGeoVolume("bellow_s3", bellow_s3, CF);
+  bellow_3->SetLineColor(kRed);
+
+  //BELLOW SEGMENT 4
+  TGeoCtub* bellow_s4  = new TGeoCtub("bellow_s4", bellow_rmin, bellow_rmax, long_segment/2-0.001, 0., 360.,
+                                     n43.X(), n43.Y(), n43.Z(), n45.X(), n45.Y(), n45.Z());
+  TGeoVolume* bellow_4 = new TGeoVolume("bellow_s4", bellow_s4, CF);
+  bellow_4->SetLineColor(kRed);
+
+  //BELLOW SEGMENT 5
+  TGeoCtub* bellow_s5  = new TGeoCtub("bellow_s5", bellow_rmin, bellow_rmax, short_segment/2-0.001, 0., 360.,
+                                     n54.X(), n54.Y(), n54.Z(), n56.X(), n56.Y(), n56.Z());
+  TGeoVolume* bellow_5 = new TGeoVolume("bellow_s5", bellow_s5, CF);
+  bellow_5->SetLineColor(kRed);
+
+  //DOWNSTREAM FLANGE
+  TGeoTube* flange_cyl                     = new TGeoTube("flange_cyl", 8.9, 15., 1.5);
+  TGeoVolume* bellow_flange_1 = new TGeoVolume("bellow_flange_1", flange_cyl, CF);
+  bellow_flange_1->SetLineColor(kRed);
+
+  //-------------------------------BELLOW VACUUM DEFINITION----------------------------------------------------------------
+  //VACUUM UPSTREAM FLANGE
+  TGeoVolume* vacuum_bellow_flange_0          = new TGeoVolume("vacuum_bellow_flange_0", vacuum_flange_hole, Vacuum);
+  vacuum_bellow_flange_0->SetLineColor(kGreen);
+
+  //VACUUM BELLOW SEGMENT 1
+  TGeoCtub* vacuum_bellow_s1  = new TGeoCtub("vacuum_bellow_s1", 0, bellow_rmin, short_segment/2, 0., 360.,
+                                     n01.X(), n01.Y(), n01.Z(), n12.X(), n12.Y(), n12.Z());
+  TGeoVolume* vacuum_bellow_1 = new TGeoVolume("vacuum_bellow_s1", vacuum_bellow_s1, Vacuum);
+  vacuum_bellow_1->SetLineColor(kGreen);
+
+  //VACUUM BELLOW SEGMENT 2
+  TGeoCtub* vacuum_bellow_s2  = new TGeoCtub("vacuum_bellow_s2", 0, bellow_rmin, long_segment/2, 0., 360.,
+                                     n21.X(), n21.Y(), n21.Z(), n23.X(), n23.Y(), n23.Z());
+  TGeoVolume* vacuum_bellow_2 = new TGeoVolume("vacuum_bellow_s2", vacuum_bellow_s2, Vacuum);
+  vacuum_bellow_2->SetLineColor(kGreen);
+
+  //VACUUM BELLOW SEGMENT 3
+  TGeoCtub* vacuum_bellow_s3  = new TGeoCtub("vacuum_bellow_s3", 0, bellow_rmin, middle_segment/2, 0., 360.,
+                                     n32.X(), n32.Y(), n32.Z(), n34.X(), n34.Y(), n34.Z());
+  TGeoVolume* vacuum_bellow_3 = new TGeoVolume("vacuum_bellow_s3", vacuum_bellow_s3, Vacuum);
+  vacuum_bellow_3->SetLineColor(kGreen);
+
+  //VACUUM BELLOW SEGMENT 4
+  TGeoCtub* vacuum_bellow_s4  = new TGeoCtub("vacuum_bellow_s4", 0, bellow_rmin, long_segment/2, 0., 360.,
+                                     n43.X(), n43.Y(), n43.Z(), n45.X(), n45.Y(), n45.Z());
+  TGeoVolume* vacuum_bellow_4 = new TGeoVolume("vacuum_bellow_s4", vacuum_bellow_s4, Vacuum);
+  vacuum_bellow_4->SetLineColor(kGreen);
+
+  //VACUUM BELLOW SEGMENT 5
+  TGeoCtub* vacuum_bellow_s5  = new TGeoCtub("vacuum_bellow_s5", 0, bellow_rmin, short_segment/2, 0., 360.,
+                                     n54.X(), n54.Y(), n54.Z(), n56.X(), n56.Y(), n56.Z());
+  TGeoVolume* vacuum_bellow_5 = new TGeoVolume("vacuum_bellow_s5", vacuum_bellow_s5, Vacuum);
+  vacuum_bellow_5->SetLineColor(kGreen);
+
+  //VACUUM DOWNSTREAM FLANGE
+  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);
+
+  //------------------------------PSD TUBE-------------------------------------------------------------------------
+  TGeoTube* psd_tube_s = new TGeoTube("psd_tube_s", beam_pipe_rmin, beam_pipe_rmax, beam_pipe_length/2);
+  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, beam_pipe_rmin, beam_pipe_length/2);
+  TGeoVolume* vacuum_psd_tube = new TGeoVolume("vacuum_psd_tube", vacuum_psd_tube_s, Vacuum);
+  vacuum_psd_tube->SetLineColor(kGreen);
+
+
+  //----------------Bellow with flanges-----------------------------
+  bellow_ass->AddNode(bellow_flange_0, 1, ctr_b0);
+  bellow_ass->AddNode(bellow_1, 1, ctr_b1);
+  bellow_ass->AddNode(bellow_2, 1, ctr_b2);
+  bellow_ass->AddNode(bellow_3, 1, ctr_b3);
+  bellow_ass->AddNode(bellow_4, 1, ctr_b4);
+  bellow_ass->AddNode(bellow_5, 1, ctr_b5);
+  bellow_ass->AddNode(bellow_flange_1, 1, ctr_b6);
+ 
+  //----------------Vacuum in bellow and flanges-----------------------------
+  vacuum_bellow_ass->AddNode(vacuum_bellow_flange_0, 1, ctr_b0);
+  vacuum_bellow_ass->AddNode(vacuum_bellow_1, 1, ctr_b1);
+  vacuum_bellow_ass->AddNode(vacuum_bellow_2, 1, ctr_b2);
+  vacuum_bellow_ass->AddNode(vacuum_bellow_3, 1, ctr_b3);
+  vacuum_bellow_ass->AddNode(vacuum_bellow_4, 1, ctr_b4);
+  vacuum_bellow_ass->AddNode(vacuum_bellow_5, 1, ctr_b5);
+  vacuum_bellow_ass->AddNode(vacuum_bellow_flange_1, 1, ctr_b6);
+
+  //-------------------CONICAL section--------------------------------------------------
+  conical_beam_pipe->AddNode(rich_much_downstream_flange, 1, new TGeoTranslation(0, 0, 1570 * mm));
+  conical_beam_pipe->AddNode(conus_volume, 1, new TGeoTranslation(0, 0, 0));
+  conical_beam_pipe->AddNode(tube_connection_volume, 1, ctr_sts_conus_connection);
+  // conical_beam_pipe->AddNode(tube_connection_sts_volume, 1, ctr_sts_tube); //inset in STS box - omitted; if used, needs some fine tunning
+
+  //-------------------VACUUM in CONICAL section--------------------------------------------------
+  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(vacuum_conical_beam_pipe, 1, origin_combi_cone);
+  full_assembly->AddNode(bellow_ass, 1, origin_combi);
+  full_assembly->AddNode(vacuum_bellow_ass, 1, origin_combi);
+  full_assembly->AddNode(psd_tube, 1, ctr_psd_tube);
+  full_assembly->AddNode(vacuum_psd_tube, 1, ctr_psd_tube);
+
+
+
+  //beampipe->AddNode(full_assembly,1, new TGeoTranslation(0, 0, 0*mm));
+  // --- close the geometry
+  geom->CloseGeometry();
+
+  //--- draw the ROOT box
+  geom->SetVisLevel(4);
+  full_assembly->Draw();
+  if (gPad && !gROOT->IsBatch()) gPad->GetViewer3D();
+
+  // ---------------   Finish   -----------------------------------------------
+  TString geo_bin_filename = "pipe_";
+  TString geo_name         = geo_bin_filename + geoTag;
+  geo_bin_filename         = geo_bin_filename + geoTag + ".geo.root";
+
+  TFile* binfile = TFile::Open(geo_bin_filename, "RECREATE");
+
+  geom->GetTopVolume()->Write(geo_name);  // outputting on the top volume
+  TGeoTranslation* trans = new TGeoTranslation(0.0, 0.0, 79.0003); // pushing the beampipe to touch the STS
+  trans->Write("trans");
+  cout << endl;
+  cout << "Geometry " << geom->GetTopVolume()->GetName() << " written to " << geo_bin_filename << endl;
+  binfile->Close();
+  //--- close the geometry
+  geom->CloseGeometry();
+  // gGeoManager->CheckOverlaps(0.000000001);
+  // gGeoManager->GetListOfOverlaps()->Print();
+}
+
+
diff --git a/pipe/pipe_v24e.geo.info b/pipe/pipe_v24e.geo.info
new file mode 100644
index 00000000..3c2f8fa7
--- /dev/null
+++ b/pipe/pipe_v24e.geo.info
@@ -0,0 +1,7 @@
+Created by macro: macro/pipe/fair/create_bpipe_geometry_gen.C
+Parameters: geoTag=v24e, beam_deflection_angle=1.89
+
+The downstream section has maximum deflection at the bellows.
+
+May be used for low beam energies from 5 AGeV gold-gold collisions
+at 100% MF and below.
diff --git a/pipe/pipe_v24e.geo.root b/pipe/pipe_v24e.geo.root
new file mode 100644
index 0000000000000000000000000000000000000000..fcf176e64c9805f07f20636aedc885e53fd0f12d
GIT binary patch
literal 10910
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

literal 0
HcmV?d00001

diff --git a/pipe/pipe_v24f.geo.info b/pipe/pipe_v24f.geo.info
new file mode 100644
index 00000000..6d8feda3
--- /dev/null
+++ b/pipe/pipe_v24f.geo.info
@@ -0,0 +1,4 @@
+Created by macro: macro/pipe/fair/create_bpipe_geometry_gen.C
+Parameters: geoTag=v24f, beam_deflection_angle=0
+
+Configuration for 0% MF
diff --git a/pipe/pipe_v24f.geo.root b/pipe/pipe_v24f.geo.root
new file mode 100644
index 0000000000000000000000000000000000000000..681edbb3875f8a752fdcdb49c29c2b2d8b78be19
GIT binary patch
literal 10899
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
bRrvo!_1{?Or^oVtrTXdJP$zk?B?JBk{au*o

literal 0
HcmV?d00001

diff --git a/pipe/pipe_v24h.geo.info b/pipe/pipe_v24h.geo.info
new file mode 100644
index 00000000..6f1e64e4
--- /dev/null
+++ b/pipe/pipe_v24h.geo.info
@@ -0,0 +1,4 @@
+Created by macro: macro/pipe/fair/create_bpipe_geometry_gen.C
+Parameters: geoTag=v24h, beam_deflection_angle=0.98
+
+Configuration for gold ions with T=11 AGeV, (P=12 AGeV/c) and 100% MF
diff --git a/pipe/pipe_v24h.geo.root b/pipe/pipe_v24h.geo.root
new file mode 100644
index 0000000000000000000000000000000000000000..bffc1deb6c18fd3872a50dc0e02111a03048d414
GIT binary patch
literal 10915
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

literal 0
HcmV?d00001

diff --git a/pipe/pipe_v24i.geo.info b/pipe/pipe_v24i.geo.info
new file mode 100644
index 00000000..5c9b96e4
--- /dev/null
+++ b/pipe/pipe_v24i.geo.info
@@ -0,0 +1,4 @@
+Created by macro: macro/pipe/fair/create_bpipe_geometry_gen.C
+Parameters: geoTag=v24i, beam_deflection_angle=1.05
+
+Configuration for gold ions with T=10 AGeV, (P=11 AGeV/c) and 100% MF
diff --git a/pipe/pipe_v24i.geo.root b/pipe/pipe_v24i.geo.root
new file mode 100644
index 0000000000000000000000000000000000000000..ec5eef1e9a54f5b1116450426a530988059d24b5
GIT binary patch
literal 10899
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

literal 0
HcmV?d00001

-- 
GitLab