]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiInfo.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / masses / AliAnalysisNucleiInfo.h
1 #ifndef ALIANALYSISNUCLEIINFO_H
2 #define ALIANALYSISNUCLEIINFO_H
3
4 // ROOT includes
5 #include <TList.h>
6
7 // AliRoot includes
8 #include <AliAnalysisTaskSE.h>
9 #include <AliPIDResponse.h>
10
11 class AliAODEvent;
12 class AliESDEvent;
13 class AliVEvent;
14 class TH2F;
15 class TH2D;
16 class TH1F;
17 class TH1I;
18 class TF1;
19 class TF2;
20 class TGraph;
21 class AliESDtrackCuts;
22 class TProfile;
23 class TFile;
24 class TObject;
25
26 class AliAnalysisNucleiInfo : public AliAnalysisTaskSE {
27  public:
28   AliAnalysisNucleiInfo();
29   AliAnalysisNucleiInfo(const char *name);
30   
31   virtual ~AliAnalysisNucleiInfo();
32   
33   virtual void   UserCreateOutputObjects();
34   virtual void   UserExec(Option_t *option);
35   virtual void   Terminate(Option_t *);
36
37
38   //Cuts on the tracks
39   void SetFilterBit(Int_t TestFilterBit=16) {FilterBit=TestFilterBit;}
40   //Geometrical cuts
41   void SetEtaLimit(Double_t etaMin=-0.8, Double_t etaMax=0.8) {EtaLimit[0]=etaMin;EtaLimit[1]=etaMax;}
42   void SetDCACut(Double_t DCAxyCUT=1000.0, Double_t DCAzCUT=1000.0) {DCAxyCut=DCAxyCUT; DCAzCut=DCAzCUT;}
43   //Other cuts 
44   void SetNsigmaTPCCut(Double_t nSigmaTpcCut=2) {NsigmaTpcCut=nSigmaTpcCut;}
45   void SetStartTimeTofRes(Double_t startTimeTofRes=9999.9){StartTimeTofRes=startTimeTofRes;}
46
47  private:
48   AliAnalysisNucleiInfo(const AliAnalysisNucleiInfo &old); 
49   AliAnalysisNucleiInfo& operator=(const AliAnalysisNucleiInfo &source);
50     
51   static const Int_t nBconf=2;                     // Number of Magnetic field configuration (B++ and B--)
52   static const Int_t nPart=9;                      // Number of particle type: e,mu,pi,K...
53   static const Int_t nSpec=18;                     // Number of particle species: particles: e+,e-,mu+,mu-,...
54     
55   //Variables settings with public methods:
56   Int_t FilterBit;                                 // Filter Bit to be used
57   Double_t EtaLimit[2];                            // Eta windows in analysis
58   Double_t DCAxyCut;                               // Cut on DCA-xy
59   Double_t DCAzCut;                                // Cut on DCA-z
60   Double_t NsigmaTpcCut;                           // number of sigma Tpc Cut
61   Double_t StartTimeTofRes;
62   
63   //other:
64   Int_t iBconf;                                   //! If Magnetic Field configuration is down or up
65   Bool_t kTOF;                                    //! kTOFout and kTIME required
66   
67   static const Int_t iTriggerSel=0;             // -99->no trigger required ; 0-> if kMB ; 16-> if kCentral ; 17-> if kSemiCentral ; -2 -> No MB, No Central and No SemiCentral  
68
69   AliAODEvent* fAOD;                              //! AOD object
70   AliESDEvent* fESD;                              //! ESD object
71   AliVEvent* fEvent;                              //! general object
72   AliPIDResponse *fPIDResponse;                   //! pointer to PID response
73   TList *fList[nBconf];                           //! lists for slot
74   
75   TH1I *htriggerbits[nBconf][2];                  //! Trigger bits distribution
76   TH1F *htemp[nBconf];                            //! Temp. plot: avoid a problem with the merge of the output when a TList is empty (of the opposite magnetic field configuration)
77   TH1F *hZvertex[nBconf][2];                      //! z-vertex distribution before and after the cuts on the event
78   
79   TH1F *hEta[nBconf];                             //! Eta distribution of the tracks
80   TH1F *hPhi[nBconf];                             //! Phi particle distribution
81   TH1I *hNtrackAtTof[nBconf];                        //! Number of the tracks when kTOF is required
82   
83   //TPC info:
84   TH2F *fdEdxVSp[nBconf][2];                      //! dedx vs pTpc
85   TProfile *hDeDxExp[nBconf][9];                  //! TPC spline used
86   TH2F *fNsigmaTpc[nBconf][18];                   //! NsigmaTPC vs. pTpc
87   
88   //TOF info:
89   TH2F *fBetaTofVSp[nBconf][2];                   //! beta vs pVtx
90   TProfile *hBetaExp[nBconf][9];                  //! TOF expected beta
91   TH2F *fNsigmaTof[nBconf][2][18];                //! NsigmaTOF vs. pT
92   TH2F *fTofMinusExp[nBconf][2][18];              //! tof-t_exp w/o tpc
93   TH1F *hStartTimeRes[nBconf];                    //! start time resolution
94  
95   //ITS info:
96   TH2F *h2DCAap[nBconf][18];                      //! DCAxy vs DCAz with NsigmaTpcCut for each particle species
97   
98   ClassDef(AliAnalysisNucleiInfo, 2);
99 };
100
101 #endif