]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.h
Centrality estimator added; centrality bin edges are defined (P.Batzing)
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / masses / AliAnalysisNucleiMass.h
CommitLineData
983b8a42 1#ifndef ALIANALYSISNUCLEIMASS_H
2#define ALIANALYSISNUCLEIMASS_H
3
4// ROOT includes
5#include <TList.h>
6
7// AliRoot includes
8#include <AliAnalysisTaskSE.h>
9#include <AliPIDResponse.h>
10
11class AliAODEvent;
12class AliESDEvent;
13class AliVEvent;
14class TH2F;
15class TH2D;
16class TH1F;
17class TF1;
18class TH2D;
19class TGraph;
20class AliESDtrackCuts;
21class TProfile;
24395a5c 22class TFile;
23class TObject;
983b8a42 24
25class AliAnalysisNucleiMass : public AliAnalysisTaskSE {
26 public:
27 AliAnalysisNucleiMass();
28 AliAnalysisNucleiMass(const char *name);
29
30 virtual ~AliAnalysisNucleiMass();
31
32 virtual void UserCreateOutputObjects();
33 virtual void UserExec(Option_t *option);
34 virtual void Terminate(Option_t *);
35
de383542 36
37 //Cuts on the events
38 void SetCentrality(Double_t CentMin=0., Double_t CentMax=100.) {Centrality[0]=CentMin; Centrality[1]=CentMax;};
39 //Cuts on the tracks
40 void SetFilterBit(Int_t TestFilterBit=16) {FilterBit=TestFilterBit;}
41 //geometrical cuts
42 void SetAbsEtaLimit(Double_t etaMin=0., Double_t etaMax=0.8) {EtaLimit[0]=etaMin;EtaLimit[1]=etaMax;}
43 void SetDCACut(Double_t DCAxyCUT=0.1, Double_t DCAzCUT=1000.0) {DCAxyCut=DCAxyCUT; DCAzCut=DCAzCUT;}
44 //other cuts
45 void SetNsigmaTPCCut(Double_t nSigmaTpcCut=2) {NsigmaTpcCut=nSigmaTpcCut;}
46 void SetNminTPCcluster(Int_t nMinTPCcluster=0) {NminTpcCluster=nMinTPCcluster;}
47 void SetTrdCut(Int_t kTRDcut=0) {iTrdCut=kTRDcut;}
64e976d4 48
de383542 49 //Settings
50 void SetisSignalCheck(Int_t IsSignalCheck=2) {kSignalCheck=IsSignalCheck;}
51 void SetMtofMethod(Int_t iMtofMethod=1) {iMtof=iMtofMethod;}
38fdd8e0 52
983b8a42 53 private:
54 AliAnalysisNucleiMass(const AliAnalysisNucleiMass &old);
55 AliAnalysisNucleiMass& operator=(const AliAnalysisNucleiMass &source);
24395a5c 56
de383542 57 static const Int_t nbin=46; // Number of pt bins in Tof Mass distributions
58 static const Int_t nBconf=2; // Number of Magnetic field configuration (B++ and B--)
59 static const Int_t nPart=9; // Number of particle type: e,mu,pi,K...
60 static const Int_t nSpec=18; // Number of particle species: particles: e+,e-,mu+,mu-,...
24395a5c 61
de383542 62 //Variables settings with public methods:
63 Double_t Centrality[2]; // Centrality bin (min and max)
64 Int_t FilterBit; // Filter Bit to be used
65 Double_t EtaLimit[2]; // Eta windows in analysis
66 Double_t DCAxyCut; // Cut on DCA-xy
67 Double_t DCAzCut; // Cut on DCA-z
68 Double_t NsigmaTpcCut; // number of sigma Tpc Cut
69 Int_t NminTpcCluster; // Number of minimum TPC clusters
70 Int_t iTrdCut; // iTrdCut==0-> No TRD cut; iTrdCut==1-> Yes TRD cut: yes TRD; iTrdCut==2->Yes TRD cut: no TRD;
71 Int_t kSignalCheck; // kSignalCheck==1->Fill all plots ; kSignalCheck==0->Fill only TH1 ; kSignalCheck==2-> Fill TH1 and some TH2 usefull in analysis
64e976d4 72 Int_t iMtof; // iMtof==1->m~pVtx ; iMtof==2->m~pExp ; iMtof==4->m~pExp(MCcorrected) for (d,He3); iMtof==4->m~pExp(MCcorrected) (p,d,He3)
24395a5c 73
de383542 74 //other:
75 Int_t iBconf; //! If Magnetic Field configuration is down or up
76 Bool_t kTOF; //! kTOFout and kTIME required
3f2b4d7b 77
de383542 78 AliAODEvent* fAOD; //! AOD object
79 AliESDEvent* fESD; //! ESD object
80 AliVEvent* fEvent; //! general object
81 AliPIDResponse *fPIDResponse; //! pointer to PID response
82 TList *fList[nBconf]; //! lists for slot
983b8a42 83
de383542 84 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)
85 TH1F *hCentrality[nBconf][2]; //! Centrality of the selected and analyzed events
86 TH1F *hZvertex[nBconf][2]; //! z-vertex distribution before and after the cuts on the event
3f2b4d7b 87
de383542 88 TH1F *hEta[nBconf]; //! Eta distribution of the tracks
89 TH1F *hPhi[nBconf]; //! Phi particle distribution
90 TH2F *fEtaPhi[nBconf]; //! Phi vs Eta particle distribution
91 TH1F *hNTpcCluster[nBconf]; //! # of the TPC clusters after the track cuts
92 TH1F *hNTrdSlices[nBconf]; //! Number of the TRD slices after the track cuts
93
94 //TPC info:
95 TH2F *fdEdxVSp[nBconf][2]; //! dedx vs pTpc
96 TProfile *hDeDxExp[nBconf][9]; //! TPC spline used
97 TH2F *fNsigmaTpc[nBconf][9]; //! NsigmaTPC vs. pTpc
98 TH2F *fNsigmaTpc_kTOF[nBconf][18]; //! NsigmaTPC vs. pt when kTOF is required and in DCAxyCut
983b8a42 99
de383542 100 //TOF info:
101 TH2F *fBetaTofVSp[nBconf][2]; //! beta vs pVtx
102 TProfile *hBetaExp[nBconf][9]; //! TOF expected beta
103 TH2F *fNsigmaTof[nBconf][9]; //! NsigmaTOF vs. pT
104 TH2F *fNsigmaTof_DcaCut[nBconf][18]; //! NsigmaTOF vs. pT
105
106 //TPC and TOF conbined
107 TH2F *fM2vsPt_NoTpcCut[nBconf][2][2]; //! M2 vs. Pt w/o the DCAxyCut
108 TH2F *fM2vsPt[nBconf][2][18]; //! M2 vs. Pt with NsigmaTpcCut for each particle species, w/o the DCAxyCut
109 TH2F *fM2vsZ[nBconf][10]; //! M2 vs. Z in various pT bins
110
111 //DCA distributions
112 TH1D *hDCAxy[nBconf][18][nbin]; //! DCAxy distribution with NsigmaTpcCut for each particle species, in pT bins
113 TH1D *hDCAz[nBconf][18][nbin]; //! DCAz distribution with NsigmaTpcCut for each particle species, in pT bins
983b8a42 114
de383542 115 //TOF mass distributions
116 TH1D *hM2CutDCAxy[nBconf][18][nbin]; //! Tof m2 distribution in DCAxyCut and with NsigmaTpcCut
117 TH1D *hM2CutGroundDCAxy[nBconf][18][nbin]; //! Tof m2 distribution in the background of DCAxyCut (secondary nuclei selection) and with NsigmaTpcCut
983b8a42 118
de383542 119 //Parametrizations
120 TF1 *fPmeanVsPexp[3]; //! Parameterization of (<p>-pExp)/pExp vs pExp for p,d,He3
8aa5d867 121
64e976d4 122 //...
123 TH2F *fPmeanVsBetaGamma[nBconf][18]; //!<p>/p vs beta*gamma (TH1)
124 TProfile *prPmeanVsBetaGamma[nBconf][18]; //!<p>/p vs beta*gamma (profile)
125
de383542 126 //------------------------------Methods----------------------------------------
8f9efebd
MC
127 void GetMassFromPvertex(Double_t beta, Double_t p, Double_t &M2); //...*
128 void GetZTpc(Double_t dedx, Double_t pTPC, Double_t M2, Double_t &Z2); //...*
129 void GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2, Int_t iCorr, Double_t pVtx, Int_t FlagPid, Double_t charge); //...*
de383542 130
983b8a42 131 ClassDef(AliAnalysisNucleiMass, 1);
132};
133
134#endif