You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TPC: add 83mKr calibration generator with Geant4 ionisation-fluctuation support
- TPCDetParam.UseGeant4Edep: use Geant4's own energy deposit for ionisation
instead of Bethe-Bloch/NA49, with a configurable SpecialCutsGeV threshold
- Adds the Kr-83m decay generator (GeneratorKrDecay) as a compiled Generator
subclass in Detectors/TPC/simulation, with a thin krGenerator.C macro for
use as an o2-sim external generator
- Adds plotCluster.C for viewing the resulting calibration spectrum
Copy file name to clipboardExpand all lines: Detectors/TPC/base/include/TPCBase/ParameterDetector.h
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,8 @@ struct ParameterDetector : public o2::conf::ConfigurableParamHelper<ParameterDet
33
33
TimeBin TmaxTriggered = 550; ///< Maximum time bin in case of triggered readout mode
34
34
float DriftTimeOffset = 7.3; ///< drift time offset in time bins (we observe ~2.4\mus before October 2023 and ~1.45 \mus after)
35
35
bool ExcludeFCGap = true; ///< exclude electrons created in the gap between the IFC vessel and OFC vessel and FC strips
36
+
bool UseGeant4Edep = false; ///< use Geant4 energy deposit directly for ionisation (for Kr-83m calibration runs)
37
+
float SpecialCutsGeV = 1e-6f; ///< CUTELE/CUTGAM/DCUTE/BCUTE applied to TPC drift-gas media by SetSpecialPhysicsCuts() when UseGeant4Edep is set (Kr-83m calibration isolation test); default 1e-6 GeV (1 keV) matches the prior hardcoded value
Copy file name to clipboardExpand all lines: Detectors/TPC/simulation/README.md
+45-4Lines changed: 45 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ For the digitization as conducted by the [TPC digitizer](include/TPCSimulation/D
12
12
13
13
* The energy loss of each individual GEANT hit is converted into a number of electrons by dividing by the effective ionization potential W_i. Each of these electrons is in the following treated individually.
14
14
* The electron is projected onto the readout plane, taking into account diffusion, i.e. smearing its position by a 3D gaussian function ([ElectronTransport](include/TPCSimulation/ElectronTransport.h)). Then, the position is transformed into the local coordinate system of the Readout Chamber (ROC).
15
-
* Having arrived at the amplification stage, the electrons undergo amplification in the GEM stack ([GEMAmplification](include/TPCSimulation/GEMAmplification.h)), taking into account fluctuations of the gain. These fluctuations follow a Polya distribution. For performance considerations, two different versions of the amplification are available (one effective single-stage amplification and a successive simulation of the collection, amplification, and extraction processes in the individual GEMs.
15
+
* Having arrived at the amplification stage, the electrons undergo amplification in the GEM stack ([GEMAmplification](include/TPCSimulation/GEMAmplification.h)), taking into account fluctuations of the gain. These fluctuations follow a Polya distribution. For performance considerations, two different versions of the amplification are available (one effective single-stage amplification and a successive simulation of the collection, amplification, and extraction processes in the individual GEMs).
16
16
* Capacitive coupling of the amplification structure to the readout anode leads to another contribution to the signal, the so-called Common Mode effect. Since the bottom electrode of GEM 4 is unsegmented, capacitive coupling occurs within a full ROC ([CommonMode](include/TPCSimulation/CommonMode.h))
17
17
* The charge signal is then folded with the transfer function of the front-end cards ([SAMPAProcessing](include/TPCSimulation/SAMPAProcessing.h)) and written to the intermediate storage container structure ([DigitContainer](include/TPCSimulation/DigitContainer.h)/[DigitTime](include/TPCSimulation/DigitTime.h)/[DigitGlobalPad](include/TPCSimulation/DigitGlobalPad.h)), which is described below.
18
18
@@ -24,7 +24,7 @@ The digitization is conducted for each TPC sector individually in order to ensur
24
24
The input can be created by running the simulation `o2-sim`, which produces the file `o2sim.root` with the hits stored in separated branches for all sectors.
25
25
It should be noted that due to diffusion and the space-charge distortions, charge leakage between sectors can occur. In order to avoid the unnecessary processing of individual hits, several measures are taken
26
26
27
-
* for a given sector the hits within an additional safety margin of +/- 10 degree are processed. For this reason, For this reason, the hits are not stored for a given sector, but shifted by 10 degrees. Hence only two branches need to be loaded for the digitization of a given sector.
27
+
* for a given sector the hits within an additional safety margin of +/- 10 degree are processed. For this reason, the hits are not stored for a given sector, but shifted by 10 degrees. Hence only two branches need to be loaded for the digitization of a given sector.
28
28
* Individual hits are only processed when they are within the processed by 3 sigma of the expected width from diffusion
29
29
30
30
Hits passing that requirement are further processed by the [TPC digitizer](include/TPCSimulation/Digitizer.h) and undergo the above described physics processes.
@@ -36,7 +36,48 @@ The [DigitContainer](include/TPCSimulation/DigitContainer.h) is a circular buffe
36
36
The [DigitTime](include/TPCSimulation/DigitTime.h) is then a flat contained of [DigitGlobalPad](include/TPCSimulation/DigitGlobalPad.h), where the latter correspond to one pad on the pad plane. Accordingly, the buffering of the actual ADC values is conducted using this object.
37
37
Similarly, the MC labels are passed throughout the chain, and finally sorted by the number of occurrences, i.e. the track with the largest contribution to the digit is mentioned first etc.
38
38
39
-
Correlations among digits from different events can only occur within the integration time of the detector (plus additional 50% contigiency), and therefore the digits are written to disk when the processed event is more than 750 time bins after. This means, that saturation effects are applied to the ADC values stored in the [DigitGlobalPad](include/TPCSimulation/DigitGlobalPad.h) and the relevant information is transformed in a [Digit](../../../DataFormats/Detectors/TPC/include/DataFormatsTPC/Digit.h) which is written to disk.
39
+
Correlations among digits from different events can only occur within the integration time of the detector (plus additional 50% contingency), and therefore the digits are written to disk when the processed event is more than 750 time bins after. This means, that saturation effects are applied to the ADC values stored in the [DigitGlobalPad](include/TPCSimulation/DigitGlobalPad.h) and the relevant information is transformed in a [Digit](../../../DataFormats/Detectors/TPC/include/DataFormatsTPC/Digit.h) which is written to disk.
40
40
41
41
### Output data
42
-
The digitizer workflow produces the file `tpcdigits.root` by default, data is stored in separated branches for all sectors.
42
+
The digitizer workflow produces the file `tpcdigits.root` by default, data is stored in separated branches for all sectors.
43
+
44
+
# 83mKr calibration generator
45
+
46
+
[GeneratorKrDecay](include/TPCSimulation/GeneratorKrDecay.h) is a `Generator` producing
47
+
83mKr decay vertices uniformly distributed in the TPC drift volume, for gain-map and
48
+
energy-resolution calibration simulation with `o2-sim`.
49
+
50
+
Kr-83m decays via two sequential internal transitions. For each generated vertex, one of
51
+
eight decay channels (combinations of the two transitions' internal-conversion/gamma
52
+
modes) is sampled according to branching fractions derived from the transition energies
53
+
and internal conversion coefficients (ICC), then the corresponding conversion
0 commit comments