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 |
10eaad41 |
8 | // This task is an example of an analysis task |
9 | // for analysing resonances having one kaon kink |
10 | //Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr) |
11 | //------------------------------------------------------------------------------ |
92adf4f6 |
12 | #include "TVector3.h" |
10eaad41 |
13 | class TF1; |
92adf4f6 |
14 | class TH1D; |
15 | class TH2D; |
10eaad41 |
16 | class AliESDEvent; |
f27d6e67 |
17 | class AliESDtrack; |
f9afc48d |
18 | class AliESDVertex; |
19 | class AliMCEvent; |
20 | class TList; |
21 | class TString; |
10eaad41 |
22 | |
f9afc48d |
23 | class AliResonanceKink : public TObject { |
10eaad41 |
24 | public: |
f9afc48d |
25 | |
26 | enum ResonanceType {kPhi=333, kKstar0=313, kLambda1520=3124}; |
27 | enum DaughterType {kdaughterPion=211, kdaughterKaon=321, kdaughterProton=2212}; |
10eaad41 |
28 | |
f9afc48d |
29 | AliResonanceKink(); |
30 | AliResonanceKink(Int_t nbins, Float_t nlowx, Float_t nhighx, Int_t daughter1, Int_t daughter2, Int_t resonancePDG); |
31 | virtual ~AliResonanceKink(); |
10eaad41 |
32 | |
f9afc48d |
33 | TList* GetHistogramList(); |
34 | void Analyse(AliESDEvent* esd, AliMCEvent* mcEvent); |
10eaad41 |
35 | Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const ; |
36 | const AliESDVertex *GetEventVertex(const AliESDEvent* esd) const; |
0aa3a5b9 |
37 | void SetDebugLevel(Int_t level) {fDebug = level;} |
f9afc48d |
38 | void SetAnalysisType(TString type) {fAnalysisType=type;} |
39 | void SetPDGCodes(Int_t d1, Int_t d2, Int_t res) {fdaughter1pdg=d1; fdaughter2pdg=d2; fresonancePDGcode=res;} |
40 | void InitOutputHistograms(Int_t nbins, Float_t nlowx, Float_t nhighx); |
92adf4f6 |
41 | Bool_t IsAcceptedForKink(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack); |
42 | Bool_t IsAcceptedForTrack(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack); |
43 | Bool_t IsKink(AliESDEvent *localesd, Int_t kinkIndex, TVector3 trackMom); |
44 | |
45 | void SetMaxNsigmaToVertex(Float_t maxNSigmaToVertex) { |
46 | fMaxNSigmaToVertex=maxNSigmaToVertex; |
47 | } |
48 | Float_t GetMaxNsigmaToVertex() const {return fMaxNSigmaToVertex;} |
49 | |
50 | void SetPtTrackCut(Double_t minPtTrackCut) { |
51 | fMinPtTrackCut=minPtTrackCut; |
52 | } |
53 | Double_t GetPtTrackCut() const {return fMinPtTrackCut;} |
54 | |
55 | void SetMaxDCAxy(Double_t maxDCAxy) { |
56 | fMaxDCAxy=maxDCAxy; |
57 | } |
58 | Double_t GetMaxDCAxy() const {return fMaxDCAxy;} |
59 | |
60 | void SetMaxDCAzaxis(Double_t maxDCAzaxis) { |
61 | fMaxDCAzaxis=maxDCAzaxis; |
62 | } |
63 | Double_t GetMaxDCAzaxis() const {return fMaxDCAzaxis;} |
64 | |
65 | void SetMinTPCclusters(Int_t minTPCclusters) { |
66 | fMinTPCclusters=minTPCclusters; |
67 | } |
68 | Int_t GetMinTPCclusters() const {return fMinTPCclusters;} |
69 | |
70 | void SetMaxChi2PerTPCcluster(Double_t maxChi2PerTPCcluster) { |
71 | fMaxChi2PerTPCcluster=maxChi2PerTPCcluster; |
72 | } |
73 | Double_t GetMaxChi2PerTPCcluster() const {return fMaxChi2PerTPCcluster;} |
74 | |
75 | void SetMaxCov0(Double_t maxCov0) { |
76 | fMaxCov0=maxCov0; |
77 | } |
78 | Double_t GetMaxCov0() const {return fMaxCov0;} |
79 | |
80 | void SetMaxCov2(Double_t maxCov2) { |
81 | fMaxCov2=maxCov2; |
82 | } |
83 | Double_t GetMaxCov2() const {return fMaxCov2;} |
84 | |
85 | void SetMaxCov5(Double_t maxCov5) { |
86 | fMaxCov5=maxCov5; |
87 | } |
88 | Double_t GetMaxCov5() const {return fMaxCov5;} |
89 | |
90 | void SetMaxCov9(Double_t maxCov9) { |
91 | fMaxCov9=maxCov9; |
92 | } |
93 | Double_t GetMaxCov9() const {return fMaxCov9;} |
94 | |
95 | void SetMaxCov14(Double_t maxCov14) { |
96 | fMaxCov14=maxCov14; |
97 | } |
98 | Double_t GetMaxCov14() const {return fMaxCov14;} |
99 | |
100 | //void SetTPCrefit() {Int_t fTPCrefitFlag=kTRUE;} |
101 | |
10eaad41 |
102 | private: |
f9afc48d |
103 | |
0aa3a5b9 |
104 | Int_t fDebug; // Debug flag |
92adf4f6 |
105 | TList *fListOfHistos; // List |
106 | TH1D *fOpeningAngle; // Opening |
107 | TH1D *fInvariantMass; // invMass spectrum |
108 | TH1D *fInvMassTrue; // invMassTrue spectrum |
109 | TH1D *fPhiBothKinks; // bothKaonsKinks |
110 | TH1D *fRecPt; // pT spectrum |
111 | TH1D *fRecEta; // Eta spectrum |
112 | TH2D *fRecEtaPt; // Eta pT spectrum |
113 | TH1D *fSimPt; // pT Sim spectrum |
114 | TH1D *fSimEta; // Eta Sim spectrum |
115 | TH2D *fSimEtaPt; // Eta pT Sim spectrum |
116 | TH1D *fSimPtKink; // pT Sim one kaon kink spectrum |
117 | TH1D *fSimEtaKink; // Eta Sim one kaon kink spectrum spectrum |
118 | TH2D *fSimEtaPtKink; // Eta pT Sim one kaon kink spectrum |
119 | TH1D *fhdr ; // radial impact |
120 | TH1D *fhdz ; // z impact |
04c3c355 |
121 | TF1 *f1; //upper limit curve for the decay K->mu |
122 | TF1 *f2; //upper limit curve for the decay pi->mu |
10eaad41 |
123 | TString fAnalysisType;//"ESD" or "MC" |
92adf4f6 |
124 | TH1D *fvtxz ; // vtx z component |
125 | Int_t fNbins; // bins |
126 | Float_t fLowX;// lowx |
127 | Float_t fHighX; // high x |
04c3c355 |
128 | Int_t fdaughter1pdg; // pdg code of the resonance's first daughter |
129 | Int_t fdaughter2pdg; // pdg code of the resonance's second daughter |
130 | Int_t fresonancePDGcode; // pdg code of the resonance |
131 | Float_t fMaxNSigmaToVertex; // standard cut to select primary tracks |
132 | Double_t fMinPtTrackCut; // lower pt cut for the tracks |
133 | Double_t fMaxDCAxy; // impact parameter in the xy plane |
134 | Double_t fMaxDCAzaxis; // impact parameter in the z axis |
135 | Int_t fMinTPCclusters; // standard cut for the TPC clusters |
136 | Double_t fMaxChi2PerTPCcluster; // standard cut for the chi2 of the TPC clusters |
137 | Double_t fMaxCov0; // standard cut |
138 | Double_t fMaxCov2; // standard cut |
139 | Double_t fMaxCov5; // standard cut |
140 | Double_t fMaxCov9; // standard cut |
141 | Double_t fMaxCov14; // standard cut |
142 | TH2D *fInvmassPt; // 2D histo for invariant mass calculation in pt bins (all pairs, ESD) |
143 | TH2D *fInvmassPtTrue; // 2D histo for invariant mass calculation in pt bins (true pairs, ESD) |
144 | TH2D *fMCInvmassPt; // 2D histo for invariant mass calculation in pt bins (all pairs, MC) |
145 | TH2D *fMCInvmassPtTrue; // 2D histo for invariant mass calculation in pt bins (true pairs, MC) |
92adf4f6 |
146 | // Bool_t fTPCrefitFlag; |
10eaad41 |
147 | |
f9afc48d |
148 | AliResonanceKink(const AliResonanceKink&); // not implemented |
149 | AliResonanceKink& operator=(const AliResonanceKink&); // not implemented |
10eaad41 |
150 | |
f9afc48d |
151 | ClassDef(AliResonanceKink, 1); // example of analysis |
10eaad41 |
152 | }; |
153 | |
154 | #endif |