ROOT logo
#ifndef ALIEMCALAODTRACKFILTERTASK_H
#define ALIEMCALAODTRACKFILTERTASK_H

class TClonesArray;

#include <TF1.h>

#include "AliAnalysisTaskSE.h"

class AliEmcalAodTrackFilterTask : public AliAnalysisTaskSE {
 public:
  AliEmcalAodTrackFilterTask();
  AliEmcalAodTrackFilterTask(const char *name);
  virtual ~AliEmcalAodTrackFilterTask();

  void               SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0)         { fAODfilterBits[0]  = b0  ; fAODfilterBits[1] = b1  ; }
  void               SetAttemptProp(Bool_t b)                             { fAttemptProp       = b   ; }
  void               SetAttemptPropMatch(Bool_t b)                        { fAttemptPropMatch  = b   ; }
  void               SetCutMaxFractionSharedTPCClusters(Double_t c = 0.4) { fCutMaxFrShTPCClus = c   ; }
  void               SetDist(Double_t d)                                  { fDist              = d   ; }
  void               SetDoPropagation(Bool_t b)                           { fDoPropagation     = b   ; }
  void               SetIncludeNoITS(Bool_t f)                            { fIncludeNoITS      = f   ; }
  void               SetMC(Bool_t b)                                      { fIsMC              = b   ; }
  void               SetTracksInName(const char *name)                    { fTracksInName      = name; }
  void               SetTracksOutName(const char *name)                   { fTracksOutName     = name; }
  void               SetUseNegativeLabels(Bool_t f)                       { fUseNegativeLabels = f   ; }
  void               SetTrackEfficiency(Double_t eff = 0.95)              { fTrackEfficiency  = new TF1("eff", "[0]", 0, 500); fTrackEfficiency->FixParameter(0,eff); }
  void               SetTrackEfficiency(TF1* eff)                         { fTrackEfficiency  = eff  ; }

 protected:
  void               UserCreateOutputObjects();
  void               UserExec(Option_t *option);

  Int_t              fAODfilterBits[2];     // AOD track filter bit map
  TString            fTracksOutName;        // name of output track array
  TString            fTracksInName;         // name of input track array
  Bool_t             fIncludeNoITS;         // includes tracks with failed ITS refit
  Double_t           fCutMaxFrShTPCClus;    // max fraction of shared TPC clusters
  Bool_t             fUseNegativeLabels;    // whether or not should use negative MC labels
  Bool_t             fIsMC;                 // whether it is a MC event or not
  Bool_t             fDoPropagation;        // if true then propagate all hybrid tracks to EMCal surface
  Bool_t             fAttemptProp;          // if true then attempt to propagate if not done yet
  Bool_t             fAttemptPropMatch;     // if true then attempt to propagate if not done yet but IsEMCAL is true
  Double_t           fDist;                 // distance to surface (440cm default)
  TF1               *fTrackEfficiency;      // track efficiency
  TClonesArray      *fTracksIn;             //!track array in
  TClonesArray      *fTracksOut;            //!track array out

 private:
  AliEmcalAodTrackFilterTask(const AliEmcalAodTrackFilterTask&);            // not implemented
  AliEmcalAodTrackFilterTask &operator=(const AliEmcalAodTrackFilterTask&); // not implemented

  ClassDef(AliEmcalAodTrackFilterTask, 4); // Task to filter Aod tracks
};
#endif
 AliEmcalAodTrackFilterTask.h:1
 AliEmcalAodTrackFilterTask.h:2
 AliEmcalAodTrackFilterTask.h:3
 AliEmcalAodTrackFilterTask.h:4
 AliEmcalAodTrackFilterTask.h:5
 AliEmcalAodTrackFilterTask.h:6
 AliEmcalAodTrackFilterTask.h:7
 AliEmcalAodTrackFilterTask.h:8
 AliEmcalAodTrackFilterTask.h:9
 AliEmcalAodTrackFilterTask.h:10
 AliEmcalAodTrackFilterTask.h:11
 AliEmcalAodTrackFilterTask.h:12
 AliEmcalAodTrackFilterTask.h:13
 AliEmcalAodTrackFilterTask.h:14
 AliEmcalAodTrackFilterTask.h:15
 AliEmcalAodTrackFilterTask.h:16
 AliEmcalAodTrackFilterTask.h:17
 AliEmcalAodTrackFilterTask.h:18
 AliEmcalAodTrackFilterTask.h:19
 AliEmcalAodTrackFilterTask.h:20
 AliEmcalAodTrackFilterTask.h:21
 AliEmcalAodTrackFilterTask.h:22
 AliEmcalAodTrackFilterTask.h:23
 AliEmcalAodTrackFilterTask.h:24
 AliEmcalAodTrackFilterTask.h:25
 AliEmcalAodTrackFilterTask.h:26
 AliEmcalAodTrackFilterTask.h:27
 AliEmcalAodTrackFilterTask.h:28
 AliEmcalAodTrackFilterTask.h:29
 AliEmcalAodTrackFilterTask.h:30
 AliEmcalAodTrackFilterTask.h:31
 AliEmcalAodTrackFilterTask.h:32
 AliEmcalAodTrackFilterTask.h:33
 AliEmcalAodTrackFilterTask.h:34
 AliEmcalAodTrackFilterTask.h:35
 AliEmcalAodTrackFilterTask.h:36
 AliEmcalAodTrackFilterTask.h:37
 AliEmcalAodTrackFilterTask.h:38
 AliEmcalAodTrackFilterTask.h:39
 AliEmcalAodTrackFilterTask.h:40
 AliEmcalAodTrackFilterTask.h:41
 AliEmcalAodTrackFilterTask.h:42
 AliEmcalAodTrackFilterTask.h:43
 AliEmcalAodTrackFilterTask.h:44
 AliEmcalAodTrackFilterTask.h:45
 AliEmcalAodTrackFilterTask.h:46
 AliEmcalAodTrackFilterTask.h:47
 AliEmcalAodTrackFilterTask.h:48
 AliEmcalAodTrackFilterTask.h:49
 AliEmcalAodTrackFilterTask.h:50
 AliEmcalAodTrackFilterTask.h:51
 AliEmcalAodTrackFilterTask.h:52
 AliEmcalAodTrackFilterTask.h:53
 AliEmcalAodTrackFilterTask.h:54
 AliEmcalAodTrackFilterTask.h:55