7 #include <TClonesArray.h> 9 #include <AliAODEvent.h> 10 #include <AliAODTrack.h> 11 #include <AliAnalysisManager.h> 20 fTracksOutName("PicoTracks"),
21 fTracksInName("tracks"),
23 fCutMaxFrShTPCClus(0),
24 fUseNegativeLabels(kTRUE),
26 fDoPropagation(kFALSE),
28 fAttemptPropMatch(kFALSE),
29 fKeepInvMassTag(kFALSE),
37 fAODfilterBits[0] = -1;
38 fAODfilterBits[1] = -1;
44 fTracksOutName(
"PicoTracks"),
45 fTracksInName(
"tracks"),
47 fCutMaxFrShTPCClus(0),
48 fUseNegativeLabels(kTRUE),
50 fDoPropagation(kFALSE),
52 fAttemptPropMatch(kFALSE),
53 fKeepInvMassTag(kFALSE),
63 fBranchNames =
"AOD:tracks";
88 AliError(
"Manager zero, returning");
96 AliError(Form(
"Could not retrieve tracks %s!",
fTracksInName.Data()));
99 if (!
fTracksIn->GetClass()->GetBaseClass(
"AliVParticle")) {
100 AliError(Form(
"%s: Collection %s does not contain AliVParticle objects!", GetName(),
fTracksInName.Data()));
113 for (
Int_t iTracks = 0, nacc = 0; iTracks < Ntracks; ++iTracks) {
115 AliAODTrack *track =
static_cast<AliAODTrack*
>(
fTracksIn->At(iTracks));
121 if (track->IsHybridGlobalConstrainedGlobal())
129 if ((track->GetStatus()&AliVTrack::kITSrefit)==0) {
156 AliAODTrack *newt =
new ((*fTracksOut)[nacc]) AliAODTrack(*track);
157 newt->SetUniqueID(0);
158 newt->ResetBit(TObject::kHasUUID);
159 newt->ResetBit(TObject::kIsReferenced);
161 Bool_t propthistrack = kFALSE;
163 propthistrack = kTRUE;
164 else if (!newt->IsExtrapolatedToEMCAL()) {
166 propthistrack = kTRUE;
168 propthistrack = kTRUE;
171 AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(newt,
fDist);
176 label = track->GetLabel();
178 label = TMath::Abs(track->GetLabel());
180 AliDebug(2,Form(
"Track %d with label==0", iTracks));
183 track->GetLabel() == 1012000 ||
184 track->GetLabel() == 1021000 ||
185 track->GetLabel() == 1022000 ||
186 track->GetLabel() == 1031000 ||
187 track->GetLabel() == 1032000)){
188 newt->SetLabel(track->GetLabel());
191 newt->SetLabel(label);
193 newt->SetBit(BIT(22),0);
194 newt->SetBit(BIT(23),0);
195 }
else if (type==1) {
196 newt->SetBit(BIT(22),1);
197 newt->SetBit(BIT(23),0);
198 }
else if (type==2) {
199 newt->SetBit(BIT(22),0);
200 newt->SetBit(BIT(23),1);
201 }
else if (type==3) {
202 newt->SetBit(BIT(22),1);
203 newt->SetBit(BIT(23),1);
void UserExec(Option_t *option)
TClonesArray * fTracksOut
track array in
Double_t fCutMaxFrShTPCClus
Bool_t fUseNegativeLabels
virtual ~AliEmcalAodTrackFilterTask()
void UserCreateOutputObjects()
AliEmcalAodTrackFilterTask()