16 #include <TClonesArray.h>
18 #include <TObjArray.h>
20 #include <AliAODEvent.h>
21 #include <AliAODTrack.h>
23 #include <AliESDtrack.h>
33 fFilterHybridTracks(kFALSE),
34 fFilterTPCTracks(kFALSE)
36 fHybridFilterBits[0] = -1;
37 fHybridFilterBits[1] = -1;
42 fFilterBits(filterbits),
43 fFilterHybridTracks(kFALSE),
44 fFilterTPCTracks(kFALSE)
54 fFilterHybridTracks(kFALSE),
55 fFilterTPCTracks(kFALSE)
90 AliAODTrack *aodt =
dynamic_cast<AliAODTrack*
>(trk);
94 aodt =
dynamic_cast<AliAODTrack *
>(picotrack->
GetTrack());
97 AliError(
"Track neither AOD track nor pico track");
102 AliError(
"Failed getting AOD track");
113 if (aodt->IsHybridGlobalConstrainedGlobal()) {
121 if(aodt->IsHybridTPCConstrainedGlobal())
fTrackBitmap.SetBitNumber(cutcounter);
127 if (trackCuts->IsA() == AliESDtrackCuts::Class()) {
129 AliESDtrack copyTrack(aodt);
130 if (trackCuts->IsSelected(©Track))
fTrackBitmap.SetBitNumber(cutcounter);
133 if (trackCuts->IsSelected(aodt))
fTrackBitmap.SetBitNumber(cutcounter);
152 if (period ==
"lhc10b" || period ==
"lhc10c" || period ==
"lhc10d" ||
153 period ==
"lhc10e" || period ==
"lhc10h" ||
154 period ==
"lhc11h" || period ==
"lhc12a" || period ==
"lhc12b" ||
155 period ==
"lhc12c" || period ==
"lhc12d" || period ==
"lhc12e" ||
156 period ==
"lhc12f" || period ==
"lhc12g" || period ==
"lhc12h" ||
157 period ==
"lhc12i" || period ==
"lhc13b" || period ==
"lhc13c" ||
158 period ==
"lhc13d" || period ==
"lhc13e" || period ==
"lhc13f" ||
159 period ==
"lhc13g" ||
160 (period.Length() == 6 && period.BeginsWith(
"lhc15"))
166 else if (period ==
"lhc10f7a" || period ==
"lhc12a15e" || period.BeginsWith(
"lhc12a17") ||
167 period ==
"lhc13b4" || period ==
"lhc13b4_fix" || period ==
"lhc13b4_plus" || period ==
"lhc14k1a" || period ==
"lhc14k1b" || period ==
"lhc13e4" ||
168 period.BeginsWith(
"lhc14a1") || period.BeginsWith(
"lhc13b2_efix") ||
169 period.BeginsWith(
"lhc15g6")) {
174 else if (period ==
"lhc11a" || period ==
"lhc10hold" || period ==
"lhc11c" || period ==
"lhc11d") {
179 else if (period.Contains(
"lhc12a15a") || period ==
"lhc12a15f" ||
180 period ==
"lhc12a15g" || period.BeginsWith(
"lhc11a1")) {
186 ::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.
TObject * GetObject(const TCollection *parent, const TString &name, const TClass *cls=0, Bool_t verbose=true)
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)
Add new track cuts to the list of cuts.
Implement virtual track selection for AOD analysis.
virtual bool IsTrackAccepted(AliVTrack *const trk)
Performing track selection.
AliVTrack * GetTrack() const
Bool_t fSelectionModeAny
Accept track if any of the cuts is fulfilled.
TBits fTrackBitmap
Bitmap of last accepted/rejected track.
ETrackFilterType_t
Pre-defined track filters.
virtual void GenerateTrackCuts(ETrackFilterType_t type, const char *="")
Automatically generates track cuts depending on the requested type of filtering.
static Bool_t GetHybridFilterBits(Char_t bits[], TString period)
Returns the hybrid filter bits according to a hard-coded look-up table.
AliEmcalTrackSelectionAOD()
Main constructor.
Smart pointer implementation for objects inheriting from TObject.
UInt_t fFilterBits
Track filter bits.