|
1 | 1 | --- |
2 | | -sort: 0 |
| 2 | +sort: 1 |
3 | 3 | title: Event Selection |
4 | 4 | --- |
5 | 5 |
|
@@ -365,3 +365,68 @@ One can set other configurables in the json file. This json file has to be provi |
365 | 365 | * One has to apply offline selections in O2 explicitly in contrast to AliPhysics where these selections were applied together with trigger alias selection. |
366 | 366 | * 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. |
367 | 367 |
|
| 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