]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalAodTrackFilterTask.h
Add ptr to original AliVTrack.
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalAodTrackFilterTask.h
1 #ifndef ALIEMCALAODTRACKFILTERTASK_H
2 #define ALIEMCALAODTRACKFILTERTASK_H
3
4 // $Id$
5
6 class TClonesArray;
7 class AliVEvent;
8 class AliVTrack;
9
10 #include "AliAnalysisTaskSE.h"
11
12 class AliEmcalAodTrackFilterTask : public AliAnalysisTaskSE {
13  public:
14   AliEmcalAodTrackFilterTask();
15   AliEmcalAodTrackFilterTask(const char *name);
16   virtual ~AliEmcalAodTrackFilterTask();
17
18   void UserCreateOutputObjects();
19   void UserExec(Option_t *option);
20
21   void SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0)         { fAODfilterBits[0]  = b0  ; fAODfilterBits[1] = b1  ; }
22   void SetCutMaxFractionSharedTPCClusters(Double_t c = 0.4) { fCutMaxFrShTPCClus = c   ; }
23   void SetDist(Double_t d)                                  { fDist              = d   ; }
24   void SetDoPropagation(Bool_t b)                           { fDoPropagation     = b   ; }
25   void SetIncludeNoITS(Bool_t f)                            { fIncludeNoITS      = f   ; }
26   void SetMC(Bool_t a)                                      { fIsMC              = a   ; }
27   void SetModifyTrack(Bool_t b)                             { fModifyTrack       = b;    }
28   void SetTrackEfficiency(Double_t eff = 0.95)              { fTrackEfficiency   = eff ; }
29   void SetTrackEtaLimits(Double_t min, Double_t max)        { fMaxTrackEta       = max ; fMinTrackEta      = min ; }
30   void SetTrackPhiLimits(Double_t min, Double_t max)        { fMaxTrackPhi       = max ; fMinTrackPhi      = min ; }
31   void SetTrackPtLimits(Double_t min, Double_t max)         { fMaxTrackPt        = max ; fMinTrackPt       = min ; }
32   void SetTracksInName(const char *name)                    { fTracksInName      = name; }
33   void SetTracksOutName(const char *name)                   { fTracksOutName     = name; }
34   void SetUseNegativeLabels(Bool_t f)                       { fUseNegativeLabels = f   ; }
35
36  protected:
37   Int_t              fAODfilterBits[2];     // AOD track filter bit map
38   TString            fTracksOutName;        // name of output track array
39   TString            fTracksInName;         // name of input track array
40   Double_t           fMinTrackPt;           // mix pt of tracks
41   Double_t           fMaxTrackPt;           // max pt of tracks
42   Double_t           fMinTrackEta;          // cut on track eta
43   Double_t           fMaxTrackEta;          // cut on track eta
44   Double_t           fMinTrackPhi;          // cut on track phi
45   Double_t           fMaxTrackPhi;          // cut on track phi
46   Double_t           fTrackEfficiency;      // track efficiency
47   Bool_t             fIncludeNoITS;         // includes tracks with failed ITS refit
48   Bool_t             fUseNegativeLabels;    // whether or not should use negative MC labels
49   Bool_t             fIsMC;                 // whether it is a MC event or not
50   Double_t           fCutMaxFrShTPCClus;    // max fraction of shared TPC clusters
51   Bool_t             fModifyTrack;          // if true then overwrite some fields in AodTrack
52   Bool_t             fDoPropagation;        // if true then propagate all hybrid tracks to EMCal surface
53   Double_t           fDist;                 // distance to surface (440cm default)
54   TClonesArray      *fTracksIn;             //!track array in
55   TClonesArray      *fTracksOut;            //!track array out
56
57  private:
58   AliEmcalAodTrackFilterTask(const AliEmcalAodTrackFilterTask&);            // not implemented
59   AliEmcalAodTrackFilterTask &operator=(const AliEmcalAodTrackFilterTask&); // not implemented
60
61   ClassDef(AliEmcalAodTrackFilterTask, 1); // Task to filter Aod tracks
62 };
63 #endif