ROOT logo
#ifndef ALIEMCALESDTRACKFILTERTASK_H
#define ALIEMCALESDTRACKFILTERTASK_H

class TClonesArray;
class AliESDEvent;
class AliESDtrackCuts;

#include <TF1.h>

#include "AliAnalysisTaskSE.h"
#include "AliESDtrackCuts.h"

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

  void SetDist(Double_t d)                       { fDist             = d;    }
  void SetDoPropagation(Bool_t b)                { fDoPropagation    = b;    }
  void SetDoSpdVtxConstrain(Bool_t b)            { fDoSpdVtxCon      = b;    }
  void SetHybridTrackCuts(AliESDtrackCuts *cuts) { fHybridTrackCuts  = cuts; }
  void SetIncludeNoITS(Bool_t f)                 { fIncludeNoITS     = f;    }
  void SetTrackCuts(AliESDtrackCuts *cuts)       { fEsdTrackCuts     = cuts; }
  void SetTracksName(const char *name)           { fTracksName       = name; }
  void SetTrackEfficiency(Double_t eff = 0.95)   { fTrackEfficiency  = new TF1("eff", "[0]", 0, 500); fTrackEfficiency->FixParameter(0,eff); }
  void SetTrackEfficiency(TF1* eff)              { fTrackEfficiency  = eff;  }
  void SetMC(Bool_t b)                           { fIsMC             = b  ;  }

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

  AliESDtrackCuts   *fEsdTrackCuts;      // esd track cuts
  Bool_t             fDoSpdVtxCon;       // if true then do vertex constraint
  AliESDtrackCuts   *fHybridTrackCuts;   // hybrid track cuts
  TString            fTracksName;        // name of tracks 
  Bool_t             fIncludeNoITS;      // includes tracks with failed ITS refit
  Bool_t             fDoPropagation;     // propagate all hybrid tracks to EMCal surface
  Double_t           fDist;              // distance to surface (440cm default)
  TF1               *fTrackEfficiency;   // track efficiency
  Bool_t             fIsMC;              // whether it is a MC event or not
  AliESDEvent       *fEsdEv;             //!esd event
  TClonesArray      *fTracks;            //!track array

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

  ClassDef(AliEmcalEsdTrackFilterTask, 4); // Class to constrain TPC tracks to SPD vertex
};

#endif
 AliEmcalEsdTrackFilterTask.h:1
 AliEmcalEsdTrackFilterTask.h:2
 AliEmcalEsdTrackFilterTask.h:3
 AliEmcalEsdTrackFilterTask.h:4
 AliEmcalEsdTrackFilterTask.h:5
 AliEmcalEsdTrackFilterTask.h:6
 AliEmcalEsdTrackFilterTask.h:7
 AliEmcalEsdTrackFilterTask.h:8
 AliEmcalEsdTrackFilterTask.h:9
 AliEmcalEsdTrackFilterTask.h:10
 AliEmcalEsdTrackFilterTask.h:11
 AliEmcalEsdTrackFilterTask.h:12
 AliEmcalEsdTrackFilterTask.h:13
 AliEmcalEsdTrackFilterTask.h:14
 AliEmcalEsdTrackFilterTask.h:15
 AliEmcalEsdTrackFilterTask.h:16
 AliEmcalEsdTrackFilterTask.h:17
 AliEmcalEsdTrackFilterTask.h:18
 AliEmcalEsdTrackFilterTask.h:19
 AliEmcalEsdTrackFilterTask.h:20
 AliEmcalEsdTrackFilterTask.h:21
 AliEmcalEsdTrackFilterTask.h:22
 AliEmcalEsdTrackFilterTask.h:23
 AliEmcalEsdTrackFilterTask.h:24
 AliEmcalEsdTrackFilterTask.h:25
 AliEmcalEsdTrackFilterTask.h:26
 AliEmcalEsdTrackFilterTask.h:27
 AliEmcalEsdTrackFilterTask.h:28
 AliEmcalEsdTrackFilterTask.h:29
 AliEmcalEsdTrackFilterTask.h:30
 AliEmcalEsdTrackFilterTask.h:31
 AliEmcalEsdTrackFilterTask.h:32
 AliEmcalEsdTrackFilterTask.h:33
 AliEmcalEsdTrackFilterTask.h:34
 AliEmcalEsdTrackFilterTask.h:35
 AliEmcalEsdTrackFilterTask.h:36
 AliEmcalEsdTrackFilterTask.h:37
 AliEmcalEsdTrackFilterTask.h:38
 AliEmcalEsdTrackFilterTask.h:39
 AliEmcalEsdTrackFilterTask.h:40
 AliEmcalEsdTrackFilterTask.h:41
 AliEmcalEsdTrackFilterTask.h:42
 AliEmcalEsdTrackFilterTask.h:43
 AliEmcalEsdTrackFilterTask.h:44
 AliEmcalEsdTrackFilterTask.h:45
 AliEmcalEsdTrackFilterTask.h:46
 AliEmcalEsdTrackFilterTask.h:47
 AliEmcalEsdTrackFilterTask.h:48
 AliEmcalEsdTrackFilterTask.h:49
 AliEmcalEsdTrackFilterTask.h:50
 AliEmcalEsdTrackFilterTask.h:51
 AliEmcalEsdTrackFilterTask.h:52
 AliEmcalEsdTrackFilterTask.h:53