]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliConversionTrackCuts.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliConversionTrackCuts.h
CommitLineData
2dd6ec26 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
5c76942e 7class TH2F;
439cf020 8class AliESDtrackCuts;
5c76942e 9class TList;
99d49b30 10class AliVEvent;
839f7ade 11class THn;
2dd6ec26 12#include "AliAODTrack.h"
13#include "AliESDtrack.h"
14#include "AliAnalysisCuts.h"
15
16using namespace std;
17
18class AliConversionTrackCuts : public AliAnalysisCuts {
19
20public:
4267afec 21
22 enum CTCuts_t {
99d49b30 23 kPreCut = 0,
24 kCutNcls,
25 kCutNclsFrac,
26 kCutNDF,
27 kCutKinc,
28 kCutDCAZ,
29 kCutDCAXY,
30 kCutTPCRefit,
31 kNCuts
4267afec 32 };
33
99d49b30 34 // enum trackVal {
35 // kPt = 0,
36 // kPhi,
37 // kEta,
38 // kNVar
39 // };
4267afec 40 static const char * fgkCutNames[kNCuts];
41
439cf020 42 Bool_t IsSelected(TObject * object );
4267afec 43 Bool_t IsSelected(TList * /*list*/) { return kFALSE; }
44 Bool_t AcceptTrack(AliAODTrack * track);
439cf020 45 Bool_t AcceptTrack(AliESDtrack * track);
266ffce4 46 Bool_t GetDCA(const AliAODTrack * track, Double_t dca[2]);
a8515f2e 47 Bool_t GetDCA(const AliESDtrack * track, Double_t dca[2]);
266ffce4 48
99d49b30 49
50 void DeleteTracks() { fOwnedTracks.Delete(); }
439cf020 51 void FillDCAHist(Float_t dcaz, Float_t dcaxy, AliVTrack * track);
2dd6ec26 52 AliConversionTrackCuts();
53 AliConversionTrackCuts(TString name, TString title);
5c76942e 54 ~AliConversionTrackCuts();
2dd6ec26 55
99d49b30 56 void SetEsdTrackCuts(AliESDtrackCuts * trackcuts) { fEsdTrackCuts = trackcuts; }
a8515f2e 57 void SetDCAZmax(Double_t value) { fDCAZmax = value*value; }
58 void SetDCAXYmax(Double_t value) { fDCAXYmax = value*value; }
99d49b30 59 void SetFilterBit(Int_t value) { fFilterBit = value; }
60 void SetEvent(AliVEvent * event) { fEvent = event; }
839f7ade 61 void CreateTrackEff(Bool_t create = kTRUE) { fkCreateTrackEff = create; }
4267afec 62
5c76942e 63 TList * CreateHistograms();
99d49b30 64 void FillHistograms(Int_t cutIndex, AliVTrack * track);
2dd6ec26 65 virtual void Print(const Option_t *option = "") const;
66
67protected :
68
99d49b30 69 void DefineESDCuts();
2dd6ec26 70
2dd6ec26 71
99d49b30 72 AliESDtrackCuts * fEsdTrackCuts; //main cut
73 AliESDtrackCuts * fEsdTrackCutsExtra1; //global tracks cut
74 AliESDtrackCuts * fEsdTrackCutsExtra2; //others
75
76 AliVEvent * fEvent;
2dd6ec26 77
27573262 78
2dd6ec26 79
99d49b30 80 Int_t fFilterBit;
81
82 Double_t fDCAZmax; // maximum value for longitudinal DCA
83 Double_t fDCAXYmax; // maximum xy value for dca
84
85 TObjArray fOwnedTracks;
4267afec 86
99d49b30 87 Bool_t fInitialized;
439cf020 88
92efd725 89 TH2F * fhPhi;
266ffce4
SL
90 //TH2F * fhPt;
91 //TH2F * fhPhiPt;
92efd725 92 TH2F * fhdcaxyPt;
93 TH2F * fhdcazPt;
439cf020 94 TH2F * fhdca;
92efd725 95 TH2F * fhnclpt;
96 TH2F * fhnclsfpt;
266ffce4 97 TH2F * fhEtaPhi;
839f7ade 98 THn * fhTrackEff;
99 Bool_t fkCreateTrackEff;
100
5c76942e 101 TList * fHistograms;
2dd6ec26 102
103 AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
104 AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented
105
839f7ade 106 ClassDef(AliConversionTrackCuts,5)
2dd6ec26 107};
108
2dd6ec26 109#endif