]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalAodTrackFilterTask.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalAodTrackFilterTask.h
1 #ifndef ALIEMCALAODTRACKFILTERTASK_H
2 #define ALIEMCALAODTRACKFILTERTASK_H
3
4 // $Id$
5
6 class TClonesArray;
7
8 #include "AliAnalysisTaskSE.h"
9
10 class AliEmcalAodTrackFilterTask : public AliAnalysisTaskSE {
11  public:
12   AliEmcalAodTrackFilterTask();
13   AliEmcalAodTrackFilterTask(const char *name);
14   virtual ~AliEmcalAodTrackFilterTask();
15
16   void               SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0)         { fAODfilterBits[0]  = b0  ; fAODfilterBits[1] = b1  ; }
17   void               SetAttemptProp(Bool_t b)                             { fAttemptProp       = b   ; }
18   void               SetAttemptPropMatch(Bool_t b)                        { fAttemptPropMatch  = b   ; }
19   void               SetCutMaxFractionSharedTPCClusters(Double_t c = 0.4) { fCutMaxFrShTPCClus = c   ; }
20   void               SetDist(Double_t d)                                  { fDist              = d   ; }
21   void               SetDoPropagation(Bool_t b)                           { fDoPropagation     = b   ; }
22   void               SetIncludeNoITS(Bool_t f)                            { fIncludeNoITS      = f   ; }
23   void               SetMC(Bool_t b)                                      { fIsMC              = b   ; }
24   void               SetTracksInName(const char *name)                    { fTracksInName      = name; }
25   void               SetTracksOutName(const char *name)                   { fTracksOutName     = name; }
26   void               SetUseNegativeLabels(Bool_t f)                       { fUseNegativeLabels = f   ; }
27   void               SetTrackEfficiency(Double_t eff = 0.95)              { fTrackEfficiency   = eff ; }
28
29  protected:
30   void               UserCreateOutputObjects();
31   void               UserExec(Option_t *option);
32
33   Int_t              fAODfilterBits[2];     // AOD track filter bit map
34   TString            fTracksOutName;        // name of output track array
35   TString            fTracksInName;         // name of input track array
36   Bool_t             fIncludeNoITS;         // includes tracks with failed ITS refit
37   Double_t           fCutMaxFrShTPCClus;    // max fraction of shared TPC clusters
38   Bool_t             fUseNegativeLabels;    // whether or not should use negative MC labels
39   Bool_t             fIsMC;                 // whether it is a MC event or not
40   Bool_t             fDoPropagation;        // if true then propagate all hybrid tracks to EMCal surface
41   Bool_t             fAttemptProp;          // if true then attempt to propagate if not done yet
42   Bool_t             fAttemptPropMatch;     // if true then attempt to propagate if not done yet but IsEMCAL is true
43   Double_t           fDist;                 // distance to surface (440cm default)
44   Double_t           fTrackEfficiency;      // track efficiency
45   TClonesArray      *fTracksIn;             //!track array in
46   TClonesArray      *fTracksOut;            //!track array out
47
48  private:
49   AliEmcalAodTrackFilterTask(const AliEmcalAodTrackFilterTask&);            // not implemented
50   AliEmcalAodTrackFilterTask &operator=(const AliEmcalAodTrackFilterTask&); // not implemented
51
52   ClassDef(AliEmcalAodTrackFilterTask, 3); // Task to filter Aod tracks
53 };
54 #endif