Hi all
I’ve been playing around with weighting potential and charge diffusion for a bit and there is one (probably very naive) thing that is puzzling me.
When using TransientPropagation module with PulseTransfer one, i get from the (INFO) log in the terminal that the total deposited charge was 281048 (from an electron source of 511 kev positioned inside the detector). Dividing this by two and multiplying by 3.6eV we get 505 keV which is reasonable due to how the deposited charge is computed in allpix. Then the total induced charge on all pixels from the allpix terminal log is -136083e. Converting it into energy we obtain 490 keV, which does not 100% reflect the initial 511 keV but i guess that it is fine due to maybe some losses on the induced charge due to filtering or pulse shaping (or something similar, i’m still reading more about it).
But then when i read the abs total deposited charge from the PixelCharge module (from a python script using pix_hit.getPixelCharge().getAbsoluteCharge() and summing over all pixels) i get something that is consistently lower than the total induced charge, in this case i get 132938 that gives 478.6 keV.
In my settings there is no recombination or trapping model simulated and the integration time should be high enough for the electrons to reach the electrodes. I simulated a linear electric field from allpix without importing it (cause i noticed that my field is basically linear), and Transient propagation module raises an error saying that a linear field may lead to unphysical results.
If you have any idea on what this could be let me know. If needed i can provide more about the configuration.
[Allpix]
log_level = "INFO"
log_format = "DEFAULT"
detectors_file = "detector.conf"
number_of_events = 2
[GeometryBuilderGeant4]
world_material = "vacuum"
[DepositionGeant4]
record_all_tracks= true
physics_list = FTFP_BERT_PEN
source_type = "macro"
file_name = "Source_test.mac"
number_of_particles = 1
max_step_length = 0.5um
range_cut = 10.0um
[ElectricFieldReader]
model = "linear"
bias_voltage = -200V
[WeightingPotentialReader]
name = "detector1" "detector2" "detector3"
model = "mesh"
file_name = "Weighting_potential_23um_electrodes_1umSampling.init"
field_mapping = "PIXEL_FULL"
output_plots = 1
### now we propagate the charges generating the object called PropagatedCharges ###
#[ProjectionPropagation] #electrons or holes to sensor surface and apply randomized simplified diffusion,
#only works with linear E field
[ignore]
temperature = 293K
charge_per_step = 10
integration_time = 20ns
diffuse_deposit = true
#[GenericPropagation]
[ignore]
temperature = 293K
charge_per_step = 20
integration_time = 100ns
propagate_electrons = true
propagate_holes = true
output_plots = 1
output_linegraphs = true
output_plot_align_pixels = true
#output_animations = true
[TransientPropagation]
charge_per_step = 10 # Number of charges propagated per step (increase if needed)
distance = 1
timestep = 0.1 # Adjust for precision
integration_time = 80ns
output_plots = 1
output_linegraphs = true
output_plot_align_pixels = true
### Now we collect the propagated charges creating the object PixelCharge ###
#[SimpleTransfer]
[ignore]
max_depth_distance = 10um
output_plots = 1
#[CapacitiveTransfer] #introduces crosscoupling in the collection of the charges
[ignore]
coupling_scan_file = 'ddd'
#[InducedTransfer] #requires a weighting potential and the propagation of both electron and charges
[ignore]
distance = 1
[PulseTransfer]
output_plots = 1
### now we start with the digitalization to generate PixelHit ###
[DefaultDigitizer] #For now not using [CSADigitizer] cause i do not know exactly what we want to simulate
threshold = 400e
threshold_smearing = 30
electronics_noise = 100 #standard deviation before amplification and thresholding
gain = 1.0
qdc_resolution = 0 # the actual charge is given in electrons
tdc_resolution = 0 # the simulation returns the actual time of arrival in ns
#[VisualizationGeant4]
[ignore]
mode = "gui"
accumulate = true
display_trajectories = true
draw_hits = true
[ROOTObjectWriter]
file_name = "electron_source.root"
include = "MCTrack" "MCParticle" "PixelCharge" "PixelHit"
[DetectorHistogrammer]
Bests
Luca