]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/KINK/AliResonanceKinkLikeSign.h
new AddTask macros for resonance analysis (P.Ganoti)
[u/mrichter/AliRoot.git] / PWG2 / KINK / AliResonanceKinkLikeSign.h
1 #ifndef ALIRESONANCEKINKLIKESIGN_H
2 #define ALIRESONANCEKINKLIKESIGN_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //--------------------------------------------------------------------------------
7 //                   class AliResonanceKinkLikeSign
8 //         This task is an example of an analysis task
9 //        for producing a like-sign background for resonances having at least one 
10 //        kaon-kink in their decay products. 
11 //        Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr)
12 //---------------------------------------------------------------------------------
13
14 #include "AliAnalysisTaskSE.h"
15 #include "TVector3.h"
16
17 class TF1;
18 class TH1D;
19 class TH2D;
20 class AliESDtrack;
21 class AliESDVertex;
22 class AliESDEvent;
23
24 class AliResonanceKinkLikeSign : public AliAnalysisTaskSE {
25  public:
26   AliResonanceKinkLikeSign(const char *name = "AliResonanceKinkLikeSign");
27   virtual ~AliResonanceKinkLikeSign() {}
28   
29   virtual void   UserCreateOutputObjects();
30   virtual void   UserExec(Option_t *option);
31   virtual void   Terminate(Option_t *);
32   
33   void SetPDGCodes(Int_t d1, Int_t d2) {fdaughter1pdg=d1; fdaughter2pdg=d2;}
34   void SetHistoSettings(Int_t nbins, Float_t nlowx, Float_t nhighx) {fnbins=nbins; fnlowx=nlowx; fnhighx=nhighx;}
35   Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const ; 
36   const AliESDVertex *GetEventVertex(const AliESDEvent* esd) const;
37   void SetDebugLevel(Int_t level) {fDebug = level;}
38   Bool_t IsAcceptedForKink(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
39   Bool_t IsAcceptedForTrack(AliESDEvent *localesd, const AliESDVertex *localvertex, AliESDtrack *localtrack);
40   Bool_t IsKink(AliESDEvent *localesd, Int_t kinkIndex, TVector3 trackMom); 
41   
42   void SetMaxNsigmaToVertex(Float_t maxNSigmaToVertex) {
43    fMaxNSigmaToVertex=maxNSigmaToVertex;
44   }
45   Float_t GetMaxNsigmaToVertex() const {return fMaxNSigmaToVertex;} 
46   
47   void SetPtTrackCut(Double_t minPtTrackCut) {
48    fMinPtTrackCut=minPtTrackCut;
49   }
50   Double_t GetPtTrackCut() const {return fMinPtTrackCut;} 
51   
52   void SetMaxDCAxy(Double_t maxDCAxy) {
53    fMaxDCAxy=maxDCAxy;
54   }
55   Double_t GetMaxDCAxy() const {return fMaxDCAxy;}
56   
57   void SetMaxDCAzaxis(Double_t maxDCAzaxis) {
58    fMaxDCAzaxis=maxDCAzaxis;
59   }
60   Double_t GetMaxDCAzaxis() const {return fMaxDCAzaxis;}   
61   
62   void SetMinTPCclusters(Int_t minTPCclusters) {
63    fMinTPCclusters=minTPCclusters;
64   }
65   Int_t GetMinTPCclusters() const {return fMinTPCclusters;}    
66   
67   void SetMaxChi2PerTPCcluster(Double_t maxChi2PerTPCcluster) {
68    fMaxChi2PerTPCcluster=maxChi2PerTPCcluster;
69   }
70   Double_t GetMaxChi2PerTPCcluster() const {return fMaxChi2PerTPCcluster;} 
71   
72   void SetMaxCov0(Double_t maxCov0) {
73    fMaxCov0=maxCov0;
74   }
75   Double_t GetMaxCov0() const {return fMaxCov0;}     
76   
77   void SetMaxCov2(Double_t maxCov2) {
78    fMaxCov2=maxCov2;
79   }
80   Double_t GetMaxCov2() const {return fMaxCov2;}   
81   
82   void SetMaxCov5(Double_t maxCov5) {
83    fMaxCov5=maxCov5;
84   }
85   Double_t GetMaxCov5() const {return fMaxCov5;}   
86   
87   void SetMaxCov9(Double_t maxCov9) {
88    fMaxCov9=maxCov9;
89   }
90   Double_t GetMaxCov9() const {return fMaxCov9;}   
91   
92   void SetMaxCov14(Double_t maxCov14) {
93    fMaxCov14=maxCov14;
94   }
95   Double_t GetMaxCov14() const {return fMaxCov14;}      
96   
97  private:
98   Int_t       fDebug;        //  Debug flag
99  // AliESDEvent *fESD;    // ESD object
100   TList       *fListOfHistos; // List 
101   TF1         *f1; //upper limit curve for the decay K->mu
102   TF1         *f2;  //upper limit curve for the decay pi->mu
103   TH1D        *fPosKaonLikeSign; // negative spectrum
104   TH2D        *fLikeSignInvmassPt; // negative spectrum
105   Float_t     fMaxNSigmaToVertex; // standard cut to select primary tracks
106   Double_t    fMinPtTrackCut; // lower pt cut for the tracks
107   Double_t    fMaxDCAxy; // impact parameter in the xy plane
108   Double_t    fMaxDCAzaxis; // impact parameter in the z axis
109   Int_t       fMinTPCclusters; // standard cut for the TPC clusters
110   Double_t    fMaxChi2PerTPCcluster; // standard cut for the chi2 of the TPC clusters
111   Double_t    fMaxCov0;  // standard cut
112   Double_t    fMaxCov2; // standard cut
113   Double_t    fMaxCov5; // standard cut
114   Double_t    fMaxCov9; // standard cut
115   Double_t    fMaxCov14; // standard cut
116   Int_t       fdaughter1pdg; // pdg code of the resonance's first daughter
117   Int_t       fdaughter2pdg;  // pdg code of the resonance's second daughter  
118   Int_t       fnbins; // Inv mass histo number of bins
119   Float_t     fnlowx; // Inv mass histo lower limit
120   Float_t     fnhighx; // Inv mass histo upper limit
121   AliResonanceKinkLikeSign(const AliResonanceKinkLikeSign&); // not implemented
122   AliResonanceKinkLikeSign& operator=(const AliResonanceKinkLikeSign&); // not implemented
123
124   ClassDef(AliResonanceKinkLikeSign, 1); // example of analysis
125 };
126
127 #endif