diff --git a/external/InstallGeometry.cmake b/external/InstallGeometry.cmake index 32532fbd2d3fb028f0cdfd86dd93322ebd38f291..5b5ce33d6b1be45c6044fa94a3b9fea17d0e4a8b 100644 --- a/external/InstallGeometry.cmake +++ b/external/InstallGeometry.cmake @@ -1,4 +1,4 @@ -set(GEOMETRY_VERSION bb048703d1e76dfbfe6c4dfbba2a5d2f0a6279a6) +set(GEOMETRY_VERSION 875439f929577d678b86bbc243b8f99a094fd31c) set(GEOMETRY_SRC_URL "https://git.cbm.gsi.de/CbmSoft/cbmroot_geometry.git") diff --git a/macro/mcbm/geometry/tof/Create_TOF_Geometry_v21c_mcbm.C b/macro/mcbm/geometry/tof/Create_TOF_Geometry_v21c_mcbm.C index e2cd02fd176e28a5768a7c01417e16edbaeaea36..308167f5cb1ef008a334e310b87928cf6e5c4814 100644 --- a/macro/mcbm/geometry/tof/Create_TOF_Geometry_v21c_mcbm.C +++ b/macro/mcbm/geometry/tof/Create_TOF_Geometry_v21c_mcbm.C @@ -1,3 +1,7 @@ +/* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt + SPDX-License-Identifier: GPL-3.0-only + Authors: David Emschermann [committer], Norbert Herrmann */ + /// /// \file Create_TOF_Geometry_v21a_mcbm.C /// \brief Generates TOF geometry in Root format. diff --git a/macro/mcbm/geometry/trd/Create_TRD_Geometry_v21a.C b/macro/mcbm/geometry/trd/Create_TRD_Geometry_v21a.C index c5dc857379cc9f3d76a545d9656a178d5979d097..c74c43d849531a8052662b99327d573b1a9170d9 100644 --- a/macro/mcbm/geometry/trd/Create_TRD_Geometry_v21a.C +++ b/macro/mcbm/geometry/trd/Create_TRD_Geometry_v21a.C @@ -1,6 +1,6 @@ /* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt SPDX-License-Identifier: GPL-3.0-only - Authors: Florian Uhlig [committer] */ + Authors: David Emschermann [committer], Alexandru Bercuci */ /// /// \file Create_TRD_Geometry_v21a.C @@ -783,9 +783,9 @@ void dump_digi_file() fprintf(ifile, "#define CBMTRDPADS_H\n"); fprintf(ifile, "\n"); fprintf(ifile, "Int_t fst1_sect_count = 3;\n"); - fprintf(ifile, "// array of pad geometries in the TRD (trd1mod[1-8])\n"); - fprintf(ifile, "// 8 modules // 3 sectors // 4 values \n"); - fprintf(ifile, "Float_t fst1_pad_type[8][3][4] = \n"); + fprintf(ifile, "// array of pad geometries in the TRD (trd1mod[1-%d])\n", NofModuleTypes); + fprintf(ifile, "// %d modules // 3 sectors // 4 values \n", NofModuleTypes); + fprintf(ifile, "Float_t fst1_pad_type[%d][3][4] = \n", NofModuleTypes); //fprintf(ifile,"Double_t fst1_pad_type[8][3][4] = \n"); fprintf(ifile, " \n"); @@ -2276,16 +2276,16 @@ TGeoVolume* create_trd2d_module_type(Int_t moduleType) new TGeoBBox(Form("%s_hc_bd", ppn), 1.0 + activeAreaX / 2., 0.9 + activeAreaY / 2., pp_hc_thickness / 2.); TGeoBBox* trd_ppHC_fc = new TGeoBBox(Form("%s_hc_fc", ppn), 2.4 / 2., 0.8 / 2., (1.e-4 + pp_hc_thickness) / 2.); //if(detTypeIdx==2) addFlatCableHoles(Form("%s_hc", ppn)); - TGeoCompositeShape* trd_ppHC = new TGeoCompositeShape(Form("%s_hc", ppn), sexpr.Data()); - TGeoVolume* vol_trd_ppHC = new TGeoVolume(Form("vol_%s_hc", ppn), trd_ppHC, honeycombVolMed); + //TGeoCompositeShape* trd_ppHC = new TGeoCompositeShape(Form("%s_hc", ppn), sexpr.Data()); + TGeoVolume* vol_trd_ppHC = new TGeoVolume(Form("vol_%s_hc", ppn), trd_ppHC_bd, honeycombVolMed); vol_trd_ppHC->SetLineColor(kOrange); // Pad Plane C fiber TGeoBBox* trd_ppC_bd = new TGeoBBox(Form("%s_c_bd", ppn), 1.0 + activeAreaX / 2., 0.9 + activeAreaY / 2., pp_c_thickness / 2.); TGeoBBox* trd_ppC_fc = new TGeoBBox(Form("%s_c_fc", ppn), 2.4 / 2., 0.8 / 2., (1.e-4 + pp_c_thickness) / 2.); //if(detTypeIdx==2) addFlatCableHoles(Form("%s_c", ppn)); - TGeoCompositeShape* trd_ppC = new TGeoCompositeShape(Form("%s_c", ppn), sexpr.Data()); - TGeoVolume* vol_trd_ppC = new TGeoVolume(Form("vol_%s_c", ppn), trd_ppC, carbonVolMed); + //TGeoCompositeShape* trd_ppC = new TGeoCompositeShape(Form("%s_c", ppn), sexpr.Data()); + TGeoVolume* vol_trd_ppC = new TGeoVolume(Form("vol_%s_c", ppn), trd_ppC_bd, carbonVolMed); vol_trd_ppC->SetLineColor(kGray); // Add up all components @@ -2405,23 +2405,23 @@ TGeoVolume* create_trd2d_module_type(Int_t moduleType) TGeoBBox* bp_hc_bd = new TGeoBBox("bp_hc_bd", activeAreaX / 2., activeAreaY / 2., bp_hc_thickness / 2.); TGeoBBox* bp_hc_fc = new TGeoBBox("bp_hc_fc", 2.4 / 2., 0.8 / 2., (1.e-4 + bp_hc_thickness) / 2.); //if(detTypeIdx==2) addFlatCableHoles("bp_hc"); - TGeoCompositeShape* bp_hc = new TGeoCompositeShape("bp_hc", sexpr.Data()); - TGeoVolume* vol_bp_hc = new TGeoVolume(".vol_bp_hc", bp_hc_bd, honeycombVolMed); + //TGeoCompositeShape* bp_hc = new TGeoCompositeShape("bp_hc", sexpr.Data()); + TGeoVolume* vol_bp_hc = new TGeoVolume(".vol_bp_hc", bp_hc_bd, honeycombVolMed); vol_bp_hc->SetLineColor(kOrange); // Screen fibre-glass support (PCB) TGeoBBox* bp_pcb_bd = new TGeoBBox("bp_pcb_bd", 0.5 + activeAreaX / 2., 0.5 + activeAreaY / 2., bp_pcb_thickness / 2.); TGeoBBox* bp_pcb_fc = new TGeoBBox("bp_pcb_fc", 2.4 / 2., 0.8 / 2., (1.e-3 + bp_pcb_thickness) / 2.); //if(detTypeIdx==2) addFlatCableHoles("bp_pcb"); - TGeoCompositeShape* bp_pcb = new TGeoCompositeShape("bp_pcb", sexpr.Data()); - TGeoVolume* vol_bp_pcb = new TGeoVolume("vol_bp_pcb", bp_pcb, padpcbVolMed); + //TGeoCompositeShape* bp_pcb = new TGeoCompositeShape("bp_pcb", sexpr.Data()); + TGeoVolume* vol_bp_pcb = new TGeoVolume("vol_bp_pcb", bp_pcb_bd, padpcbVolMed); vol_bp_pcb->SetLineColor(kGreen); // Pad Copper TGeoBBox* bp_cu_bd = new TGeoBBox("bp_cu_bd", 0.5 + activeAreaX / 2., 0.5 + activeAreaY / 2., bp_cu_thickness / 2.); TGeoBBox* bp_cu_fc = new TGeoBBox("bp_cu_fc", 2.4 / 2., 0.8 / 2., (1.e-3 + bp_cu_thickness) / 2.); //if(detTypeIdx==2) addFlatCableHoles("bp_cu"); - TGeoCompositeShape* bp_cu = new TGeoCompositeShape("bp_cu", sexpr.Data()); - TGeoVolume* vol_bp_cu = new TGeoVolume("vol_bp_cu", bp_cu, padcopperVolMed); + //TGeoCompositeShape* bp_cu = new TGeoCompositeShape("bp_cu", sexpr.Data()); + TGeoVolume* vol_bp_cu = new TGeoVolume("vol_bp_cu", bp_cu_bd, padcopperVolMed); vol_bp_cu->SetLineColor(kRed); TGeoBBox* bp_fx = new TGeoBBox("bp_fx", activeAreaX / 2., 0.5 / 2., bp_hc_thickness / 2.); @@ -2964,7 +2964,8 @@ void create_detector_layers(Int_t layerId) TGeoCombiTrans* module_placement = new TGeoCombiTrans(xPos, yPos, LayerPosition[0] - (3 - layerId) * LayerThickness / 2, module_rotation); // shift by half layer thickness - gGeoMan->GetVolume(layername)->AddNode(gModules[type - 1], 1, module_placement); + Int_t copy = copy_nr(1, 1, 0, PlaneId[layerId], 1); + gGeoMan->GetVolume(layername)->AddNode(gModules[type - 1], copy, module_placement); }