]>
Commit | Line | Data |
---|---|---|
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 | 15 | class TF1; |
92adf4f6 | 16 | class TH1D; |
17 | class TH2D; | |
10eaad41 | 18 | class AliESDEvent; |
f27d6e67 | 19 | class AliESDtrack; |
f9afc48d | 20 | class AliESDVertex; |
21 | class AliMCEvent; | |
22 | class TList; | |
23 | class TString; | |
10eaad41 | 24 | |
f9afc48d | 25 | class 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 |