Presentation is loading. Please wait.

Presentation is loading. Please wait.

PixSim package to simulate pixel detectors digitization

Similar presentations


Presentation on theme: "PixSim package to simulate pixel detectors digitization"— Presentation transcript:

1 PixSim package to simulate pixel detectors digitization
By Nick Sinev (University of Oregon) 3/21/2008 SiD tracking and vertexing

2 SiD tracking and vertexing
Plan Package overview Essential parts Pixilated Sensor Pixel configuration Charge transport Electronics simulation Tables Speed Readiness status 3/21/2008 SiD tracking and vertexing

3 SiD tracking and vertexing
Package overview 3/21/2008 SiD tracking and vertexing

4 PixilatedSensor class
This class keeps references to all components needed to simulate charge generation, collection, results of digitization, geometrical information about sensor and it’s position. Main components: Reference to DetectorElement - parent PixelConfiguration CarrierPropagator TrackSegmentSimulation Lists of SimTrackerHit (input) and RawTrackerHit (output) Parameters of particular sensor implementation – orientation of rows, position of active layer and it’s thickness and so on. Functions: processSimHits() – main work engine. However it does not generate RawTrackerHits yet. It generates list of ChargeTrains Transformations between sensor and pixel coordinates 3/21/2008 SiD tracking and vertexing

5 PixelConfiguration class
Contains all information about pixel: Pixel dimensions Media Electric and magnetic field maps (in pixel’s coordinate system!) Lists of SensorRegions for collectors, reflectors and absorbers Strictly speaking, reflectors are redundant, as electric field maps defines charge movement, including reflection from potential barriers. However, because of finite steps in charge movement simulation and narrow reflecting barriers, it makes sense to have defined reflecting regions. Some flags helping speeding up charge propagation – indicating that magnetic field is uniform and electric field has same direction in any point inside pixel, for example. This speeds up calculation of correction for Lorentz angle Does not contain any action functions. Only setters and getters 3/21/2008 SiD tracking and vertexing

6 SiD tracking and vertexing
Field maps Field maps used in simulation use the same interface as FieldMap object in org.lcsim.geometry.FieldMap. In fact, I made extension of this class called NamedFieldMap, because there are many field maps used here, so to help keep track which is which, I added name string to each map. There are some specific implementations of NamedFieldMap for particular kind of fields: UniformField DepletionField TCADFieldMap SuperpositionFieldMap This one has the list of contributing fields and allows superimpose as many fields as one needs. 3/21/2008 SiD tracking and vertexing

7 Field Maps: TCAD field map
The most complex Field Map implementation is TCADFieldMap. This class allows reading standard DF-ICE format file containing TCAD generated mesh and electric field. The main problem in implementing TCAD field map was interpolation between points. In TCAD mesh vertexes are not positioned on regular rectangular greed, they have arbitrary positions, depending on how fast properties vary in the given region. The simplest, but not the best and not the fastest interpolation method for such grid is so-called Kriging method, which includes all mesh points in the calculation of the field value in particular location, with weights proportional to inverse distance (in some power, or any function falling with the distance. I like exponent, for example.) To fight slowness of Kriging, I use re-writing TCAD provided map into map file with regular and fine enough grid. Such file can be much larger than TCAD output, but interpolating on it’s data is fast. This function is performed by TCADFieldMap class. 3/21/2008 SiD tracking and vertexing

8 Example of TCAD map for Chronopixel sensor
Here is the example of electric field read from TCAD output for chronopixel sensor with pixel size 16x16 microns and EPI layer thickness 12 microns. To make this picture I called getField function times, and it took only about 10 millisecond to accomplish this. It was so fast because I have processed TCAD file in advance, and recorded field in the intermediate file with regular grid 3/21/2008 SiD tracking and vertexing

9 Energy loss simulation
I am not using energy loss from Geant simulation for 2 reasons: It may be not accurate enough for very thin layers (few microns). I want the ability to change active layer thickness without re-running Geant. I simulate charge deposition in the sensor active layer using Hans Bichsel code to calculate distribution of energy loss in single ionizing collision in Si. Such results are stored in the table SiSingleColElossTab (implemented as java class) and is used by SiliconEloss class to generate particle energy loss as it moves from collision to collision. Example of energy loss distribution for 1 micron thick silicon layer (x axis in eV), calculated by SiliconEloss class. 3/21/2008 SiD tracking and vertexing

10 Handling of δ-electrons
In general, I assume that all e-hole pairs generated by energy, transferred in one ionizing collision are generated in one single point, where such collision occurred. However, if single collision energy transfer exceeds preset limit (10 KeV by default) δ-electron generation is declared, and special handling is triggered. I am using the electron range in silicon as function of it’s energy, which I found on National Institute of Standards site. The data from NIS is tabulated and is used in ElectronRange class which interpolates between table points and returns range for given energy. I assume that δ-electron creates electron-hole pairs along it’s track, the length of the track is the range, the direction is random. All δ-electron energy, but last 10 KeV is spent on uniform electron-hole pairs creation along δ-electron track, while last 10 KeV are spent at the end point of track. This is simplification, of course. 3/21/2008 SiD tracking and vertexing

11 SiD tracking and vertexing
Charge transport Every single charge carrier, generated by particle in the sensor (electron or hole, if our detector collects holes) is transported in the pixel electric and magnetic field until it either collected or absorbed. This is when next charge carrier path point appear inside one of the collectors or absorbers. If it get into one of reflectors, it bounces back. This is done by CarrierPropagator class. This is very time consuming process, especially if the electric field inside pixel is weak or zero (in un-depleted regions, for example), when transport is due to diffusion only. Maximum distance jumped in one step can be set larger to speed up process, but it should be small enough to follow electric field change along path. For debugging purposes there is “trace” option which can be turned on, and which allows to visualize charge carrier movement inside pixel. Examples are shown on next page. 3/21/2008 SiD tracking and vertexing

12 Examples of charge carrier move
Chronopix, B=0 Chronopix, B=5T CCD, B=-5T Chronopix, B=-5T 3/21/2008 SiD tracking and vertexing

13 TrackSegmentSimulation
TrackSegmentSimulation class controls simulation of charge carrier generation and collection from piece of the charged particle track from entry to exit of active sensor layer. Not only amount of charge, collected by sensor pixels, but also time picture of the process is generated. Result is stored in the ChargeTrain object, which is binned distribution of the charge arriving to the indicated pixel within time bins. The number of bins and it’s width can be set. Default values are – 200 bins of 5 nsec width. TrackSegmentSimulation controls also δ-electrons simulation. It allows setting of the δ-electron threshold (minimum single collision energy loss to be declared δ-electron) and maximum δ-electron energy handled by Pixilated Sensor simulation (above this energy it is assumed that δ-electrons are recognized and handled by GEANT. 3/21/2008 SiD tracking and vertexing

14 TrackSegmentSimulation results
3/21/2008 SiD tracking and vertexing

15 TrackSegmentSimulation results-continue
3/21/2008 SiD tracking and vertexing

16 Electronics response simulation
After charge carriers are generated and collected, electronics simulation processes charge trains into digital signals (into RawTrackerHits as defined in org.lcsim). There is IPixelSensorElectronics interface, defining how any such simulation should communicate with other parts of package. However details of signal processing is very sensor specific. So, it is anticipated that any sensor option will have it’s own class handling such processing. Currently implemented class CCDElectronics can be used for classic CCDs (fine pixels, for example), or column parallel CCDs. For “short column” (Marty’s) CCDs different code need to be developed. As well as for chronopixel or any other active pixel device. 3/21/2008 SiD tracking and vertexing

17 Electronics simulation - continue
Common to all specific electronics simulation are: Addition of electronics noise to collected charge Propagation of the signal to readout – simulation of CCD clocking, and combining of signals from different charge trains Determination if signal exceeds threshold Assigning signals to particular bunch crossing Digitization of the signal Simulation of fake hits due to electronics noise 3/21/2008 SiD tracking and vertexing

18 Some results with Electronics simulation
Simulation of background hits in CPCCD with 50 MHz clocks, 512x512 pixels CCD background hits density hits/BC/mm2 . Physics event occurred at BC number Background hits were generated only in ±30 BC from physics event (assumed sensitive window for CPCCD with such parameters). 3/21/2008 SiD tracking and vertexing

19 Electronics simulation results-continue
Number of active pixels (RawTrackerHits) for the same conditions as on previous slide, with different level of electronics noise. Pixel threshold is 125 e, and correlated double sampling method is enabled (without it number of noise hits would be thousands). 3/21/2008 SiD tracking and vertexing

20 SiD tracking and vertexing
Tables Tables are widely used in this simulation package: For field maps Single collision energy loss probabilities Electron range However, one of the most important table use is for charge collection simulation. As we mentioned above, simulation of charge carrier propagation through pixel volume is very time consuming. To speed up this process, we can do it once for every point inside pixel (on some fine grid, for example 1x1x1 micron) and then repeat it some number of times to find out, what is the probability of the charge, generated at certain location inside pixel to be collected by this pixel or surrounding pixels. Recording such found probabilities in the table will eliminate need to repeat charge propagation simulation for given pixel sensor design when simulating charge collection from tracks. CarrierPropagator class can generate such tables. 3/21/2008 SiD tracking and vertexing

21 SiD tracking and vertexing
Simulation speed Without using charge collection tables simulation of 1 CCD hit can take from 0.1 s (no non depleted regions) to 0.7 s (CCD). Taking into account ~100 CCD hits in average physics event, one event processing will take up to few minutes. Too slow. Using tables reduce this time to ~4 millisecond/hit. So, physics event processing can be made less than in 1 second. This is comfortable time. Generation of the tables can take many hours for every pixel configuration. But it needs to be done only once. 3/21/2008 SiD tracking and vertexing

22 SiD tracking and vertexing
Current status As seen from the slide I show in the beginning, the final steps (cluster finding and processing) is not implemented yet. Also, only one type of electronics simulation was created – for CCDs. I need to make at least 2 more electronics simulation classes – for active pixels and for short columns (Marty’s) 3/21/2008 SiD tracking and vertexing


Download ppt "PixSim package to simulate pixel detectors digitization"

Similar presentations


Ads by Google