Source code for geometry.v1.DeadMaterials


__all__ = ["getCrackVolumesCfg", "getDMVolumesCfg"]

from GaugiKernel.constants import m,cm,mm
from .PhysicalVolume import PhysicalVolume, Plates, ProductionCuts


[docs] def getCrackVolumesCfg(left_side=False): sign = -1 if left_side else 1 side_name = 'B' if left_side else 'A' endcap_start = 3704.*mm gap_between_extended_barrel = 68.*cm crack_material_size = gap_between_extended_barrel crack_start = endcap_start - gap_between_extended_barrel crack_em_start = 3400*mm + 35*mm/2 nlayers=2; absorber=4.3*cm; gap=10.7*cm; zsize=nlayers*(absorber+gap) crack_em_pv = PhysicalVolume( Name = "DM::Crack::EM::"+side_name, Plates = Plates.Vertical, # Logical type AbsorberMaterial = "G4_Al", # absorber GapMaterial = "liquidArgon", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = 900*mm, # radio min, RMax = 2232*mm, # radio max ZSize = zsize, X=0,Y=0,Z=sign * (crack_em_start + zsize/2), Visualization = True, Color = 'gray' ) nlayers=1; absorber=200*cm; gap=1*mm; rsize=nlayers*(absorber+gap) crack_tile_pv = PhysicalVolume( Name = "DM::Crack::TILE::"+side_name, Plates = Plates.Horizontal, # Logical type AbsorberMaterial = "G4_Al", # absorber GapMaterial = "Vacuum", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = 228.3*cm, #crack_em_pv.RMax, #228.3*cm, # radio min, RMax = 228.3*cm + rsize, # radio max ZSize = crack_material_size, X=0,Y=0,Z=sign * (crack_start + crack_material_size/2), Visualization = True, Color = 'gray' ) crack_em_pv.Cuts = ProductionCuts(ElectronCut = 1, PositronCut = 1, GammaCut = 1) crack_tile_pv.Cuts = ProductionCuts(ElectronCut = 1, PositronCut = 1, GammaCut = 1) return [crack_em_pv, crack_tile_pv]
[docs] def getDMVolumesCfg(): ecal_barrel_start = 0*m ecal_barrel_end = 3.4*m ecal_barrel_z = (ecal_barrel_start + ecal_barrel_end) * 2 endcap_start = 3704.*mm gap_between_extended_barrel = 68.*cm tile_barrel_start = 0*m tile_barrel_end = (endcap_start - gap_between_extended_barrel) tile_barrel_z = (tile_barrel_start + tile_barrel_end) * 2 psb_rmin = 1460*mm nlayers=2; absorber=2*cm; gap=2*cm; rsize=nlayers*(absorber+gap) dm_pv = PhysicalVolume( Name = "DM::PS::Boundary", Plates = Plates.Horizontal, # Logical type AbsorberMaterial = "G4_Al", # absorber GapMaterial = "Vacuum", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = psb_rmin - rsize, #crack_em_pv.RMax, #228.3*cm, # radio min, RMax = psb_rmin, # radio max ZSize = ecal_barrel_z, X=0,Y=0,Z=0, Visualization = True, Color = 'gray' ) nlayers=1; absorber=10*cm; gap=3*mm; rsize=nlayers*(absorber+gap) ecal_boundary_pv = PhysicalVolume( Name = "DM::LAr::Boundary", Plates = Plates.Horizontal, # Logical type AbsorberMaterial = "G4_Al", # absorber GapMaterial = "Vacuum", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = 198*cm, #crack_em_pv.RMax, #228.3*cm, # radio min, RMax = 198*cm + rsize, # radio max ZSize = ecal_barrel_z, X=0,Y=0,Z=0, Visualization = True, Color = 'gray' ) nlayers=1; absorber=10*cm; gap=3*mm; rsize=nlayers*(absorber+gap) tilecal_boundary_pv = PhysicalVolume( Name = "DM::TILE::Boundary", Plates = Plates.Horizontal, # Logical type AbsorberMaterial = "G4_Al", # absorber GapMaterial = "Vacuum", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = 218*cm, #crack_em_pv.RMax, #228.3*cm, # radio min, RMax = 218*cm + rsize, # radio max ZSize = tile_barrel_z, X=0,Y=0,Z=0, Visualization = True, Color = 'gray' ) dm_pv.Cuts = ProductionCuts(ElectronCut = 1, PositronCut = 1, GammaCut = 1) ecal_boundary_pv.Cuts = ProductionCuts(ElectronCut = 1, PositronCut = 1, GammaCut = 1) tilecal_boundary_pv.Cuts = ProductionCuts(ElectronCut = 1, PositronCut = 1, GammaCut = 1) return [dm_pv, ecal_boundary_pv, tilecal_boundary_pv]