]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalAodTrackFilterTask.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalAodTrackFilterTask.h
1 #ifndef ALIEMCALAODTRACKFILTERTASK_H
2 #define ALIEMCALAODTRACKFILTERTASK_H
3
4 class TClonesArray;
5
6 #include <TF1.h>
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  = new TF1("eff", "[0]", 0, 500); fTrackEfficiency->FixParameter(0,eff); }
28   void               SetTrackEfficiency(TF1* eff)                         { fTrackEfficiency  = eff  ; }
29
30  protected:
31   void               UserCreateOutputObjects();
32   void               UserExec(Option_t *option);
33
34   Int_t              fAODfilterBits[2];     // AOD track filter bit map
35   TString            fTracksOutName;        // name of output track array
36   TString            fTracksInName;         // name of input track array
37   Bool_t             fIncludeNoITS;         // includes tracks with failed ITS refit
38   Double_t           fCutMaxFrShTPCClus;    // max fraction of shared TPC clusters
39   Bool_t             fUseNegativeLabels;    // whether or not should use negative MC labels
40   Bool_t             fIsMC;                 // whether it is a MC event or not
41   Bool_t             fDoPropagation;        // if true then propagate all hybrid tracks to EMCal surface
42   Bool_t             fAttemptProp;          // if true then attempt to propagate if not done yet
43   Bool_t             fAttemptPropMatch;     // if true then attempt to propagate if not done yet but IsEMCAL is true
44   Double_t           fDist;                 // distance to surface (440cm default)
45   TF1               *fTrackEfficiency;      // track efficiency
46   TClonesArray      *fTracksIn;             //!track array in
47   TClonesArray      *fTracksOut;            //!track array out
48
49  private:
50   AliEmcalAodTrackFilterTask(const AliEmcalAodTrackFilterTask&);            // not implemented
51   AliEmcalAodTrackFilterTask &operator=(const AliEmcalAodTrackFilterTask&); // not implemented
52
53   ClassDef(AliEmcalAodTrackFilterTask, 4); // Task to filter Aod tracks
54 };
55 #endif