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