Source code for geometry.v1.Tracking


__all__ = ['getPixelBarrelCfg']

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




[docs] def getPixelBarrelCfg(): nlayers = 1 absorber=0.150*mm gap=0.130*mm rsize=nlayers*(absorber+gap) pixel_barrel_end = 2.5*m pixel_barrel_size = pixel_barrel_end * 2 pixel_barrel_layers = 3 pixel_barrel_rmin = 10*cm pixel_barrel_gap_between_layers = 15*cm pixel_barrel_rmax = pixel_barrel_rmin + pixel_barrel_layers * (nlayers*(absorber+gap)) + (pixel_barrel_layers-1)*pixel_barrel_gap_between_layers pixel_endcap_layers = 3 samplings=[] for idx in range(pixel_barrel_layers): rmin = pixel_barrel_rmin if idx==0 else (samplings[-1].volume().RMax + pixel_barrel_gap_between_layers) pv = PhysicalVolume( Name = "Tracking::Pixel" + str(idx), Plates = Plates.Horizontal, # Logical type AbsorberMaterial = "G4_Si", # absorber GapMaterial = "Vacuum", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = rmin, # radio min, RMax = rmin + rsize, # radio max ZSize = pixel_barrel_size, X=0,Y=0,Z=0, Visualization = True, Color = 'gray' ) pv.Cuts = ProductionCuts(ElectronCut = 0.05, PositronCut = 0.05, GammaCut = 0.05) samplings.append(pv) return samplings
def getPixelEndCapCfg( left_side=False ): sign = -1 if left_side else 1 side_name = 'B' if left_side else 'A' nlayers = 1 absorber=0.150*mm gap=0.130*mm rsize=nlayers*(absorber+gap) pixel_barrel_end = 2.5*m pixel_barrel_size = pixel_barrel_end * 2 pixel_barrel_layers = 3 pixel_barrel_rmin = 10*cm pixel_barrel_gap_between_layers = 15*cm pixel_barrel_rmax = pixel_barrel_rmin + pixel_barrel_layers * (nlayers*(absorber+gap)) + (pixel_barrel_layers-1)*pixel_barrel_gap_between_layers pixel_endcap_layers = 3 samplings = [] z= pixel_barrel_end for pixel_idx in range(pixel_endcap_layers): nlayers=1; zsize=nlayers*(absorber+gap) pv = PhysicalVolume( Name = "Tracking::Pixel" + str(idx) + "::" + side_name, Plates = Plates.Vertical, # Logical type AbsorberMaterial = "G4_Si", # absorber GapMaterial = "Vacuum", # gap NofLayers = nlayers, # layers AbsorberThickness = absorber, # abso GapThickness = gap, # gap RMin = pixel_barrel_rmin, # radio min, RMax = pixel_barrel_rmax, # radio max ZSize = zsize, X=0,Y=0,Z=sign * (z + pixel_barrel_gap_between_layers + zsize/2) , Visualization = True, Color = 'gray' ) z = z + pixel_barrel_gap_between_layers + zsize pv.Cuts = ProductionCuts(ElectronCut = 0.5, PositronCut = 0.5, GammaCut = 0.5) samplings.append(pv) return samplings