16 #include <TClonesArray.h>
18 #include <TObjArray.h>
20 #include <AliAODEvent.h>
21 #include <AliAODTrack.h>
23 #include <AliESDtrack.h>
37 fFilterHybridTracks(kFALSE),
38 fFilterTPCTracks(kFALSE)
40 fHybridFilterBits[0] = -1;
41 fHybridFilterBits[1] = -1;
54 fFilterBits(filterbits),
55 fFilterHybridTracks(kFALSE),
56 fFilterTPCTracks(kFALSE)
72 fFilterHybridTracks(kFALSE),
73 fFilterTPCTracks(kFALSE)
124 AliAODTrack *aodt =
dynamic_cast<AliAODTrack*
>(trk);
128 aodt =
dynamic_cast<AliAODTrack *
>(picotrack->
GetTrack());
131 AliError(
"Track neither AOD track nor pico track");
136 AliError(
"Failed getting AOD track");
147 if (aodt->IsHybridGlobalConstrainedGlobal()) {
155 if(aodt->IsHybridTPCConstrainedGlobal())
fTrackBitmap.SetBitNumber(cutcounter);
159 for (TIter cutIter = TIter(
fListOfCuts).Begin(); cutIter != TIter::End(); ++cutIter){
160 AliVCuts *trackCuts =
static_cast<AliVCuts*
>(*cutIter);
161 if (trackCuts->IsA() == AliESDtrackCuts::Class()) {
163 AliESDtrack copyTrack(aodt);
164 if (trackCuts->IsSelected(©Track))
fTrackBitmap.SetBitNumber(cutcounter);
167 if (trackCuts->IsSelected(aodt))
fTrackBitmap.SetBitNumber(cutcounter);
193 if (period ==
"lhc10b" || period ==
"lhc10c" || period ==
"lhc10d" ||
194 period ==
"lhc10e" || period ==
"lhc10h" ||
195 period ==
"lhc11h" || period ==
"lhc12a" || period ==
"lhc12b" ||
196 period ==
"lhc12c" || period ==
"lhc12d" || period ==
"lhc12e" ||
197 period ==
"lhc12f" || period ==
"lhc12g" || period ==
"lhc12h" ||
198 period ==
"lhc12i" || period ==
"lhc13b" || period ==
"lhc13c" ||
199 period ==
"lhc13d" || period ==
"lhc13e" || period ==
"lhc13f" ||
200 period ==
"lhc13g" ||
201 (period.Length() == 6 && period.BeginsWith(
"lhc15"))
207 else if (period ==
"lhc10f7a" || period ==
"lhc12a15e" || period.BeginsWith(
"lhc12a17") ||
208 period ==
"lhc13b4" || period ==
"lhc13b4_fix" || period ==
"lhc13b4_plus" || period ==
"lhc14k1a" || period ==
"lhc14k1b" || period ==
"lhc13e4" ||
209 period.BeginsWith(
"lhc14a1") || period.BeginsWith(
"lhc13b2_efix") ||
210 period.BeginsWith(
"lhc15g6")) {
215 else if (period ==
"lhc11a" || period ==
"lhc10hold" || period ==
"lhc11c" || period ==
"lhc11d") {
220 else if (period.Contains(
"lhc12a15a") || period ==
"lhc12a15f" ||
221 period ==
"lhc12a15g" || period.BeginsWith(
"lhc11a1")) {
227 ::Error(
"AliEmcalTrackSelectionAOD::GetHybridFilterBits",
"Could not find period %s! Hybrid tracks will be selected, but will not be able to distinguish between global and constrained.", period.Data());
Interface for virtual track selection.
Char_t fHybridFilterBits[2]
Filter bits of hybrid tracks.
TObjArray * fListOfCuts
List of track cut objects.
Bool_t fFilterHybridTracks
Filter hybrid tracks using AliAODTrack::IsHybridGlobalConstrainedGlobal.
Bool_t fFilterTPCTracks
Filter TPC-only tracks using AliAODTrack::IsHybridGlobalConstrainedGlobal.
void AddTrackCuts(AliVCuts *cuts)
Implement virtual track selection for AOD analysis.
virtual bool IsTrackAccepted(AliVTrack *const trk)
AliVTrack * GetTrack() const
Bool_t fSelectionModeAny
Accept track if any of the cuts is fulfilled.
TBits fTrackBitmap
Bitmap of last accepted/rejected track.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
virtual void GenerateTrackCuts(ETrackFilterType_t type, const char *="")
static Bool_t GetHybridFilterBits(Char_t bits[], TString period)
AliEmcalTrackSelectionAOD()
UInt_t fFilterBits
Track filter bits.