]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliConversionTrackCuts.h
moving convcorr files to gammaconv dir
[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;
8class TList;
2dd6ec26 9#include "AliAODTrack.h"
10#include "AliESDtrack.h"
11#include "AliAnalysisCuts.h"
12
13using namespace std;
14
15class AliConversionTrackCuts : public AliAnalysisCuts {
16
17public:
4267afec 18
19 enum CTCuts_t {
20 kPreCut = -1,
21 kCutNcls,
22 kCutNclsFrac,
23 kCutNDF,
24 kCutKinc,
25 kCutDCAZ,
26 kCutDCAXY,
27 kCutTPCRefit,
28 kNCuts
29 };
30
31 static const char * fgkCutNames[kNCuts];
32
33 Bool_t IsSelected(TObject * object ) { return AcceptTrack(dynamic_cast<AliAODTrack*>(object)); }
34 Bool_t IsSelected(TList * /*list*/) { return kFALSE; }
35 Bool_t AcceptTrack(AliAODTrack * track);
2dd6ec26 36
37 AliConversionTrackCuts();
38 AliConversionTrackCuts(TString name, TString title);
5c76942e 39 ~AliConversionTrackCuts();
2dd6ec26 40
41 void AddStatusFlag(ULong_t f, Bool_t on) {if (on) fFlagsOn = fFlagsOn | f; else fFlagsOff = fFlagsOff | f;}
42 void SetStatusFlags(ULong_t f, Bool_t on) {if (on) fFlagsOn = f; else fFlagsOff = f;}
43 void SetPtRange(Double_t a, Double_t b) {fPt[0] = TMath::Min(a, b); fPt[1] = TMath::Max(a, b);}
44 void SetEtaRange(Double_t a, Double_t b) {fEta[0] = TMath::Min(a, b); fEta[1] = TMath::Max(a, b);}
45
46 void SetDCARPtFormula(const char *formula) {fDCARptFormula = formula; fDCARfixed = kFALSE;}
47 void SetDCARmax(Double_t value) {fDCARmax = value; fDCARptFormula = ""; fDCARfixed = kTRUE;}
48 void SetDCAZPtFormula(const char *formula) {fDCAZptFormula = formula; fDCAZfixed = kFALSE;}
49 void SetDCAZmax(Double_t value) {fDCAZmax = value; fDCAZptFormula = ""; fDCAZfixed = kTRUE;}
27573262 50 void SetDCAXYmax(Double_t value) {fDCAXYmax = value*value;}
2dd6ec26 51
52 void SetSPDminNClusters(Int_t value) {fSPDminNClusters = value;}
53 void SetITSminNClusters(Int_t value) {fITSminNClusters = value;}
54 void SetITSmaxChi2(Double_t value) {fITSmaxChi2 = value;}
55
56 void SetTPCminNClusters(Int_t value) {fTPCminNClusters = value;}
4267afec 57 void SetTPCCFoundClusters(Double_t value) {fTPCClusOverFindable = value;}
2dd6ec26 58 void SetTPCmaxChi2(Double_t value) {fTPCmaxChi2 = value;}
59
60 void SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}
61 void SetAODTestFilterBit(Int_t value) {fAODTestFilterBit = value;}
4267afec 62
63 void SetRequireTPCRefit(Bool_t require) { fRequireTPCRefit = require; }
2dd6ec26 64 void SetDefaults2010();
65
5c76942e 66 TList * CreateHistograms();
4267afec 67 void FillHistograms(Int_t cutIndex, AliVTrack * track, Bool_t passed);
2dd6ec26 68 virtual void Print(const Option_t *option = "") const;
69
70protected :
71
72 ULong_t fFlagsOn; // status flags which must be ON (used AliESDtrack ones, connected with '|')
73 ULong_t fFlagsOff; // status flags which must be OFF (used AliESDtrack ones, connected with '|')
74 Double_t fPt[2]; // pt range
75 Double_t fEta[2]; // eta range
76 Bool_t fRejectKinkDaughters; // switch to kTRUE if daughters of kinks must be rejected
77
78 Bool_t fDCARfixed; // flag to switch between fixed and pt-dependent DCA cut
79 TString fDCARptFormula; // expression to compute transverse DCA sigma w.r. to pt
80 Double_t fDCARmax; // maximum value for transverse DCA
81
82 Bool_t fDCAZfixed; // flag to switch between fixed and pt-dependent DCA cut
83 TString fDCAZptFormula; // expression to compute longitudinal DCA sigma w.r. to pt
84 Double_t fDCAZmax; // maximum value for longitudinal DCA
85
4267afec 86 Double_t fDCAXYmax; // maximum xy value for dca
27573262 87
2dd6ec26 88 Int_t fSPDminNClusters; // minimum number of required clusters in SPD
89 Int_t fITSminNClusters; // minimum number of required clusters in ITS
90 Double_t fITSmaxChi2; // maximum chi2 / number of clusters in ITS
91
92 Int_t fTPCminNClusters; // minimum number of required clusters in TPC
4267afec 93 Double_t fTPCClusOverFindable; // minimum number of required clusters in TPC
2dd6ec26 94 Double_t fTPCmaxChi2; // maximum chi2 / number of clusters in TPC
95 Int_t fAODTestFilterBit; // test filter bit for AOD tracks
4267afec 96 Bool_t fRequireTPCRefit; // Require TPC refit
97
98 TH2F * fhPhi; //histo
99 TH2F * fhPt; //histo
100 TH2F * fhPhiPt;//histo
101 TH2F * fhdcaxyPt;//histo
102 TH2F * fhdcazPt;//histo
103 TH2F * fhnclpt;//histo
104 TH2F * fhnclsfpt;//histo
105
106 // TAxis fCutAxis;
107 // TAxisArr fCutVarAxes[kNCuts];
108 // TAxisArr fVarAxes[kNVar];
2dd6ec26 109
5c76942e 110 TList * fHistograms;
2dd6ec26 111
112 AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
113 AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented
114
115 ClassDef(AliConversionTrackCuts,1)
116
117
118};
119
120
121//__________________________________________________________________________________________________
122inline void AliConversionTrackCuts::SetDefaults2010()
123{
124//
125// Default settings for cuts used in 2010
126//
127
27573262 128 SetDCAZmax(3.0);
129 SetDCAXYmax(2.5);
2dd6ec26 130 SetTPCminNClusters(70);
4267afec 131 SetTPCmaxChi2(12.0);
2dd6ec26 132 SetRejectKinkDaughters();
2dd6ec26 133}
134
135#endif