|
ACTS
Experiment-independent tracking
|
Fast track simulation on ACTS tracking geometries.
Fatras is the ACTS fast track simulation package. It uses the Acts::Propagator and a reconstruction-oriented Acts::TrackingGeometry to transport particles through the detector and to produce simulated hits on sensitive surfaces. It is intended for fast algorithm validation and detector studies that do not require a full, detailed detector simulation.
Fatras uses parametrized material interactions, including multiple scattering, Bethe-Bloch energy loss, Bethe-Heitler energy loss, and photon conversion. Since it operates on tracking surfaces rather than a full volumetric detector model, it is faster than a detailed Geant4 simulation but also less complete.
Fatras labels simulated particles and hits with ActsFatras::Barcode. A barcode is the event-local particle identifier used by Fatras and by the ACTS examples framework for truth matching. It is not a geometry identifier; it answers "which simulated particle produced this object?".
The barcode stores five integer components:
| Component | Meaning |
|---|---|
| primary vertex | The primary interaction vertex. Ordinary simulated particles use a non-zero primary vertex. |
| secondary vertex | A secondary vertex below the primary vertex. Zero means the particle comes directly from the primary vertex. |
| particle | The particle number within the selected primary and secondary vertex. |
| generation | The descendant generation. Particles produced at the vertex use generation zero. |
| sub-particle | The particle number within a non-zero generation. Particles produced at the vertex use sub-particle zero. |
The default-constructed barcode has all components set to zero and represents an invalid, missing, or unknown particle identifier. This value is useful as a sentinel, but it should not be used for ordinary simulated particles.
For example, a particle from primary vertex 2 with particle number 14 is encoded as:
If a Fatras interaction creates two descendant particles from this particle, the new particles keep the same vertex and particle number. The generation is increased and the sub-particle number distinguishes the two descendants:
The preserved vertex and particle components make it cheap to recover the initial simulated particle for truth matching, while the generation and sub-particle components distinguish particles created during the simulation.
ActsFatras::Barcode is immutable from the caller's point of view: modifier methods return a new barcode with one component changed. Typical construction therefore chains the with... methods:
Interactions that create descendants can call ActsFatras::Barcode::makeDescendant to increase the generation and set the sub-particle number:
Two helper projections are commonly useful when grouping truth information:
Since barcodes are created locally by the code that produces particles, there is no global allocation service that stores the full decay tree. Independent interactions can therefore create overlapping descendant identifiers if they start from the same particle and generation. When the full set of particles is available, sub-particle numbers within a generation can be renumbered to make the identifiers unique.