]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
work for aod
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 1 May 2012 08:42:40 +0000 (08:42 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 1 May 2012 08:42:40 +0000 (08:42 +0000)
PWGGA/EMCALTasks/AliEmcalPicoTrackMaker.cxx
PWGGA/EMCALTasks/AliEmcalPicoTrackMaker.h

index afe3030ab81535bb9b9755f7365b29240e005127..a5597ce76680007b60ae51de18becf5f509f172f 100644 (file)
@@ -77,11 +77,17 @@ void AliEmcalPicoTrackMaker::UserExec(Option_t *)
     return;
   }
 
-  RetrieveEventObjects();
-
-  // add tracks to event if not yet there
-  if (!(InputEvent()->FindListObject(fTracksOutName)))
+  // Add tracks to event if not yet there
+  if (!(InputEvent()->FindListObject(fTracksOutName))) {
     InputEvent()->AddObject(fTracksOut);
+  }
+  else {
+    // IMPORTANT: if it is not an AliESDEvent, non-std TClonesArray will not be cleared automatically!
+    if (!(InputEvent()->InheritsFrom("AliESDEvent")))
+      fTracksOut->Delete();
+  }
+
+  RetrieveEventObjects();
 
   Int_t Ntracks = GetNumberOfTracks();
   for (Int_t iTracks = 0, nacc = 0; iTracks < Ntracks; ++iTracks) {
@@ -90,16 +96,14 @@ void AliEmcalPicoTrackMaker::UserExec(Option_t *)
     if (!AcceptTrack(track))
       continue;
 
-    Int_t label = 0;
+    Int_t label = -1;
 
     if (track->InheritsFrom("AliAODTrack")) {
       AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(track);
       if (aodtrack->TestFilterBit(fAODfilterBits[0]))
        label = 0;
-      else if (aodtrack->TestFilterBit(fAODfilterBits[1]))
-       label = 1;
-      else //if (aodtrack->TestFilterBit(fAODfilterBits[2]))
-       label = 2;
+      else //if (aodtrack->TestFilterBit(fAODfilterBits[1]))
+       label = 3;
     }
     else {
       label = track->GetLabel();
@@ -126,8 +130,9 @@ Bool_t AliEmcalPicoTrackMaker::AcceptTrack(AliVTrack *track)
     AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(track);
     if (aodtrack) {
       //cout << "filter bit = " << fFilterBit << ", filter map = " << aodtrack->GetFilterMap() << endl;
-      //return aodtrack->TestFilterBit(fAODfilterBits[0]+fAODfilterBits[1]+fAODfilterBits[2]);
-      return aodtrack->IsHybridGlobalConstrainedGlobal();
+      //cout << fAODfilterBits[0]+fAODfilterBits[1] << endl;
+      return aodtrack->TestFilterBit(fAODfilterBits[0] | fAODfilterBits[1]);
+      //return aodtrack->IsHybridGlobalConstrainedGlobal();
     }
     else {
       AliError("Could not cast AOD track!");
@@ -149,8 +154,8 @@ Bool_t AliEmcalPicoTrackMaker::AcceptTrack(AliVTrack *track)
       return kTRUE;
     }
   }
-  else if (track->InheritsFrom("PicoTrack")) {
-    AliWarning("PicoTrack: nothing to filter!");
+  else {
+    AliWarning("Track type not recognized: nothing to filter!");
     return kTRUE;
   }
 }
index 3f32a73d891c7de7a6ff6b0f9fbe8fc252f6b8bf..a4234fbe705241643a6c4cfaa9c5fad00b623426 100644 (file)
@@ -19,7 +19,7 @@ class AliEmcalPicoTrackMaker : public AliAnalysisTaskSE {
   void UserCreateOutputObjects();
   void UserExec(Option_t *option);
 
-  void SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0, Int_t b2 = 0)      { fAODfilterBits[0] = b0; fAODfilterBits[1] = b1; fAODfilterBits[2] = b2; }
+  void SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0)                    { fAODfilterBits[0] = b0; fAODfilterBits[1] = b1; }
   void SetTracksOutName(const char *name)                              { fTracksOutName    = name; }
   void SetTracksInName(const char *name)                               { fTracksInName     = name; }
   void SetESDtrackCuts(AliESDtrackCuts *cuts)                          { fESDtrackCuts     = cuts; }
@@ -30,7 +30,7 @@ class AliEmcalPicoTrackMaker : public AliAnalysisTaskSE {
   AliVTrack*         GetTrack(const Int_t i)         const;
   Int_t              GetNumberOfTracks()             const;
 
-  Int_t              fAODfilterBits[3];     // AOD track filter bit map
+  Int_t              fAODfilterBits[2];     // AOD track filter bit map
   AliESDtrackCuts   *fESDtrackCuts;         // ESD track cuts
   TString            fTracksOutName;        // Name of output track array
   TString            fTracksInName;         // Name of input track array