18/03/16
1
Allpix > Athena Student Instrumentation Weekly Update March 18th - - PowerPoint PPT Presentation
18/03/16 Meng, Ben Nachman, Veronica Wallangen Mathieu Benoit, Philippe Grenier, Lingxin Allpix > Athena Student Instrumentation Weekly Update March 18th Rebecca Carney 1 Overview RMD Carney 18/03/16 Allpix radiation damage
18/03/16
1
RMD Carney 18/03/16
2
ATLAS Reconstruction chain Digitization: step-by-step Digitization: radiation damage considerations PixelDigitization in Athena Next steps
RMD Carney 18/03/16
3
Generation HepMC Simulation G4 Hits Digitization G4 Digits Reconstruction Create AOD ESD AOD Analysis Real Data Atlfast
Event generation G4 MonteCarlo Digitization Track reconstruction
RMD Carney 18/03/16
4
Ionising interactions liberate free charge carriers in the depleted bulk of the material. The bias across the device creates an electric field which the charge carriers move within, holes in one direction, electrons in the
This movement within the bulk induces a current on the collecting electrodes. This current continues until the free charge carriers recombine at their respective electrodes. Before the digitizer ‘digitizes’ it must create an analog signal in the detector based on the particle type, energy, and path length within the detector volume.
RMD Carney 18/03/16
5
The basic setup is the same for both the current and new charge() functions: energy deposited over the entire path length of the particle’s trajectory is divided up into equal segments.
RMD Carney 18/03/16
6
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + -
For each step along the path, segment the energy deposited into a finite number of chunks (~50 per step by default).
RMD Carney 18/03/16
7
+
The charges are diffused parallel to the electrode (i.e. in x and y) and in one of those directions (assuming a given orientation) the charges will also get a contribution from the Lorentz force.
RMD Carney 18/03/16
8
+
If no charge is trapped the induced signal on the electrode integrated in time is equal to the total charge recombining at the electrode: so the original digitizer just drifts the charge parallel to the electrode and establishes the pixel where that charge would be collected, then passes it to the digitizing portion of the code.
RMD Carney 18/03/16
9
RMD Carney 18/03/16
10
carrier: the time-to-electrode is looked up (LUT).
that the charge will be trapped and is dependent on fluence.
the charge carrier is checked in a LUT.
chargedDiodes collection.
provided from an LUT.
RMD Carney 18/03/16
11
anything to do with the weighting field, so if you want to know them at a particular point you must go through the entire process using Gauss’s law, etc.
how the charge’s motion couples to a specific electrode to induce a signal.
shape (and they are still only proportional not identical)![2]
So, that’s what this picture is! It’s the weighting field for a pixel. It’s interesting because it shows that the majority of contribution to the signal is localized directly under the pixel.
Weighting potential: 2 ∞-planar electrodes Weighting potential: ∞ strip Weighting potential: A single pixel
RMD Carney 18/03/16
12
carrier: the time-to-electrode is looked up (LUT).
that the charge will be trapped and is dependent on fluence.
the charge carrier is checked in a LUT.
chargedDiodes collection.
provided from an LUT.
RMD Carney 18/03/16
13
carrier: the time-to-electrode is looked up (LUT).
that the charge will be trapped and is dependent on fluence.
the charge carrier is checked in a LUT.
chargedDiodes collection.
provided from an LUT.
RMD Carney 18/03/16
14
PixelDigitization PixelDigitizationTool::processAllSubEvents() (PDT)::digitizeNonHits() (PDT)::digitizeAllHits() (PDT)::createAndStoreRDO() (PDT)::createRDO() (PDT)::digitizeElement() SurfaceChargeTools::process() <Technology>::charge() (PDT)::applyProcessorTools()
In PDT::initialize(), all of the tools and services are linked and added by ‘StoreTool()’ and ‘retrieve()’ and then an ‘add’ function that calls the process() method in each tool. Only SurfaceChargeTools does not get added at this stage. The <Technology> is the specific element type, e.g. PixelECChargeTool, Ibl3DChargeTool, etc. Each of these classes contain a ‘charge()’ method that adds diffusion, propagates the charge in steps, and adds sensor efficiency maps (if necessary). applyProcessorTools() calls the various services that add to the signal (noise, ‘smearing’), and also pass the analog signal through a discriminator. The PDT::createRDO method is where mask/sub-threshold/disabled-element/corrupted flags are applied and where ToT is calculated via a call to CalibSvc.
RMD Carney 29/02/16
15
applyProcessorTools() calls an instance of each derived class of ISiChargedDiodesProcessorTool interface: all of which are the discriminator/noise/crosstalk tools! A service serves many clients, a tool only one. A service typically has one instance but a tool may have many. It is appropriate that we use a tool for this work.
RMD Carney 18/03/16
16
The Allpix team have produced a standalone test bench for, among other things, a digitizer that models the effects of radiation damage in Silicon: notably by considering the effects of trapping and partial signal loss that comes with it, as well as charge sharing. I’ve been tasked with migrating the relevant parts of that digitizer into Athena.
class IblPlanarRadDamageTool : SubChargesTool
Creates the analog signal using overloaded charge() method from base class. Format is almost identical to equivalent unirradiated uniform & Bichsel versions but includes some checks for trapping.
class RadDamageUtil : AthAlgTool
A collection of function used to calculate the radiation damage effects and process trapping/induced current. Like Bichsel, a separate tool is needed as these calculations are independent of sensor geometry and conditions - parameters can be fed in as arguments (e.g. pointer to Ramo weighting map and sensor bias). Two classes added to: InnerDetector/InDetDigitization/ PixelDigitization/ This first draft only includes a class for the IBL planar modules but it seems feasible (given that the classes are near identical) that I can produce the equivalent for the Pixel Barrel/EC as well. The IBL 3D models in Allpix are not yet ready but are a tiny fraction of the detector anyway.
RMD Carney 18/03/16
17
Have a runnable ‘empty shell’ tool to make sure the structure makes sense Adapt the code for athena Include conditionsDB values and fluency maps. Validate functionality through full chain. Check tags work.
https://gitlab.cern.ch/radiationDamageDigitization/radDamage_athena_20.21
RMD Carney 18/03/16
18
Calculations depend on fluence: this will change both over the course of the simulation. We will also need to take into consideration any LS or periods of no cooling as annealing will change the effective fluence. Currently (from what I can see in the code) the mobility of the charge carriers does not feature in the ChargeTools. The rad damage calculations need to access certain data about charge carriers (temperature of module to calculate the Lorentz angle and also the probability of being trapped). There is a service (via Simone) at InnerDetector/InDetConditions/SiLorentzAngleSvc/ src/SiLorentzAngleSvc.cxx - perhaps it would be worth adding a separate function for holes and electrons?
RMD Carney 18/03/16
19
Usability: simple flag in python reco_tf (et. al.), something like: - - withRadDamage , so all fluency and conditions need to be passed to the class in the background! John Chapman set this tag up this morning! Need to put LUT (In the form of TH1/TH2/TH3 i.e. c-arrays) in a common area. Zach suggests: http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/External/AtlasDataArea/cmt/ requirements End-to-end validation: