]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnAnalysisPhi7TeV.h
Added an information histogram on *real* number of events contributing to fill each...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisPhi7TeV.h
1 //
2 // Header file for implementation of data analysis aft 900 GeV
3 //
4 // Author: A. Pulvirenti
5 //
6
7 #ifndef ALIRSNANALYSISPHI7TEV_H
8 #define ALIRSNANALYSISPHI7TEV_H
9
10 #include "AliAnalysisTaskSE.h"
11 #include "AliRsnTOFT0maker.h"
12 #include "AliESDtrackCuts.h"
13
14 class TH1I;
15 class TH1F;
16 class TTree;
17
18 class AliStack;
19 class AliESDEvent;
20 class AliESDVertex;
21 class AliESDpid;
22 class AliTOFT0maker;
23 class AliTOFcalib;
24
25 class AliRsnAnalysisPhi7TeV : public AliAnalysisTaskSE
26 {
27   public:
28   
29     enum
30     {
31       kGoodTracksPrimaryVertex = 0,
32       kGoodSPDPrimaryVertex    = 1,
33       kFarTracksPrimaryVertex  = 2,
34       kFarSPDPrimaryVertex     = 3,
35       kNoGoodPrimaryVertex     = 4,
36       kEvaluations             = 5
37     };
38
39     AliRsnAnalysisPhi7TeV(const char *name = "Phi7TeV");
40     AliRsnAnalysisPhi7TeV(const AliRsnAnalysisPhi7TeV& copy);
41     AliRsnAnalysisPhi7TeV& operator=(const AliRsnAnalysisPhi7TeV& copy);
42     virtual ~AliRsnAnalysisPhi7TeV();
43
44     void             SetUseMC(Bool_t yn = kTRUE) {fUseMC = yn;}
45     void             SetCheckITS(Bool_t yn = kTRUE) {fCheckITS = yn;}
46     void             SetCheckTPC(Bool_t yn = kTRUE) {fCheckTPC = yn;}
47     void             SetCheckTOF(Bool_t yn = kTRUE) {fCheckTOF = yn;}
48     
49     void             SetMaxVz(Double_t v)   {fMaxVz = v;}
50     
51     void             SetITSband(Double_t v) {fMaxITSband = v;}
52     
53     void             SetTPCpLimit(Double_t v) {fTPCpLimit = v;}
54     void             SetTPCrange(Double_t min, Double_t max) {fMinTPCband = min; fMaxTPCband = max;}
55     void             SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
56                        {fTPCpar[0]=p0;fTPCpar[1]=p1;fTPCpar[2]=p2;fTPCpar[3]=p3;fTPCpar[4]=p4;}
57
58     void             SetTOFcalibrateESD(Bool_t yn = kTRUE)  {fTOFcalibrateESD = yn;}
59     void             SetTOFcorrectTExp (Bool_t yn = kTRUE)  {fTOFcorrectTExp = yn;}
60     void             SetTOFuseT0       (Bool_t yn = kTRUE)  {fTOFuseT0 = yn;}
61     void             SetTOFtuneMC      (Bool_t yn = kTRUE)  {fTOFtuneMC = yn;}
62     void             SetTOFresolution  (Double_t v = 100.0) {fTOFresolution = v;}
63
64     virtual void     UserCreateOutputObjects();
65     virtual void     UserExec(Option_t *option = "");
66     virtual void     Terminate(Option_t *option = "");
67     
68     Int_t            EventEval(AliESDEvent *esd);
69     AliESDtrackCuts* GetCutsTPC() {return &fESDtrackCutsTPC;}
70     AliESDtrackCuts* GetCutsITS() {return &fESDtrackCutsITS;}
71
72   private:
73
74     void     ProcessESD(AliESDEvent *esd, AliStack *stack);
75     void     ProcessMC(AliStack *stack);
76     void     AddEntryFromESD(AliESDEvent *esd, Int_t i1, Int_t i2, Int_t its1, Int_t its2, Short_t charge, AliStack *stack = 0x0);
77
78     Bool_t   fUseMC;      // use MC or data?
79     Bool_t   fCheckITS;   // chec ITS PID?
80     Bool_t   fCheckTPC;   // chec TPC PID?
81     Bool_t   fCheckTOF;   // chec TOF PID?
82     
83     Short_t  fPDG;        // PDG code
84     Short_t  fCh;         // control flag for like/unlike sign
85     Short_t  fITS[2];     // check flag to know if one or both candidates are ITS standalone
86     Float_t  fIM;         // inv mass
87     Float_t  fPt;         // transv momentum
88     Float_t  fY;          // rapidity
89     Float_t  fEta;        // pseudo-rapidity
90     
91     Double_t fMaxVz;      // range in Z of primary vertex w.r. to origin
92     
93     Double_t fMaxITSband; // range for ITS de/dx band
94
95     Double_t fTPCpLimit;  // limit to choose what band to apply
96     Double_t fTPCpar[5];  // parameters for TPC bethe-Bloch
97     Double_t fMinTPCband; // range for TPC de/dx band - min
98     Double_t fMaxTPCband; // range for TPC de/dx band - max
99
100     TTree     *fRsnTreeComp;    // output tree of computed pairs
101     TTree     *fRsnTreeTrue;    // output tree of true pairs
102     TList     *fOutList;        // list for monitoring histograms
103     TH1I      *fHEvents;        // histogram of event types
104     TH1F      *fVertexX[2];     // histogram of X coordinate of primary vertex ([0] = tracks, [1] = SPD)
105     TH1F      *fVertexY[2];     // histogram of Y coordinate of primary vertex ([0] = tracks, [1] = SPD)
106     TH1F      *fVertexZ[2];     // histogram of Z coordinate of primary vertex ([0] = tracks, [1] = SPD)
107     
108     AliESDtrackCuts  fESDtrackCutsTPC;  //  ESD standard defined track cuts for TPC tracks
109     AliESDtrackCuts  fESDtrackCutsITS;  //  ESD standard defined track cuts for ITS-SA tracks
110     AliESDpid       *fESDpid;           //! PID manager
111     AliTOFT0maker   *fTOFmaker;         //! TOF time0 computator
112     AliTOFcalib     *fTOFcalib;         //! TOF calibration
113     Bool_t           fTOFcalibrateESD;  //  TOF settings
114     Bool_t           fTOFcorrectTExp;   //  TOF settings
115     Bool_t           fTOFuseT0;         //  TOF settings
116     Bool_t           fTOFtuneMC;        //  TOF settings
117     Double_t         fTOFresolution;    //  TOF settings
118
119     // ROOT dictionary
120     ClassDef(AliRsnAnalysisPhi7TeV,1)
121 };
122
123 #endif