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 *
10 #include "AliAODTrack.h"
11 #include "AliESDtrack.h"
12 #include "AliAnalysisCuts.h"
16 class AliConversionTrackCuts : public AliAnalysisCuts {
20 Bool_t IsSelected(TObject * object, AliAODEvent * event) { return AcceptTrack(dynamic_cast<AliAODTrack*>(object), event); }
21 Bool_t IsSelected(TList * list) { return kFALSE; }
22 Bool_t AcceptTrack(AliAODTrack * track, AliAODEvent* event);
24 AliConversionTrackCuts();
25 AliConversionTrackCuts(TString name, TString title);
26 ~AliConversionTrackCuts();
28 void AddStatusFlag(ULong_t f, Bool_t on) {if (on) fFlagsOn = fFlagsOn | f; else fFlagsOff = fFlagsOff | f;}
29 void SetStatusFlags(ULong_t f, Bool_t on) {if (on) fFlagsOn = f; else fFlagsOff = f;}
30 void SetPtRange(Double_t a, Double_t b) {fPt[0] = TMath::Min(a, b); fPt[1] = TMath::Max(a, b);}
31 void SetEtaRange(Double_t a, Double_t b) {fEta[0] = TMath::Min(a, b); fEta[1] = TMath::Max(a, b);}
33 void SetDCARPtFormula(const char *formula) {fDCARptFormula = formula; fDCARfixed = kFALSE;}
34 void SetDCARmax(Double_t value) {fDCARmax = value; fDCARptFormula = ""; fDCARfixed = kTRUE;}
35 void SetDCAZPtFormula(const char *formula) {fDCAZptFormula = formula; fDCAZfixed = kFALSE;}
36 void SetDCAZmax(Double_t value) {fDCAZmax = value; fDCAZptFormula = ""; fDCAZfixed = kTRUE;}
37 void SetDCAXYmax(Double_t value) {fDCAXYmax = value*value;}
39 void SetSPDminNClusters(Int_t value) {fSPDminNClusters = value;}
40 void SetITSminNClusters(Int_t value) {fITSminNClusters = value;}
41 void SetITSmaxChi2(Double_t value) {fITSmaxChi2 = value;}
43 void SetTPCminNClusters(Int_t value) {fTPCminNClusters = value;}
44 void SetTPCmaxChi2(Double_t value) {fTPCmaxChi2 = value;}
46 void SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}
47 void SetAODTestFilterBit(Int_t value) {fAODTestFilterBit = value;}
48 void SetDefaults2010();
50 TList * CreateHistograms();
51 void FillHistograms(Int_t cutIndex, AliVTrack * track);
52 virtual void Print(const Option_t *option = "") const;
56 ULong_t fFlagsOn; // status flags which must be ON (used AliESDtrack ones, connected with '|')
57 ULong_t fFlagsOff; // status flags which must be OFF (used AliESDtrack ones, connected with '|')
58 Double_t fPt[2]; // pt range
59 Double_t fEta[2]; // eta range
60 Bool_t fRejectKinkDaughters; // switch to kTRUE if daughters of kinks must be rejected
62 Bool_t fDCARfixed; // flag to switch between fixed and pt-dependent DCA cut
63 TString fDCARptFormula; // expression to compute transverse DCA sigma w.r. to pt
64 Double_t fDCARmax; // maximum value for transverse DCA
66 Bool_t fDCAZfixed; // flag to switch between fixed and pt-dependent DCA cut
67 TString fDCAZptFormula; // expression to compute longitudinal DCA sigma w.r. to pt
68 Double_t fDCAZmax; // maximum value for longitudinal DCA
72 Int_t fSPDminNClusters; // minimum number of required clusters in SPD
73 Int_t fITSminNClusters; // minimum number of required clusters in ITS
74 Double_t fITSmaxChi2; // maximum chi2 / number of clusters in ITS
76 Int_t fTPCminNClusters; // minimum number of required clusters in TPC
77 Double_t fTPCmaxChi2; // maximum chi2 / number of clusters in TPC
78 Int_t fAODTestFilterBit; // test filter bit for AOD tracks
84 AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
85 AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented
87 ClassDef(AliConversionTrackCuts,1)
93 //__________________________________________________________________________________________________
94 inline void AliConversionTrackCuts::SetDefaults2010()
97 // Default settings for cuts used in 2010
102 SetTPCminNClusters(70);
104 SetRejectKinkDaughters();