coverity fix
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Kinks / AliResonanceKink.h
CommitLineData
f9afc48d 1#ifndef ALIRESONANCEKINK_H
2#define ALIRESONANCEKINK_H
10eaad41 3
4/* See cxx source for full Copyright notice */
5
6//------------------------------------------------------------------------------
f9afc48d 7// class AliResonanceKink
e3c296cd 8// This task is an example of an analysis task
10eaad41 9// for analysing resonances having one kaon kink
10//Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr)
11//------------------------------------------------------------------------------
be1a7181 12
92adf4f6 13#include "TVector3.h"
be1a7181 14
10eaad41 15class TF1;
92adf4f6 16class TH1D;
17class TH2D;
10eaad41 18class AliESDEvent;
f27d6e67 19class AliESDtrack;
f9afc48d 20class AliESDVertex;
21class AliMCEvent;
22class TList;
23class TString;
10eaad41 24
f9afc48d 25class AliResonanceKink : public TObject {
10eaad41 26 public:
f9afc48d 27
28 enum ResonanceType {kPhi=333, kKstar0=313, kLambda1520=3124};
10eaad41 29
f9afc48d 30 AliResonanceKink();
894840ad 31 AliResonanceKink(Int_t nbins, Float_t nlowx, Float_t nhighx, Int_t netabins, Float_t nloweta, Float_t nupeta, Int_t nptbins, Float_t nlowpt, Float_t nupperpt, Int_t daughter1, Int_t daughter2, Int_t resonancePDG);
f9afc48d 32 virtual ~AliResonanceKink();
10eaad41 33
f9afc48d 34 TList* GetHistogramList();
894840ad 35 void Analyse(AliESDEvent* esd, AliMCEvent* mcEvent);
36 void Analyse(AliESDEvent* esd);
10eaad41 37 Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const ;
38 const AliESDVertex *GetEventVertex(const AliESDEvent* esd) const;
0aa3a5b9 39 void SetDebugLevel(Int_t level) {fDebug = level;}
f9afc48d 40 void SetAnalysisType(TString type) {fAnalysisType=type;}
894840ad 41 TString GetAnalysisType() {return fAnalysisType;}
f9afc48d 42 void SetPDGCodes(Int_t d1, Int_t d2, Int_t res) {fdaughter1pdg=d1; fdaughter2pdg=d2; fresonancePDGcode=res;}
894840ad 43 void InitOutputHistograms(Int_t nbins, Float_t nlowx, Float_t nhighx, Int_t netabins, Float_t nloweta, Float_t nupeta, Int_t nptbins, Float_t nlowpt, Float_t nupperpt);
92adf4f6 44 Bool_t IsAcceptedForKink(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
45 Bool_t IsAcceptedForTrack(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
46 Bool_t IsKink(AliESDEvent *localesd, Int_t kinkIndex, TVector3 trackMom);
47
48 void SetMaxNsigmaToVertex(Float_t maxNSigmaToVertex) {
49 fMaxNSigmaToVertex=maxNSigmaToVertex;
50 }
51 Float_t GetMaxNsigmaToVertex() const {return fMaxNSigmaToVertex;}
52
53 void SetPtTrackCut(Double_t minPtTrackCut) {
54 fMinPtTrackCut=minPtTrackCut;
55 }
56 Double_t GetPtTrackCut() const {return fMinPtTrackCut;}
57
58 void SetMaxDCAxy(Double_t maxDCAxy) {
59 fMaxDCAxy=maxDCAxy;
60 }
61 Double_t GetMaxDCAxy() const {return fMaxDCAxy;}
62
63 void SetMaxDCAzaxis(Double_t maxDCAzaxis) {
64 fMaxDCAzaxis=maxDCAzaxis;
65 }
66 Double_t GetMaxDCAzaxis() const {return fMaxDCAzaxis;}
67
68 void SetMinTPCclusters(Int_t minTPCclusters) {
69 fMinTPCclusters=minTPCclusters;
70 }
71 Int_t GetMinTPCclusters() const {return fMinTPCclusters;}
72
73 void SetMaxChi2PerTPCcluster(Double_t maxChi2PerTPCcluster) {
74 fMaxChi2PerTPCcluster=maxChi2PerTPCcluster;
75 }
76 Double_t GetMaxChi2PerTPCcluster() const {return fMaxChi2PerTPCcluster;}
77
78 void SetMaxCov0(Double_t maxCov0) {
79 fMaxCov0=maxCov0;
80 }
81 Double_t GetMaxCov0() const {return fMaxCov0;}
82
83 void SetMaxCov2(Double_t maxCov2) {
84 fMaxCov2=maxCov2;
85 }
86 Double_t GetMaxCov2() const {return fMaxCov2;}
87
88 void SetMaxCov5(Double_t maxCov5) {
89 fMaxCov5=maxCov5;
90 }
91 Double_t GetMaxCov5() const {return fMaxCov5;}
92
93 void SetMaxCov9(Double_t maxCov9) {
94 fMaxCov9=maxCov9;
95 }
96 Double_t GetMaxCov9() const {return fMaxCov9;}
97
98 void SetMaxCov14(Double_t maxCov14) {
99 fMaxCov14=maxCov14;
100 }
894840ad 101 Double_t GetMaxCov14() const {return fMaxCov14;}
92adf4f6 102
894840ad 103 void SetMinKinkRadius(Float_t minKinkRadius) {
104 fminKinkRadius=minKinkRadius;
105 }
106 Float_t GetMinKinkRadius() const {return fminKinkRadius;}
107
108 void SetMaxKinkRadius(Float_t maxKinkRadius) {
109 fmaxKinkRadius=maxKinkRadius;
110 }
111 Float_t GetMaxKinkRadius() const {return fmaxKinkRadius;}
112
113 void SetQtLimits(Float_t minQt, Float_t maxQt) {fminQt=minQt; fmaxQt=maxQt;}
e3c296cd 114
115 void SetUpperAbsEtaCut(Double_t maxAbsEtaCut) {
116 fmaxAbsEtaCut=maxAbsEtaCut;
117 }
118 Double_t GetUpperAbsEtaCut() const {return fmaxAbsEtaCut;}
894840ad 119
92adf4f6 120 //void SetTPCrefit() {Int_t fTPCrefitFlag=kTRUE;}
121
10eaad41 122 private:
f9afc48d 123
0aa3a5b9 124 Int_t fDebug; // Debug flag
92adf4f6 125 TList *fListOfHistos; // List
126 TH1D *fOpeningAngle; // Opening
127 TH1D *fInvariantMass; // invMass spectrum
128 TH1D *fInvMassTrue; // invMassTrue spectrum
129 TH1D *fPhiBothKinks; // bothKaonsKinks
894840ad 130 Int_t fetabins; // number of eta bins
131 Float_t floweta; // lower limit for eta
132 Float_t fupeta; // upper limit for eta
92adf4f6 133 TH1D *fRecPt; // pT spectrum
134 TH1D *fRecEta; // Eta spectrum
135 TH2D *fRecEtaPt; // Eta pT spectrum
136 TH1D *fSimPt; // pT Sim spectrum
137 TH1D *fSimEta; // Eta Sim spectrum
138 TH2D *fSimEtaPt; // Eta pT Sim spectrum
139 TH1D *fSimPtKink; // pT Sim one kaon kink spectrum
140 TH1D *fSimEtaKink; // Eta Sim one kaon kink spectrum spectrum
141 TH2D *fSimEtaPtKink; // Eta pT Sim one kaon kink spectrum
04c3c355 142 TF1 *f1; //upper limit curve for the decay K->mu
143 TF1 *f2; //upper limit curve for the decay pi->mu
10eaad41 144 TString fAnalysisType;//"ESD" or "MC"
92adf4f6 145 TH1D *fvtxz ; // vtx z component
146 Int_t fNbins; // bins
147 Float_t fLowX;// lowx
148 Float_t fHighX; // high x
04c3c355 149 Int_t fdaughter1pdg; // pdg code of the resonance's first daughter
150 Int_t fdaughter2pdg; // pdg code of the resonance's second daughter
151 Int_t fresonancePDGcode; // pdg code of the resonance
152 Float_t fMaxNSigmaToVertex; // standard cut to select primary tracks
153 Double_t fMinPtTrackCut; // lower pt cut for the tracks
154 Double_t fMaxDCAxy; // impact parameter in the xy plane
155 Double_t fMaxDCAzaxis; // impact parameter in the z axis
156 Int_t fMinTPCclusters; // standard cut for the TPC clusters
157 Double_t fMaxChi2PerTPCcluster; // standard cut for the chi2 of the TPC clusters
158 Double_t fMaxCov0; // standard cut
159 Double_t fMaxCov2; // standard cut
160 Double_t fMaxCov5; // standard cut
161 Double_t fMaxCov9; // standard cut
162 Double_t fMaxCov14; // standard cut
163 TH2D *fInvmassPt; // 2D histo for invariant mass calculation in pt bins (all pairs, ESD)
164 TH2D *fInvmassPtTrue; // 2D histo for invariant mass calculation in pt bins (true pairs, ESD)
165 TH2D *fMCInvmassPt; // 2D histo for invariant mass calculation in pt bins (all pairs, MC)
894840ad 166 TH2D *fMCInvmassPtTrue; // 2D histo for invariant mass calculation in pt bins (true pairs, MC)
167 Float_t fminKinkRadius; // min accepted radius for the kink vertex
168 Float_t fmaxKinkRadius; // max accepted radius for the kink vertex
169 Float_t fminQt; //min Qt cut
170 Float_t fmaxQt; //max Qt cut
171 Int_t fptbins; // number of bins in pt
172 Float_t flowpt; // pt lower limit
173 Float_t fupperpt; // pt upper limit
e3c296cd 174 Double_t fmaxAbsEtaCut; // max abolute eta cut for analysis
92adf4f6 175// Bool_t fTPCrefitFlag;
10eaad41 176
f9afc48d 177 AliResonanceKink(const AliResonanceKink&); // not implemented
178 AliResonanceKink& operator=(const AliResonanceKink&); // not implemented
10eaad41 179
f9afc48d 180 ClassDef(AliResonanceKink, 1); // example of analysis
10eaad41 181};
182
183#endif