Splitted the PID cuts into three classes for ITS, TPC and TOF, and added the possibil...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisMonitorPairTask.h
1 //
2 // Header file for implementation of data analysis aft 900 GeV
3 //
4 // Author: A. Pulvirenti
5 //
6
7 #ifndef ALIRSNANALYSISMONITORPAIRTASK_H
8 #define ALIRSNANALYSISMONITORPAIRTASK_H
9
10 #include "AliAnalysisTaskSE.h"
11 #include "AliRsnCutSet.h"
12
13 class TH1I;
14 class TH1F;
15 class TTree;
16
17 class AliStack;
18 class AliESDEvent;
19 class AliESDVertex;
20 class AliESDpid;
21 class AliTOFT0maker;
22 class AliTOFcalib;
23
24 class AliRsnAnalysisMonitorPairTask : public AliAnalysisTaskSE
25 {
26   public:
27   
28     AliRsnAnalysisMonitorPairTask(const char *name = "Phi7TeV");
29     AliRsnAnalysisMonitorPairTask(const AliRsnAnalysisMonitorPairTask& copy);
30     AliRsnAnalysisMonitorPairTask& operator=(const AliRsnAnalysisMonitorPairTask& copy);
31     virtual ~AliRsnAnalysisMonitorPairTask();
32     
33     void             SetMasses(Double_t m1, Double_t m2) {fMass[0] = m1; fMass[1] = m2;}
34     void             SetInvMassRange(Double_t m1, Double_t m2) {fRangeMin = m1, fRangeMax = m2;}
35     
36     void             SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
37                        {fTPCpar[0]=p0;fTPCpar[1]=p1;fTPCpar[2]=p2;fTPCpar[3]=p3;fTPCpar[4]=p4;}
38
39     void             SetTOFcalibrateESD(Bool_t yn = kTRUE)  {fTOFcalibrateESD = yn;}
40     void             SetTOFcorrectTExp (Bool_t yn = kTRUE)  {fTOFcorrectTExp = yn;}
41     void             SetTOFuseT0       (Bool_t yn = kTRUE)  {fTOFuseT0 = yn;}
42     void             SetTOFtuneMC      (Bool_t yn = kTRUE)  {fTOFtuneMC = yn;}
43     void             SetTOFresolution  (Double_t v = 100.0) {fTOFresolution = v;}
44
45     virtual void     UserCreateOutputObjects();
46     virtual void     UserExec(Option_t *option = "");
47     virtual void     Terminate(Option_t *option = "");
48     
49     Int_t            EventEval(AliESDEvent *esd);
50     Bool_t           IsTPCtrack(AliESDtrack *track);
51     Bool_t           IsITSSAtrack(AliESDtrack *track);
52     void             ProcessESD(AliESDEvent *esd, const AliESDVertex *v);
53     Bool_t           ProcessTrack(Int_t myIndex, Int_t esdIndex, AliESDEvent *esd, const AliESDVertex *v);
54     
55     AliRsnCutSet*    GetEventCuts() {return &fEventCuts;}
56     AliRsnCutSet*    GetTrackCuts() {return &fTrackCuts;}
57
58   private:
59     
60     TTree              *fOut;              //  output TTree
61     AliRsnMonitorTrack *fTrack[2];         //  branch objects for output TTree
62     Double_t            fMass[2];          //  masses assigned to daughters
63     Float_t             fInvMass;          //  pair inv mass (computed with above masses)
64     Double_t            fRangeMin;         //  minimum accepted invmass
65     Double_t            fRangeMax;         //  maximum accepted invmass
66     
67     Double_t            fTPCpar[5];        //  parameters for TPC bethe-Bloch
68    
69     AliESDpid          *fESDpid;           //! PID manager
70     
71     AliTOFT0maker      *fTOFmaker;         //! TOF time0 computator
72     AliTOFcalib        *fTOFcalib;         //! TOF calibration
73     Bool_t              fTOFcalibrateESD;  //  TOF settings
74     Bool_t              fTOFcorrectTExp;   //  TOF settings
75     Bool_t              fTOFuseT0;         //  TOF settings
76     Bool_t              fTOFtuneMC;        //  TOF settings
77     Double_t            fTOFresolution;    //  TOF settings
78     
79     AliRsnCutSet        fEventCuts;        //  event cuts
80     AliRsnCutSet        fTrackCuts;        //  track cuts
81
82     // ROOT dictionary
83     ClassDef(AliRsnAnalysisMonitorPairTask,1)
84 };
85
86 #endif