]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalEsdTrackFilterTask.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalEsdTrackFilterTask.h
1 #ifndef ALIEMCALESDTRACKFILTERTASK_H
2 #define ALIEMCALESDTRACKFILTERTASK_H
3
4 class TClonesArray;
5 class AliESDEvent;
6 class AliESDtrackCuts;
7
8 #include <TF1.h>
9
10 #include "AliAnalysisTaskSE.h"
11 #include "AliESDtrackCuts.h"
12
13 class AliEmcalEsdTrackFilterTask : public AliAnalysisTaskSE {
14  public:
15   AliEmcalEsdTrackFilterTask();
16   AliEmcalEsdTrackFilterTask(const char *name);
17   virtual ~AliEmcalEsdTrackFilterTask();
18
19   void SetDist(Double_t d)                       { fDist             = d;    }
20   void SetDoPropagation(Bool_t b)                { fDoPropagation    = b;    }
21   void SetDoSpdVtxConstrain(Bool_t b)            { fDoSpdVtxCon      = b;    }
22   void SetHybridTrackCuts(AliESDtrackCuts *cuts) { fHybridTrackCuts  = cuts; }
23   void SetIncludeNoITS(Bool_t f)                 { fIncludeNoITS     = f;    }
24   void SetTrackCuts(AliESDtrackCuts *cuts)       { fEsdTrackCuts     = cuts; }
25   void SetTracksName(const char *name)           { fTracksName       = name; }
26   void SetTrackEfficiency(Double_t eff = 0.95)   { fTrackEfficiency  = new TF1("eff", "[0]", 0, 500); fTrackEfficiency->FixParameter(0,eff); }
27   void SetTrackEfficiency(TF1* eff)              { fTrackEfficiency  = eff;  }
28   void SetMC(Bool_t b)                           { fIsMC             = b  ;  }
29
30  protected:
31   void UserCreateOutputObjects();
32   void UserExec(Option_t *option);
33
34   AliESDtrackCuts   *fEsdTrackCuts;      // esd track cuts
35   Bool_t             fDoSpdVtxCon;       // if true then do vertex constraint
36   AliESDtrackCuts   *fHybridTrackCuts;   // hybrid track cuts
37   TString            fTracksName;        // name of tracks 
38   Bool_t             fIncludeNoITS;      // includes tracks with failed ITS refit
39   Bool_t             fDoPropagation;     // propagate all hybrid tracks to EMCal surface
40   Double_t           fDist;              // distance to surface (440cm default)
41   TF1               *fTrackEfficiency;   // track efficiency
42   Bool_t             fIsMC;              // whether it is a MC event or not
43   AliESDEvent       *fEsdEv;             //!esd event
44   TClonesArray      *fTracks;            //!track array
45
46  private:
47   AliEmcalEsdTrackFilterTask(const AliEmcalEsdTrackFilterTask&);            // not implemented
48   AliEmcalEsdTrackFilterTask &operator=(const AliEmcalEsdTrackFilterTask&); // not implemented
49
50   ClassDef(AliEmcalEsdTrackFilterTask, 4); // Class to constrain TPC tracks to SPD vertex
51 };
52
53 #endif