diff --git a/NPSimulation/Detectors/Epic/Epic.cc b/NPSimulation/Detectors/Epic/Epic.cc index d47dce43611716adc7f1a6cdbe0511e5c00ada4f..e28f66c2eee7d3432a1204c64fe51d1d96827c2e 100644 --- a/NPSimulation/Detectors/Epic/Epic.cc +++ b/NPSimulation/Detectors/Epic/Epic.cc @@ -187,12 +187,34 @@ G4AssemblyVolume* Epic::BuildEpic(){ G4Material* Al_material = MaterialManager::getInstance()->GetMaterialFromLibrary("Al"); G4Material* Cu_material = MaterialManager::getInstance()->GetMaterialFromLibrary("Cu"); G4Material* Ti_material = MaterialManager::getInstance()->GetMaterialFromLibrary("Ti"); + G4Material* Rogers_material = MaterialManager::getInstance()->GetMaterialFromLibrary("Rogers4003C"); + + + // --- PCB material (6 layers of Cu) + double posY_PCB = -85.0*mm; // @the 6-Cu layers + double PCB_width = 180.0*mm; + double PCB_length = 330.0*mm; + double PCB_Rogers_height = 1.6*mm; + double PCB_Cu_height = 6*35.*um; + G4Box* PCB_Rogers_solid = new G4Box("PCB_Rogers",0.5*PCB_width,0.5*PCB_Rogers_height,0.5*PCB_length); + G4Box* PCB_Cu_solid = new G4Box("PCB_Cu",0.5*PCB_width,0.5*PCB_Cu_height,0.5*PCB_length); + + G4LogicalVolume* PCB_Rogers_vol = new G4LogicalVolume(PCB_Rogers_solid, Rogers_material,"PCB_Rogers_logic",0,0,0); + G4LogicalVolume* PCB_Cu_vol = new G4LogicalVolume(PCB_Cu_solid, Cu_material,"PCB_Cu_logic",0,0,0); + + PCB_Rogers_vol->SetVisAttributes(m_VisRogers4003C); + Tv.setY(posY_PCB + 0.5*PCB_Cu_height + 0.5*PCB_Rogers_height); + m_EpicVolume->AddPlacedVolume(PCB_Rogers_vol, Tv, Rv); + + PCB_Cu_vol->SetVisAttributes(m_VisCu); + Tv.setY(posY_PCB); + m_EpicVolume->AddPlacedVolume(PCB_Cu_vol, Tv, Rv); // --- Flange in Aluminium - double flange_full_width = 180.*mm; - double flange_full_height = 5.*mm; - double flange_full_length = 330.*mm; + double flange_full_width = PCB_width; + double flange_full_length = PCB_length; + double flange_full_height = 5.*mm; double posY_flange = posY_PCB - 0.5*PCB_Cu_height - 0.5*flange_full_height ; double flange_open_width = 150.0*mm; double flange_open_height = 5.1*mm; double flange_open1_length = 42.0*mm; double posZ_open1 = -73.5*mm; @@ -210,7 +232,7 @@ G4AssemblyVolume* Epic::BuildEpic(){ G4LogicalVolume* flange_vol = new G4LogicalVolume(flange_final, Al_material, "flange_logic", 0,0,0); flange_vol->SetVisAttributes(m_VisAl); - Tv.setY(0); + Tv.setY(posY_flange); m_EpicVolume->AddPlacedVolume(flange_vol, Tv, Rv); @@ -237,27 +259,6 @@ G4AssemblyVolume* Epic::BuildEpic(){ m_EpicVolume->AddPlacedVolume(gas_volume, Tv, Rv); - // Bottom PCB plate // - double PCB_width = 18.*cm; - double PCB_length = 33.*cm; - double PCB_Rogers_height = 1.6*mm; - double PCB_Cu_height = 6*35.*um; - double PCB_PosY = -8.5*cm; - // Cu layers - G4Box* PCB_Cu_solid = new G4Box("PCB_Cu_solid",0.5*PCB_width,0.5*PCB_Cu_height,0.5*PCB_length); - G4Material* Cu_material = MaterialManager::getInstance()->GetMaterialFromLibrary("Cu"); - G4LogicalVolume* PCB_Cu_vol = new G4LogicalVolume(PCB_Cu_solid, Cu_material,"PCB_Cu_logic",0,0,0); - PCB_Cu_vol->SetVisAttributes(m_VisCu); - Tv.setY(PCB_PosY); - m_EpicVolume->AddPlacedVolume(PCB_Cu_vol, Tv, Rv); - - // Rogers 4003C layers - G4Box* PCB_Rogers_solid = new G4Box("PCB_Rogers_solid",0.5*PCB_width,0.5*PCB_Rogers_height,0.5*PCB_length); - G4Material* Rogers_material = MaterialManager::getInstance()->GetMaterialFromLibrary("Rogers4003C"); - G4LogicalVolume* PCB_Rogers_vol = new G4LogicalVolume(PCB_Rogers_solid, Rogers_material,"PCB_Rogers_logic",0,0,0); - PCB_Rogers_vol->SetVisAttributes(m_VisRogers4003C); - Tv.setY(PCB_PosY + 0.5*PCB_Cu_height + 0.5*PCB_Rogers_height); - m_EpicVolume->AddPlacedVolume(PCB_Rogers_vol, Tv, Rv); // Al frame // double frame1_width = 18.*cm;