Skip to content

Commit f3f169f

Browse files
authored
Update EventSelection.md
1 parent 1f4adb0 commit f3f169f

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

docs/analysis-tools/EventSelection.md

Lines changed: 66 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

@@ -365,3 +365,68 @@ One can set other configurables in the json file. This json file has to be provi
365365
* One has to apply offline selections in O2 explicitly in contrast to AliPhysics where these selections were applied together with trigger alias selection.
366366
* 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.
367367
368+
369+
370+
## Occupancy estimators and selection bits
371+
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 tracks from multiple collisions can overlap in the detector.
376+
- Higher occupancy worsens:
377+
- **Tracking efficiency**
378+
- **PID performance (dE/dx shifts, peak broadening)**
379+
- Occupancy can be estimated using:
380+
- the number of ITS tracks with ≥5 clusters from other collisions in a time window around a given event. In the analysis it can be retrieved as:
381+
``` c++
382+
int occupancyByTracks = col.trackOccupancyInTimeRange(); // range is from 0 up to ~15000
383+
```
384+
- the summed FT0C amplitude from other collisions:
385+
``` c++
386+
float occupancyByFT0C = col.ft0cOccupancyInTimeRange();
387+
```
388+
In the occupancy calculation, multiplicities of nearby collisions are "weighted" according to their time separation from the collision-of-interest.
389+
Both occupancy estimators are calculated per event in [EventSelectionModule.h](https://github.com/AliceO2Group/O2Physics/blob/daily-20251029-0000/Common/Tools/EventSelectionModule.h#L1361).
390+
Estimators return the value of -1 if a collision is close to Time Frame borders (so, not enough information for the occupancy calculation; we need information -40 µs...+100 µs time range wrt a given collision).
391+
392+
393+
---
394+
In addition to the occupancy estimators described above, several additional 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).
395+
The following table summarizes the event selection bits used to mitigate occupancy effects in ALICE Run 3.
396+
397+
| **Bit** | **Definition** | **Strictness** | **Typical Effect / Event Loss** |
398+
|---------|----------------|----------------|--------------------------------|
399+
| `kNoCollInTimeRangeNarrow` | Rejects events if another collision within **±0.25 µs** | Narrow veto | Useful to suppress residual BC mis-associations; minimal loss |
400+
| `kNoCollInTimeRangeStandard` | Rejects if: (1) another coll. within ±0.25 µs, or (2) multiplicity > threshold in −4…+2 µs | Medium | Further suppression of effects from nearby collisions; ~3-10% event loss depending on IR |
401+
| `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%) |
402+
| `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 |
403+
| `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 |
404+
| `kNoHighMultCollInPrevRof` | Vetoes event if **previous ROF** has high multiplicity (FT0C >5000 a.u.) | only for cross-ROF ITS reco | Removes cases where previous ROF “steals” clusters; few % loss, but improves ITS tracking quality |
405+
406+
These bits can be used as follows:
407+
``` c++
408+
if (col.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStrict)) { /* do analysis */ }
409+
```
410+
---
411+
412+
More details 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).
413+
414+
Tight cuts on occupancy improve quality (better S/B, cleaner PID, less bias in kinematics), but reduce event statistics.
415+
Sensitivity to the occupancy effects depends on analysis. 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, 2000), (2000-4000)),
416+
and in addition apply occupancy selection bits, e.g. `kNoCollInTimeRangeNarrow` to eliminate the bc-collision mismatches, and 'kNoCollInTimeRangeStandard' to make a further cleaunup.
417+
418+
Note that the TPC-related occupancy effects are mostly pronounced in Pb-Pb runs, however, one may use the tools described above for occupancy studies also in pp and light-ion runs.
419+
420+
421+
422+
## Usage of the RCT flags
423+
424+
(to be updated)
425+
426+
427+
428+
429+
430+
431+
432+

0 commit comments

Comments
 (0)