+++ /dev/null
-#ifndef ALIRESONANCEKINK_H
-#define ALIRESONANCEKINK_H
-
-/* See cxx source for full Copyright notice */
-
-//------------------------------------------------------------------------------
-// class AliResonanceKink
-// This task is an example of an analysis task
-// for analysing resonances having one kaon kink
-//Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr)
-//------------------------------------------------------------------------------
-
-#include "TVector3.h"
-
-class TF1;
-class TH1D;
-class TH2D;
-class AliESDEvent;
-class AliESDtrack;
-class AliESDVertex;
-class AliMCEvent;
-class TList;
-class TString;
-
-class AliResonanceKink : public TObject {
- public:
-
- enum ResonanceType {kPhi=333, kKstar0=313, kLambda1520=3124};
-
- AliResonanceKink();
- 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);
- virtual ~AliResonanceKink();
-
- TList* GetHistogramList();
- void Analyse(AliESDEvent* esd, AliMCEvent* mcEvent);
- void Analyse(AliESDEvent* esd);
- Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const ;
- const AliESDVertex *GetEventVertex(const AliESDEvent* esd) const;
- void SetDebugLevel(Int_t level) {fDebug = level;}
- void SetAnalysisType(TString type) {fAnalysisType=type;}
- TString GetAnalysisType() {return fAnalysisType;}
- void SetPDGCodes(Int_t d1, Int_t d2, Int_t res) {fdaughter1pdg=d1; fdaughter2pdg=d2; fresonancePDGcode=res;}
- 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);
- Bool_t IsAcceptedForKink(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
- Bool_t IsAcceptedForTrack(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
- Bool_t IsKink(AliESDEvent *localesd, Int_t kinkIndex, TVector3 trackMom);
-
- void SetMaxNsigmaToVertex(Float_t maxNSigmaToVertex) {
- fMaxNSigmaToVertex=maxNSigmaToVertex;
- }
- Float_t GetMaxNsigmaToVertex() const {return fMaxNSigmaToVertex;}
-
- void SetPtTrackCut(Double_t minPtTrackCut) {
- fMinPtTrackCut=minPtTrackCut;
- }
- Double_t GetPtTrackCut() const {return fMinPtTrackCut;}
-
- void SetMaxDCAxy(Double_t maxDCAxy) {
- fMaxDCAxy=maxDCAxy;
- }
- Double_t GetMaxDCAxy() const {return fMaxDCAxy;}
-
- void SetMaxDCAzaxis(Double_t maxDCAzaxis) {
- fMaxDCAzaxis=maxDCAzaxis;
- }
- Double_t GetMaxDCAzaxis() const {return fMaxDCAzaxis;}
-
- void SetMinTPCclusters(Int_t minTPCclusters) {
- fMinTPCclusters=minTPCclusters;
- }
- Int_t GetMinTPCclusters() const {return fMinTPCclusters;}
-
- void SetMaxChi2PerTPCcluster(Double_t maxChi2PerTPCcluster) {
- fMaxChi2PerTPCcluster=maxChi2PerTPCcluster;
- }
- Double_t GetMaxChi2PerTPCcluster() const {return fMaxChi2PerTPCcluster;}
-
- void SetMaxCov0(Double_t maxCov0) {
- fMaxCov0=maxCov0;
- }
- Double_t GetMaxCov0() const {return fMaxCov0;}
-
- void SetMaxCov2(Double_t maxCov2) {
- fMaxCov2=maxCov2;
- }
- Double_t GetMaxCov2() const {return fMaxCov2;}
-
- void SetMaxCov5(Double_t maxCov5) {
- fMaxCov5=maxCov5;
- }
- Double_t GetMaxCov5() const {return fMaxCov5;}
-
- void SetMaxCov9(Double_t maxCov9) {
- fMaxCov9=maxCov9;
- }
- Double_t GetMaxCov9() const {return fMaxCov9;}
-
- void SetMaxCov14(Double_t maxCov14) {
- fMaxCov14=maxCov14;
- }
- Double_t GetMaxCov14() const {return fMaxCov14;}
-
- void SetMinKinkRadius(Float_t minKinkRadius) {
- fminKinkRadius=minKinkRadius;
- }
- Float_t GetMinKinkRadius() const {return fminKinkRadius;}
-
- void SetMaxKinkRadius(Float_t maxKinkRadius) {
- fmaxKinkRadius=maxKinkRadius;
- }
- Float_t GetMaxKinkRadius() const {return fmaxKinkRadius;}
-
- void SetQtLimits(Float_t minQt, Float_t maxQt) {fminQt=minQt; fmaxQt=maxQt;}
-
- void SetUpperAbsEtaCut(Double_t maxAbsEtaCut) {
- fmaxAbsEtaCut=maxAbsEtaCut;
- }
- Double_t GetUpperAbsEtaCut() const {return fmaxAbsEtaCut;}
-
- //void SetTPCrefit() {Int_t fTPCrefitFlag=kTRUE;}
-
- private:
-
- Int_t fDebug; // Debug flag
- TList *fListOfHistos; // List
- TH1D *fOpeningAngle; // Opening
- TH1D *fInvariantMass; // invMass spectrum
- TH1D *fInvMassTrue; // invMassTrue spectrum
- TH1D *fPhiBothKinks; // bothKaonsKinks
- Int_t fetabins; // number of eta bins
- Float_t floweta; // lower limit for eta
- Float_t fupeta; // upper limit for eta
- TH1D *fRecPt; // pT spectrum
- TH1D *fRecEta; // Eta spectrum
- TH2D *fRecEtaPt; // Eta pT spectrum
- TH1D *fSimPt; // pT Sim spectrum
- TH1D *fSimEta; // Eta Sim spectrum
- TH2D *fSimEtaPt; // Eta pT Sim spectrum
- TH1D *fSimPtKink; // pT Sim one kaon kink spectrum
- TH1D *fSimEtaKink; // Eta Sim one kaon kink spectrum spectrum
- TH2D *fSimEtaPtKink; // Eta pT Sim one kaon kink spectrum
- TF1 *f1; //upper limit curve for the decay K->mu
- TF1 *f2; //upper limit curve for the decay pi->mu
- TString fAnalysisType;//"ESD" or "MC"
- TH1D *fvtxz ; // vtx z component
- Int_t fNbins; // bins
- Float_t fLowX;// lowx
- Float_t fHighX; // high x
- Int_t fdaughter1pdg; // pdg code of the resonance's first daughter
- Int_t fdaughter2pdg; // pdg code of the resonance's second daughter
- Int_t fresonancePDGcode; // pdg code of the resonance
- Float_t fMaxNSigmaToVertex; // standard cut to select primary tracks
- Double_t fMinPtTrackCut; // lower pt cut for the tracks
- Double_t fMaxDCAxy; // impact parameter in the xy plane
- Double_t fMaxDCAzaxis; // impact parameter in the z axis
- Int_t fMinTPCclusters; // standard cut for the TPC clusters
- Double_t fMaxChi2PerTPCcluster; // standard cut for the chi2 of the TPC clusters
- Double_t fMaxCov0; // standard cut
- Double_t fMaxCov2; // standard cut
- Double_t fMaxCov5; // standard cut
- Double_t fMaxCov9; // standard cut
- Double_t fMaxCov14; // standard cut
- TH2D *fInvmassPt; // 2D histo for invariant mass calculation in pt bins (all pairs, ESD)
- TH2D *fInvmassPtTrue; // 2D histo for invariant mass calculation in pt bins (true pairs, ESD)
- TH2D *fMCInvmassPt; // 2D histo for invariant mass calculation in pt bins (all pairs, MC)
- TH2D *fMCInvmassPtTrue; // 2D histo for invariant mass calculation in pt bins (true pairs, MC)
- Float_t fminKinkRadius; // min accepted radius for the kink vertex
- Float_t fmaxKinkRadius; // max accepted radius for the kink vertex
- Float_t fminQt; //min Qt cut
- Float_t fmaxQt; //max Qt cut
- Int_t fptbins; // number of bins in pt
- Float_t flowpt; // pt lower limit
- Float_t fupperpt; // pt upper limit
- Double_t fmaxAbsEtaCut; // max abolute eta cut for analysis
-// Bool_t fTPCrefitFlag;
-
- AliResonanceKink(const AliResonanceKink&); // not implemented
- AliResonanceKink& operator=(const AliResonanceKink&); // not implemented
-
- ClassDef(AliResonanceKink, 1); // example of analysis
-};
-
-#endif