Vertical incidence pixel collects charge

Dear Allpix2 developers,

I simulate a silicon micrestrip detectors. When I set the particle incidence direction to vertical, most of the hits are at the pixel corresponding to the vertical position, and there are one or two event where there is a signal at several pixels next to each other, why is this? Should I artificially ignore these strange events when processing them?

All the best,
Bail

Dear @Bail ,

this is the expected behaviour. There’s (at least) two reasons:
a) The charge carriers drifting through the detector undergo diffusion. This leads to an increase of the area at the surface, at which charge carriers are collected. If by coincidence this area covers more than one pixel, there’s charge sharing.
b) If you are using charged primary particles, these particles can produce delta electrons, which are secondary particles that can move through the detector and also perform ionisation. As they don’t necessarily need to move parallel to the initial beam, this will lead to several adjacent pixels responding as well.

Adjacent pixels with signals in the same event are called a cluster.

Should I artificially ignore these strange events when processing them?

This depends on what you are doing with this data. The behaviour is completely physical, so in most cases there’s no need to ignore these events.

Cheers
Paul

Dear Paul,

Thank you very much for your answer. I want to use this data to compare with the charge distribution of pixel collection calculated by the numerical method. Is the trackID used to determine if it is the same event? How can I get trackID?
You mentioned charge sharing, I set the pixel pitch to 100 microns, can the charge carriers spread that long? I was wondering if it is necessary to add a capacitive coupling network to simulate the charge sharing?

Cheers
Bail

Dear @Bail ,

we do not provide the track ID of the particle, but you can get a lot of information on the particle or it’s track, see the headers for MCParticle and MCTrack. All the public methods are available also from an externally usable library. You can e.g. use the ROOTObjectWriter module to store all data, and in another analysis program load the library and get information on the objects. Have a look at tools/root_analysis_macros, you will find examples there.

Is the trackID used to determine if it is the same event?

An event in Allpix Squared is defined as one separate loop over a simulation chain. Information of different events are never mixed in Allpix Squared, so I’m not sure what you are referring to. Are you maybe using the DepositionReader module? If you need more details, please provide us with your configuration, otherwise it’s difficult for us to properly answer your question.

You mentioned charge sharing, I set the pixel pitch to 100 microns, can the charge carriers spread that long?

100 microns is unlikely, if you are using a fully depleted sensor. Depending on your configuration, it might be that particles cross your detector close to the edge between two pixels, in this case a smaller diffusion width would suffice to enable charge sharing.

Best
Paul

Hi @Bail

just to add to what @pschutze said already:

We do, it is the memory address of the particle. Say you have a PixelHit you can find out which particles generated the hit (there can be multiple that contributed) by calling PixelHit::getMCParticles(). You can also do that for the adjacent pixels and compare the MCParticle objects you get.

To find out from which initial particle they descend, call MCParticle::getPrimary().

As long as you are not looking at multiple detectors and are trying to link particles between them, you can safely ignore the MCTrack objects.

/Simon

Thank you very much for your answer!

Dear @pschutze

You mentioned charge sharing

Does charge sharing need to be simulated by a CapacitiveTransfer module? How do I get it?

Cheers
Bail

Dear @Bail

what you are seeing (multiple pixel are struck) is the effect of charge sharing, which stems from the fact that charge carriers diffuse on their way to the readout electrode.

The CapacitiveTransfer is meant for situations where there is an additional capacitive coupling between neighboring pixels, for example because of AC coupling of a silicon sensor to a readout ASIC through a uniform glue layer between them.

/Simon