1d8c282de53b7eaf091eadbbd1f5fdcbe81ca736
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / extra / AliAnalysisTaskSigma1385.h
1 #ifndef ALIANALYSISTASKSIGMA1385_H
2 #define ALIANALYSISTASKSIGMA1385_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-----------------------------------------------------------------
7 //                 AliAnalysisTaskSigma1385 class
8 //-----------------------------------------------------------------
9
10 class TList;
11 class TH1F;
12 class TNtuple;
13 class AliESDcascade;
14
15 //-------------------------------- For PID
16
17
18 #include  "AliESDpid.h"
19 #include  "AliTOFT0maker.h"
20 #include  "AliTOFcalib.h"
21 #include  "AliCDBManager.h"
22 #include  "AliESDtrackCuts.h"
23
24 //-------------------------------
25
26 #include "TString.h"
27 #include "AliAnalysisTaskSE.h"
28
29 class AliAnalysisTaskSigma1385 : public AliAnalysisTaskSE {
30 public:
31    AliAnalysisTaskSigma1385();
32    AliAnalysisTaskSigma1385(const char *name);
33    virtual ~AliAnalysisTaskSigma1385() {}
34
35    virtual void   UserCreateOutputObjects();
36    virtual void   UserExec(Option_t *option);
37    virtual void   Terminate(Option_t *);
38
39    void SetCollidingSystems(Short_t collidingSystems = 0)     {fCollidingSystems = collidingSystems;}
40    void SetAnalysisType(const char* analysisType = "ESD") {fAnalysisType = analysisType;}
41    void SetDataType(const char* dataType = "REAL") {fDataType = dataType;}
42
43    virtual const char *GetDataType() {return fDataType;}
44
45    Bool_t *IsSelected(AliESDtrack* track);
46
47
48
49
50 //-------------------------------- For Alberto's PID
51
52
53    void             SetCheckITS(Bool_t yn = kTRUE) {fCheckITS = yn;}
54    void             SetCheckTPC(Bool_t yn = kTRUE) {fCheckTPC = yn;}
55    void             SetCheckTOF(Bool_t yn = kTRUE) {fCheckTOF = yn;}
56    void             SetUseGlobal(Bool_t yn = kTRUE) {fUseGlobal = yn;}
57    void             SetUseITSSA(Bool_t yn = kTRUE) {fUseITSSA = yn;}
58
59    void             SetITSband(Double_t v) {fMaxITSband = v;}
60
61    void             SetTPCpLimit(Double_t v) {fTPCpLimit = v;}
62    void             SetTPCrange(Double_t min, Double_t max) {fMinTPCband = min; fMaxTPCband = max;}
63    void             SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
64    {fTPCpar[0] = p0; fTPCpar[1] = p1; fTPCpar[2] = p2; fTPCpar[3] = p3; fTPCpar[4] = p4;}
65
66    void             SetTOFcalibrateESD(Bool_t yn = kTRUE)  {fTOFcalibrateESD = yn;}
67    void             SetTOFcorrectTExp(Bool_t yn = kTRUE)  {fTOFcorrectTExp = yn;}
68    void             SetTOFuseT0(Bool_t yn = kTRUE)  {fTOFuseT0 = yn;}
69    void             SetTOFtuneMC(Bool_t yn = kTRUE)  {fTOFtuneMC = yn;}
70    void             SetTOFresolution(Double_t v = 100.0) {fTOFresolution = v;}
71    void             SetTOFrange(Double_t v1, Double_t v2) {fMinTOF = v1; fMaxTOF = v2;}
72
73
74 //-------------------------------
75
76 private:
77
78    TString fAnalysisType;            // "ESD" or "AOD" analysis type
79    Short_t fCollidingSystems;        // 0 = pp collisions or 1 = AA collisions
80    TString fDataType;          // "REAL" or "SIM" data type
81
82    TList  *fListHistCascade;      //! List of Cascade histograms
83    TH1F    *fHistEventMultiplicity;
84    TH1F    *fHistEventMultiplicityRAVS;  //event rejected after vertex selection
85    TNtuple *fNtuple1;
86    TNtuple *fNtuple2;
87    TNtuple *fNtuple3;
88    TNtuple *fNtuple4;
89
90
91
92 //-------------------------------- For PID
93
94 protected:
95
96    Bool_t           isMC;
97    Bool_t           fIsMC;             //  switch for MC analysis
98    Bool_t           fCheckITS;         //  switch for ITS dE/dx check
99    Bool_t           fCheckTPC;         //  switch for TPC dE/dx check
100    Bool_t           fCheckTOF;         //  switch for TOF time check
101    Bool_t           fUseGlobal;        //  switch to use TPC global tracks
102    Bool_t           fUseITSSA;         //  switch to use ITS standalone tracks
103
104    Double_t         fMaxITSband;       //  range for ITS de/dx band
105
106    Double_t         fTPCpLimit;        //  limit to choose what band to apply
107    Double_t         fTPCpar[5];        //  parameters for TPC bethe-Bloch
108    Double_t         fMinTPCband;       //  range for TPC de/dx band - min
109    Double_t         fMaxTPCband;       //  range for TPC de/dx band - max
110
111
112    AliESDpid       *fESDpid;           //! PID manager
113    AliTOFT0maker   *fTOFmaker;         //! TOF time0 computator
114    AliTOFcalib     *fTOFcalib;         //! TOF calibration
115    Bool_t           fTOFcalibrateESD;  //  TOF settings
116    Bool_t           fTOFcorrectTExp;   //  TOF settings
117    Bool_t           fTOFuseT0;         //  TOF settings
118    Bool_t           fTOFtuneMC;        //  TOF settings
119    Double_t         fTOFresolution;    //  TOF settings
120    Double_t         fMinTOF;           //  range for TOF PID (min)
121    Double_t         fMaxTOF;           //  range for TOF PID (max)
122    Int_t            fLastRun;          //  last run number
123
124 //-------------------------------
125
126
127    AliAnalysisTaskSigma1385(const AliAnalysisTaskSigma1385&);            // not implemented
128    AliAnalysisTaskSigma1385& operator=(const AliAnalysisTaskSigma1385&); // not implemented
129
130    ClassDef(AliAnalysisTaskSigma1385, 3);
131 };
132
133 #endif