15 #include <TClonesArray.h>
17 #include <TObjArray.h>
19 #include <AliAODEvent.h>
20 #include <AliAODTrack.h>
22 #include <AliESDtrack.h>
49 fFilterBits(filterbits)
66 TIter trackIter(tracks);
67 AliVTrack *track(NULL);
68 while((track = dynamic_cast<AliVTrack *>(trackIter()))){
86 const AliAODEvent *aod =
dynamic_cast<const AliAODEvent *
>(event);
88 AliError(
"Event not of type AliAODEvent");
91 for(
int itrk = 0; itrk <
event->GetNumberOfTracks(); itrk++){
92 AliVTrack *trk =
dynamic_cast<AliVTrack *
>(
event->GetTrack(itrk));
110 AliAODTrack *aodt =
dynamic_cast<AliAODTrack *
>(trk);
113 if(picotrack) aodt =
dynamic_cast<AliAODTrack *
>(picotrack->
GetTrack());
115 AliError(
"Track neither AOD track nor pico track");
120 AliError(
"Failed getting AOD track");
124 TBits selectedMap(64);
127 if(aodt->TestFilterBit(
fFilterBits)) selectedMap.SetBitNumber(cutcounter++);
130 for(TIter cutIter = TIter(
fListOfCuts).Begin(); cutIter != TIter::End(); ++cutIter){
131 AliVCuts *trackCuts =
static_cast<AliVCuts *
>(*cutIter);
132 if(trackCuts->IsA() == AliESDtrackCuts::Class()){
134 AliESDtrack copyTrack(aodt);
135 if(trackCuts->IsSelected(©Track)) selectedMap.SetBitNumber(cutcounter++);
137 if(trackCuts->IsSelected(aodt)) selectedMap.SetBitNumber(cutcounter++);
143 return selectedMap.CountBits() > 0;
146 return selectedMap.CountBits() == cutcounter;
Interface for virtual track selection.
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
virtual TObjArray * GetAcceptedTracks(const TClonesArray *const tracks)
TObjArray * fListOfCuts
List of track cut objects.
Implement virtual track selection for AOD analysis.
void AddTrackCuts(AliVCuts *cuts)
Implement virtual track selection for AOD analysis.
TObjArray * fListOfTracks
TObjArray with accepted tracks.
virtual bool IsTrackAccepted(AliVTrack *const trk)
AliVTrack * GetTrack() const
Bool_t fSelectionModeAny
Accept track if any of the cuts is fulfilled.
AliEmcalTrackSelectionAOD()
UInt_t fFilterBits
Track filter bits.