A virtual track selection, hiding differences in the handling
of ESDs and AODs, is implemented. The core of is the set of
classes AliVTrackSelection, AliAODTrackSelection and AliESDTrackSelection,
ported from the EMCAL framework. The primary goal is to make
the analysis framework transparent to ESD and AOD analysis. Users
need to configure the track selection, either with track cuts
inheriting from AliVCuts, or filter bits. Supported aree AliESDtrackCuts
as well as all cuts coming from the correction framework. Selected
tracks can be accessed by either of the methods IsTrackAccepted or
GetAcceptedTracks.
As the data type is know typically only at run time, a natural
way to handle the track selection is by providing a factory class
implementing the creation of the track cuts objets. A base class
AliTrackSelectionFactory is provided, having an abstract function
CreateTrackSelection. Users have to implement this function in their
own class.
The AliAnalysisTaskSE is adapted for this, providing pointers to
both a track selection factory and a track selection object. Both
pointers are not mandatory. Only in case they are set, a track selection
is created in CreateOutput objects, matching to the data type used in
the analysis. The function GetAcceptedTracks can be used by user analyses.
In case track cuts are provided, this method will call the GetAcceptedTracks
from AliVTrackSelection and return its result.