]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliConversionTrackCuts.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliConversionTrackCuts.h
1 #ifndef ALICONVERSIONTRACKCUTS_H
2 #define ALICONVERSIONTRACKCUTS_H
3
4 // Class handling all kinds of selection cuts for Gamma Conversion analysis
5 // Authors: (this code is mostly copied from AliRsnTrackQuality) adapted by Svein Lindal        *
6
7 class TH2F;
8 class AliESDtrackCuts;
9 class TList;
10 class AliVEvent;
11 #include "AliAODTrack.h"
12 #include "AliESDtrack.h"
13 #include "AliAnalysisCuts.h"
14
15 using namespace std;
16
17 class AliConversionTrackCuts : public AliAnalysisCuts {
18         
19 public:
20   
21   enum CTCuts_t {
22     kPreCut = 0,
23     kCutNcls,
24     kCutNclsFrac,
25     kCutNDF,
26     kCutKinc,
27     kCutDCAZ,
28     kCutDCAXY,
29     kCutTPCRefit,
30     kNCuts
31   };
32
33   //  enum trackVal {
34   //    kPt = 0, 
35   //    kPhi,
36   //    kEta,
37   //    kNVar
38   //  };
39   static const char * fgkCutNames[kNCuts];
40
41   Bool_t IsSelected(TObject * object ); 
42   Bool_t IsSelected(TList * /*list*/) { return kFALSE; }
43   Bool_t AcceptTrack(AliAODTrack * track);
44   Bool_t AcceptTrack(AliESDtrack * track);
45   Bool_t GetDCA(const AliAODTrack * track, Double_t dca[2]);
46   Bool_t GetDCA(const AliESDtrack * track, Double_t dca[2]);
47
48
49   void DeleteTracks() { fOwnedTracks.Delete(); }
50   void FillDCAHist(Float_t dcaz, Float_t dcaxy, AliVTrack * track);
51   AliConversionTrackCuts();
52   AliConversionTrackCuts(TString name, TString title);
53   ~AliConversionTrackCuts();
54   
55   void      SetEsdTrackCuts(AliESDtrackCuts * trackcuts) { fEsdTrackCuts = trackcuts; }
56   void      SetDCAZmax(Double_t value)  { fDCAZmax = value*value; }
57   void      SetDCAXYmax(Double_t value) { fDCAXYmax = value*value; }
58   void      SetFilterBit(Int_t value)   { fFilterBit = value; }
59   void      SetEvent(AliVEvent * event)  { fEvent = event; }
60
61   TList * CreateHistograms();
62   void FillHistograms(Int_t cutIndex, AliVTrack * track);
63   virtual void   Print(const Option_t *option = "") const;
64
65 protected :
66
67   void DefineESDCuts();
68
69
70   AliESDtrackCuts * fEsdTrackCuts; //main cut
71   AliESDtrackCuts * fEsdTrackCutsExtra1; //global tracks cut
72   AliESDtrackCuts * fEsdTrackCutsExtra2; //others
73   
74   AliVEvent * fEvent;
75
76
77
78   Int_t fFilterBit;
79   
80   Double_t fDCAZmax;                // maximum value for longitudinal DCA
81   Double_t fDCAXYmax;                  // maximum xy value for dca
82   
83   TObjArray fOwnedTracks;
84
85   Bool_t fInitialized;
86
87   TH2F * fhPhi;
88   //TH2F * fhPt;
89   //TH2F * fhPhiPt;
90   TH2F * fhdcaxyPt;
91   TH2F * fhdcazPt;
92   TH2F * fhdca;
93   TH2F * fhnclpt;
94   TH2F * fhnclsfpt;
95   TH2F * fhEtaPhi;
96   
97   TList * fHistograms;
98
99   AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
100   AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented
101
102   ClassDef(AliConversionTrackCuts,4)
103 };
104
105 #endif