Skip to content

Implement track observer tool

The track observer tool allows the detailed study of tracks and their progression through the ambiguity solver. It was used in r21 for CTIDE studies, and would be very useful in r22 as well.

This tool, when enabled, will create an output track collection, InDetObservedTrackParticles, with the truth information of the observed particles and info generated by the tool (parentID, numShared, rejection reason, etc.).

Each track is uniquely identified using a thread-safe std::atomic<std::uint32_t> (defined in AmbiguityProcessorUtility.cxx), which serves as Id for the tool. If a track has a parent, the unique Id of the parent is also saved by the tool. As the ambiguity processor tools delete tracks, all tracks (including temporary tracks) are saved to the tool's cache entry, i.e. an ObservedTracksMap object. The TrackPtr.h class is also augmented with a unique Id.

Two instances of the TrkObserverTool must be instantiated in order to avoid data handle conflicts:

  • Instance that does not initialize the data handles and is used throughout the ambiguity solving
  • Instance that initializes the data handles and is only used to write out the observed tracks after the ambiguity solving is done

The track uid defaults to -1 when required and the observer tool is not enabled. To run with the observer tool enabled, set InDetFlags.doTIDE_AmbiTrackMonitoring to True in the relevant job options.

Tagging @goblirsc @vcairo @gfacini @battagl @dmclaugh @svanstro

Edited by Sebastien Rettie

Merge request reports