Skip to content

Commit a242ed5

Browse files
authored
Merge pull request #323 from altsybee/master
event selection: documentation on occupancy selection is added
2 parents 753cbad + 62eadbc commit a242ed5

File tree

4 files changed

+79
-4
lines changed

4 files changed

+79
-4
lines changed

docs/analysis-tools/EventSelection.md

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sort: 0
2+
sort: 1
33
title: Event Selection
44
---
55

@@ -24,6 +24,7 @@ Table of contents:
2424
* [Configurables](#configurables)
2525
* [Remarks](#remarks)
2626

27+
2728
### Concept
2829

2930
The main purpose of the event selection framework in O2 is to provide tools to select triggered events and reject pileup, beam-gas and poor quality collisions.
@@ -365,3 +366,77 @@ One can set other configurables in the json file. This json file has to be provi
365366
* One has to apply offline selections in O2 explicitly in contrast to AliPhysics where these selections were applied together with trigger alias selection.
366367
* EvSel table might be also useful in user tasks relying on beam-beam and beam-gas decisions in forward detectors, e.g. in UPC tasks.
367368
369+
370+
371+
## Occupancy estimation
372+
373+
In ALICE Run 3 Pb–Pb collisions, **occupancy** in the TPC refers to the contamination of an event’s TPC clusters by signals from other nearby collisions within the TPC drift time window.
374+
375+
- The TPC has a long drift time (~100 µs), so clusters from particles originated from multiple collisions can overlap in the detector.
376+
- Higher occupancy worsens:
377+
- Tracking efficiency
378+
- PID performance (dE/dx shifts, peak broadening)
379+
380+
### Occupancy estimators
381+
382+
A single-value "integrated" occupancy estimator for a given collision can be calculated by summing
383+
- the number of ITS tracks from other collisions within a defined time window around the given event. In the analysis, it can be accessed as:
384+
``` c++
385+
int occupancyByTracks = col.trackOccupancyInTimeRange(); // range: from 0 up to ~15k
386+
```
387+
- alternatively, we can sum up FT0C amplitudes from other collisions:
388+
``` c++
389+
float occupancyByFT0C = col.ft0cOccupancyInTimeRange(); // range: from 0 up to ~150k
390+
```
391+
392+
Notes:
393+
- Both occupancy estimators are calculated per each collision in the event selection routine, [EventSelectionModule.h](https://github.com/AliceO2Group/O2Physics/blob/daily-20251029-0000/Common/Tools/EventSelectionModule.h#L1361).
394+
- In the occupancy calculation, multiplicities of nearby collisions are "weighted" according to their time separation from a collision-of-interest.
395+
- Estimators return the value of `-1` if a given collision is close to Time Frame borders (so, not enough information for the occupancy calculation, while we need information within -40 µs...+100 µs time range wrt a given collision).
396+
397+
398+
### Occupancy selection bits
399+
400+
In addition to the occupancy estimators described above, several special event selection bits are implemented for a better cleanup of various nearby effects from other collisions (related not only to the TPC, but also to the ITS, e.g. to high occupancies in the ITS Readout Frames).
401+
402+
The following table summarizes the event selection bits used to mitigate occupancy effects in Pb-Pb:
403+
404+
| **Bit** | **Definition** | **Strictness** | **Typical Effect / Event Loss** |
405+
|---------|----------------|----------------|--------------------------------|
406+
| `kNoCollInTimeRangeNarrow` | Rejects events if another collision within **±0.25 µs** | Narrow veto | Useful to suppress residual BC mis-associations; minimal loss |
407+
| `kNoCollInTimeRangeStandard` | Rejects if: (1) another coll. within ±0.25 µs, or (2) multiplicity of a coll. in dt −4…+2 µs > threshold | Medium | Further suppression of effects from nearby collisions; ~3-10% event loss depending on IR |
408+
| `kNoCollInTimeRangeStrict` | Rejects events if another collision is within **±10 µs** | Very strict | Strongly reduces effects from nearby events; large loss of statistics at high IR (can exceed 30–40%) |
409+
| `kNoCollInRofStrict` | Rejects events if >1 collision in the same **ITS Readout Frame** (~15 µs in Pb-Pb) | Very strict | Removes in-ROF pileup; at 38 kHz Pb–Pb cuts ~35% of events |
410+
| `kNoCollInRofStandard` | Allows >1 collision per ROF but rejects if another has multiplicity > threshold (default: FT0C amplitude >5000 a.u. ≈ 500 tracks) | Medium | Retains more stats, but protects against large in-ROF pileup |
411+
| `kNoHighMultCollInPrevRof` | Vetoes event if **previous ROF** has high multiplicity (FT0C >5000 a.u.); only for cross-ROF ITS reco | Medium | Removes cases where previous ROF “steals” clusters; few % loss, but improves ITS tracking quality |
412+
413+
These bits can be used as follows:
414+
``` c++
415+
if (col.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStrict)) { /* do analysis */ }
416+
```
417+
418+
419+
### Discussion
420+
421+
More details on occupancy in Pb-Pb can be found in the [report at the APW 2024](https://indico.cern.ch/event/1462154/#7-occupancy-effects), where the concepts and observations are explained (while some figures and indicated values might be outdated).
422+
423+
Tight cuts on occupancy improve quality (better S/B, cleaner PID, less bias in kinematics), but reduce event statistics.
424+
425+
However, sensitivity to the occupancy effects depends on analysis.
426+
Therefore, the suggested approach is to study how results of a given analysi change as a function of occupancy: one may try several occupancy "bins", e.g. `[0,500), (500, 1000), (1000-2000), (2000-4000)`, etc.,
427+
and, in addition, apply occupancy selection bits, e.g. `kNoCollInTimeRangeNarrow` to eliminate the bc-collision mismatches, or `kNoCollInTimeRangeStandard` to make a further cleaunup.
428+
429+
Note that TPC-related occupancy effects are most pronounced in Pb–Pb runs, however, the tools described above can also be used for occupancy studies in pp and light-ion runs.
430+
431+
432+
## Usage of RCT flags
433+
434+
(to be updated)
435+
436+
437+
438+
439+
440+
441+
442+

docs/analysis-tools/MultiplicityAndCentralitySelection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sort: 1
2+
sort: 2
33
title: Multiplicity and centrality selection
44
---
55

docs/analysis-tools/PID.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sort: 2
2+
sort: 3
33
title: Particle identification (PID)
44
---
55

docs/analysis-tools/TrackSelection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sort: 3
2+
sort: 4
33
title: Track selection and propagation
44
---
55

0 commit comments

Comments
 (0)