Dear experts
I am simulating the vertical incidence of an alpha particle with an energy of 5.486 MeV onto a silicon microstrip detector. Here, I have utilized the electric field and weight potential from TCAD, as well as the [TransientPropagation] module and [PulseTransfer] module. Regarding the pulses generated here, I have the following questions:
- In the “modules.root” file, for each event under the “PulseTransfer” tree, what specific moment does the zero point of the induced current waveform refer to? The moment when ionization begins or the moment when charge carriers start to drift
- In the getPulse() functions of PixelCharge and PixelHit, what is the unit of the detected charge obtained? e or C
- The induced current waveform of each event can be obtained from the modules.root file. However, the current waveform of each event is affected by ionization fluctuations. If I want to use the induced current waveforms of multiple events to superimpose them together to reduce the influence of ionization fluctuations, how should I do? And for each event, should I use the getPulse() function to obtain the waveform?
waveform of single event:
Particle incidence:(The figure shows a single-sided silicon microstrip detector. The green part represents the Al strip, the red part represents the oxide layer, and beneath the oxide layer is a p+ implant of the same shape as the Al strip.)
my code is here:
[AllPix]
log_level = "INFO"
log_format = "DEFAULT"
number_of_events = 100
detectors_file = "ssd_3d_det.conf"
multithreading = true
workers = 15
buffer_per_worker = 4
output_directory = "./output"
root_file = "module_straightalpha.root"
[GeometryBuilderGeant4]
world_material = "vacuum"
[DepositionGeant4]
physics_list = "QGSP_BIC_HP"
particle_type = "alpha"
source_energy = 5.5MeV
source_position = 0um 0um 50um
source_type = "beam"
beam_direction = 0 0 -1
number_of_particles = 1
record_all_tracks = true
# out_plots = false
[WeightingPotentialReader]
model = "mesh"
file_name = "/home/wxj/allpix-squared/wxj_project/ssd_3d/mesh_convert/ssd_3d_wp.init"
field_mapping = PIXEL_FULL
ignore_field_dimensions = true
field_scale = 1 1
# out_plots = false
[DopingProfileReader]
model = "mesh"
file_name = "/home/wxj/allpix-squared/wxj_project/ssd_3d/mesh_convert/ssd_3d_doping_DopingConcentration.init"
field_mapping = PIXEL_FULL
doping_depth = 300um
field_scale = 1 1
# out_plots = false
[ElectricFieldReader]
model = "mesh"
file_name ="/home/wxj/allpix-squared/wxj_project/ssd_3d/mesh_convert/ssd_3d_100V_ElectricField.apf"
field_mapping = PIXEL_FULL
field_scale = 1 1
[TransientPropagation]
temperature = 293.15K
charge_per_step = 1000
max_charge_groups = 100
# timestep = 0.5ps
# timestep = 0.1ns
timestep_min = 0.5ps
timestep_max = 10ps
timestep_start = 0.5ps
integration_time = 40ns
mobility_model = "masetti_canali"
recombination_model = "srh_auger"
multiplication_model = "okuto"
[PulseTransfer]
collect_from_implant = true
max_depth_distance = 3um
output_pulsegraphs = true
[DefaultDigitizer]
electronics_noise = 0
gain = 1.0
gain_smearing = 0
saturation = true
threshold = 20e
threshold_smearing = 0
qdc_resolution = 0
tdc_resolution = 0
[DetectorHistogrammer]
name = "ssd_3d"
out_plots = true
[ROOTObjectWriter]
file_name = "ssd_data_alpha"
# [VisualizationGeant4]
# mode = "gui"
# view_style = "surface"