1 #ifndef ALICONVERSIONTRACKCUTS_H
2 #define ALICONVERSIONTRACKCUTS_H
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 *
9 #include "AliAODTrack.h"
10 #include "AliESDtrack.h"
11 #include "AliAnalysisCuts.h"
15 class AliConversionTrackCuts : public AliAnalysisCuts {
31 static const char * fgkCutNames[kNCuts];
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);
37 AliConversionTrackCuts();
38 AliConversionTrackCuts(TString name, TString title);
39 ~AliConversionTrackCuts();
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);}
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;}
50 void SetDCAXYmax(Double_t value) {fDCAXYmax = value*value;}
52 void SetSPDminNClusters(Int_t value) {fSPDminNClusters = value;}
53 void SetITSminNClusters(Int_t value) {fITSminNClusters = value;}
54 void SetITSmaxChi2(Double_t value) {fITSmaxChi2 = value;}
56 void SetTPCminNClusters(Int_t value) {fTPCminNClusters = value;}
57 void SetTPCCFoundClusters(Double_t value) {fTPCClusOverFindable = value;}
58 void SetTPCmaxChi2(Double_t value) {fTPCmaxChi2 = value;}
60 void SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}
61 void SetAODTestFilterBit(Int_t value) {fAODTestFilterBit = value;}
63 void SetRequireTPCRefit(Bool_t require) { fRequireTPCRefit = require; }
64 void SetDefaults2010();
66 TList * CreateHistograms();
67 void FillHistograms(Int_t cutIndex, AliVTrack * track, Bool_t passed);
68 virtual void Print(const Option_t *option = "") const;
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
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
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
86 Double_t fDCAXYmax; // maximum xy value for dca
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
92 Int_t fTPCminNClusters; // minimum number of required clusters in TPC
93 Double_t fTPCClusOverFindable; // minimum number of required clusters in TPC
94 Double_t fTPCmaxChi2; // maximum chi2 / number of clusters in TPC
95 Int_t fAODTestFilterBit; // test filter bit for AOD tracks
96 Bool_t fRequireTPCRefit; // Require TPC refit
100 TH2F * fhPhiPt;//histo
101 TH2F * fhdcaxyPt;//histo
102 TH2F * fhdcazPt;//histo
103 TH2F * fhnclpt;//histo
104 TH2F * fhnclsfpt;//histo
107 // TAxisArr fCutVarAxes[kNCuts];
108 // TAxisArr fVarAxes[kNVar];
112 AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
113 AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented
115 ClassDef(AliConversionTrackCuts,1)
121 //__________________________________________________________________________________________________
122 inline void AliConversionTrackCuts::SetDefaults2010()
125 // Default settings for cuts used in 2010
130 SetTPCminNClusters(70);
132 SetRejectKinkDaughters();