1 #ifndef ALIRESONANCEKINK_H
2 #define ALIRESONANCEKINK_H
4 /* See cxx source for full Copyright notice */
6 //------------------------------------------------------------------------------
7 // class AliResonanceKink
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 //------------------------------------------------------------------------------
23 class AliResonanceKink : public TObject {
26 enum ResonanceType {kPhi=333, kKstar0=313, kLambda1520=3124};
27 enum DaughterType {kdaughterPion=211, kdaughterKaon=321, kdaughterProton=2212};
30 AliResonanceKink(Int_t nbins, Float_t nlowx, Float_t nhighx, Int_t daughter1, Int_t daughter2, Int_t resonancePDG);
31 virtual ~AliResonanceKink();
33 TList* GetHistogramList();
34 void Analyse(AliESDEvent* esd, AliMCEvent* mcEvent);
35 Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const ;
36 const AliESDVertex *GetEventVertex(const AliESDEvent* esd) const;
37 void SetDebugLevel(Int_t level) {fDebug = level;}
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);
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);
45 void SetMaxNsigmaToVertex(Float_t maxNSigmaToVertex) {
46 fMaxNSigmaToVertex=maxNSigmaToVertex;
48 Float_t GetMaxNsigmaToVertex() const {return fMaxNSigmaToVertex;}
50 void SetPtTrackCut(Double_t minPtTrackCut) {
51 fMinPtTrackCut=minPtTrackCut;
53 Double_t GetPtTrackCut() const {return fMinPtTrackCut;}
55 void SetMaxDCAxy(Double_t maxDCAxy) {
58 Double_t GetMaxDCAxy() const {return fMaxDCAxy;}
60 void SetMaxDCAzaxis(Double_t maxDCAzaxis) {
61 fMaxDCAzaxis=maxDCAzaxis;
63 Double_t GetMaxDCAzaxis() const {return fMaxDCAzaxis;}
65 void SetMinTPCclusters(Int_t minTPCclusters) {
66 fMinTPCclusters=minTPCclusters;
68 Int_t GetMinTPCclusters() const {return fMinTPCclusters;}
70 void SetMaxChi2PerTPCcluster(Double_t maxChi2PerTPCcluster) {
71 fMaxChi2PerTPCcluster=maxChi2PerTPCcluster;
73 Double_t GetMaxChi2PerTPCcluster() const {return fMaxChi2PerTPCcluster;}
75 void SetMaxCov0(Double_t maxCov0) {
78 Double_t GetMaxCov0() const {return fMaxCov0;}
80 void SetMaxCov2(Double_t maxCov2) {
83 Double_t GetMaxCov2() const {return fMaxCov2;}
85 void SetMaxCov5(Double_t maxCov5) {
88 Double_t GetMaxCov5() const {return fMaxCov5;}
90 void SetMaxCov9(Double_t maxCov9) {
93 Double_t GetMaxCov9() const {return fMaxCov9;}
95 void SetMaxCov14(Double_t maxCov14) {
98 Double_t GetMaxCov14() const {return fMaxCov14;}
100 //void SetTPCrefit() {Int_t fTPCrefitFlag=kTRUE;}
104 Int_t fDebug; // Debug flag
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
121 TF1 *f1; //upper limit curve for the decay K->mu
122 TF1 *f2; //upper limit curve for the decay pi->mu
123 TString fAnalysisType;//"ESD" or "MC"
124 TH1D *fvtxz ; // vtx z component
125 Int_t fNbins; // bins
126 Float_t fLowX;// lowx
127 Float_t fHighX; // high x
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)
146 // Bool_t fTPCrefitFlag;
148 AliResonanceKink(const AliResonanceKink&); // not implemented
149 AliResonanceKink& operator=(const AliResonanceKink&); // not implemented
151 ClassDef(AliResonanceKink, 1); // example of analysis