Apply corrections
[u/mrichter/AliRoot.git] / PWG2 / KINK / AliResonanceKinkLikeSign.h
CommitLineData
10eaad41 1#ifndef ALIRESONANCEKINKLIKESIGN_H
2#define ALIRESONANCEKINKLIKESIGN_H
3
4/* See cxx source for full Copyright notice */
5
6//--------------------------------------------------------------------------------
7// class AliResonanceKinkLikeSign
8// This task is an example of an analysis task
9// for producing a like-sign background for resonances having at least one
10// kaon-kink in their decay products.
11// Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr)
12//---------------------------------------------------------------------------------
be1a7181 13
14#include "AliAnalysisTaskSE.h"
15#include "TVector3.h"
16
10eaad41 17class TF1;
be1a7181 18class TH1D;
19class TH2D;
20class AliESDtrack;
21class AliESDVertex;
10eaad41 22class AliESDEvent;
10eaad41 23
24class AliResonanceKinkLikeSign : public AliAnalysisTaskSE {
25 public:
be1a7181 26 AliResonanceKinkLikeSign(const char *name = "AliResonanceKinkLikeSign");
10eaad41 27 virtual ~AliResonanceKinkLikeSign() {}
28
be1a7181 29 virtual void UserCreateOutputObjects();
30 virtual void UserExec(Option_t *option);
31 virtual void Terminate(Option_t *);
10eaad41 32
be1a7181 33 void SetPDGCodes(Int_t d1, Int_t d2) {fdaughter1pdg=d1; fdaughter2pdg=d2;}
894840ad 34 void SetHistoSettings(Int_t nbins, Float_t nlowx, Float_t nhighx, Int_t nptbins, Float_t nlowpt, Float_t nupperpt) {fnbins=nbins; fnlowx=nlowx; fnhighx=nhighx; fptbins=nptbins; flowpt=nlowpt; fupperpt=nupperpt;}
35 void SetEtaLimits(Float_t nloweta, Float_t nuppereta) {floweta=nloweta; fuppereta=nuppereta;}
10eaad41 36 Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const ;
37 const AliESDVertex *GetEventVertex(const AliESDEvent* esd) const;
be1a7181 38 void SetDebugLevel(Int_t level) {fDebug = level;}
39 Bool_t IsAcceptedForKink(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
40 Bool_t IsAcceptedForTrack(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
41 Bool_t IsKink(AliESDEvent *localesd, Int_t kinkIndex, TVector3 trackMom);
42
43 void SetMaxNsigmaToVertex(Float_t maxNSigmaToVertex) {
44 fMaxNSigmaToVertex=maxNSigmaToVertex;
45 }
46 Float_t GetMaxNsigmaToVertex() const {return fMaxNSigmaToVertex;}
47
48 void SetPtTrackCut(Double_t minPtTrackCut) {
49 fMinPtTrackCut=minPtTrackCut;
50 }
51 Double_t GetPtTrackCut() const {return fMinPtTrackCut;}
52
53 void SetMaxDCAxy(Double_t maxDCAxy) {
54 fMaxDCAxy=maxDCAxy;
55 }
56 Double_t GetMaxDCAxy() const {return fMaxDCAxy;}
57
58 void SetMaxDCAzaxis(Double_t maxDCAzaxis) {
59 fMaxDCAzaxis=maxDCAzaxis;
60 }
61 Double_t GetMaxDCAzaxis() const {return fMaxDCAzaxis;}
62
63 void SetMinTPCclusters(Int_t minTPCclusters) {
64 fMinTPCclusters=minTPCclusters;
65 }
66 Int_t GetMinTPCclusters() const {return fMinTPCclusters;}
67
68 void SetMaxChi2PerTPCcluster(Double_t maxChi2PerTPCcluster) {
69 fMaxChi2PerTPCcluster=maxChi2PerTPCcluster;
70 }
71 Double_t GetMaxChi2PerTPCcluster() const {return fMaxChi2PerTPCcluster;}
72
73 void SetMaxCov0(Double_t maxCov0) {
74 fMaxCov0=maxCov0;
75 }
76 Double_t GetMaxCov0() const {return fMaxCov0;}
77
78 void SetMaxCov2(Double_t maxCov2) {
79 fMaxCov2=maxCov2;
80 }
81 Double_t GetMaxCov2() const {return fMaxCov2;}
82
83 void SetMaxCov5(Double_t maxCov5) {
84 fMaxCov5=maxCov5;
85 }
86 Double_t GetMaxCov5() const {return fMaxCov5;}
87
88 void SetMaxCov9(Double_t maxCov9) {
89 fMaxCov9=maxCov9;
90 }
91 Double_t GetMaxCov9() const {return fMaxCov9;}
92
93 void SetMaxCov14(Double_t maxCov14) {
94 fMaxCov14=maxCov14;
95 }
894840ad 96 Double_t GetMaxCov14() const {return fMaxCov14;}
97
98 void SetMinKinkRadius(Float_t minKinkRadius) {
99 fminKinkRadius=minKinkRadius;
100 }
101 Float_t GetMinKinkRadius() const {return fminKinkRadius;}
102
103 void SetMaxKinkRadius(Float_t maxKinkRadius) {
104 fmaxKinkRadius=maxKinkRadius;
105 }
106 Float_t GetMaxKinkRadius() const {return fmaxKinkRadius;}
107
108 void SetQtLimits(Float_t minQt, Float_t maxQt) {fminQt=minQt; fmaxQt=maxQt;}
10eaad41 109
e3c296cd 110 void SetUpperAbsEtaCut(Double_t maxAbsEtaCut) {
111 fmaxAbsEtaCut=maxAbsEtaCut;
112 }
113 Double_t GetUpperAbsEtaCut() const {return fmaxAbsEtaCut;}
114
10eaad41 115 private:
be1a7181 116 Int_t fDebug; // Debug flag
be1a7181 117 TList *fListOfHistos; // List
04c3c355 118 TF1 *f1; //upper limit curve for the decay K->mu
119 TF1 *f2; //upper limit curve for the decay pi->mu
be1a7181 120 TH1D *fPosKaonLikeSign; // negative spectrum
121 TH2D *fLikeSignInvmassPt; // negative spectrum
122 Float_t fMaxNSigmaToVertex; // standard cut to select primary tracks
123 Double_t fMinPtTrackCut; // lower pt cut for the tracks
124 Double_t fMaxDCAxy; // impact parameter in the xy plane
125 Double_t fMaxDCAzaxis; // impact parameter in the z axis
126 Int_t fMinTPCclusters; // standard cut for the TPC clusters
127 Double_t fMaxChi2PerTPCcluster; // standard cut for the chi2 of the TPC clusters
128 Double_t fMaxCov0; // standard cut
129 Double_t fMaxCov2; // standard cut
130 Double_t fMaxCov5; // standard cut
131 Double_t fMaxCov9; // standard cut
132 Double_t fMaxCov14; // standard cut
133 Int_t fdaughter1pdg; // pdg code of the resonance's first daughter
134 Int_t fdaughter2pdg; // pdg code of the resonance's second daughter
135 Int_t fnbins; // Inv mass histo number of bins
136 Float_t fnlowx; // Inv mass histo lower limit
137 Float_t fnhighx; // Inv mass histo upper limit
894840ad 138 Float_t floweta; // lower eta limit
139 Float_t fuppereta; // upper eta limit
140 Float_t fminKinkRadius; // min accepted radius for the kink vertex
141 Float_t fmaxKinkRadius; // max accepted radius for the kink vertex
142 Float_t fminQt; //min Qt cut
143 Float_t fmaxQt; //max Qt cut
144 Int_t fptbins; // number of bins in pt
145 Float_t flowpt; // pt lower limit
146 Float_t fupperpt; // pt upper limit
e3c296cd 147 Double_t fmaxAbsEtaCut; // max abolute eta cut for analysis
148
10eaad41 149 AliResonanceKinkLikeSign(const AliResonanceKinkLikeSign&); // not implemented
150 AliResonanceKinkLikeSign& operator=(const AliResonanceKinkLikeSign&); // not implemented
151
152 ClassDef(AliResonanceKinkLikeSign, 1); // example of analysis
153};
154
155#endif