1 #ifndef ALIANALYSISNUCLEIMASS_H
2 #define ALIANALYSISNUCLEIMASS_H
8 #include <AliAnalysisTaskSE.h>
9 #include <AliPIDResponse.h>
20 class AliESDtrackCuts;
25 class AliAnalysisNucleiMass : public AliAnalysisTaskSE {
27 AliAnalysisNucleiMass();
28 AliAnalysisNucleiMass(const char *name);
30 virtual ~AliAnalysisNucleiMass();
32 virtual void UserCreateOutputObjects();
33 virtual void UserExec(Option_t *option);
34 virtual void Terminate(Option_t *);
36 void SetCentrality(Float_t *fCt) {fCentrality[0]=fCt[0];fCentrality[1]=fCt[1];};
37 void SetFilterBit(Int_t TestFilterBit) {FilterBit=TestFilterBit;}
38 void SetNTPCcluster(Int_t nTPCcluster) {NminTPCcluster=nTPCcluster;}
39 void SetDCAzCut(Float_t fDCAzCut) {DCAzCUT =fDCAzCut;}
40 void SetDCAxyCut(Float_t fDCAxyCut) {DCAxyCUT=fDCAxyCut;}
41 void SetkTPCcut(Bool_t isTPCcut) {kTPCcut=isTPCcut;}
42 void SetNsigmaTPCCut(Float_t NsigmaTpcCut) {NsigmaTPCCut=NsigmaTpcCut;}
43 void SetisSignalCheck(Bool_t IsSignalCheck) {isSignalCheck=IsSignalCheck;}
44 void SetMomBin(Int_t iMomBin) {MomType=iMomBin;}
45 void SetAbsEtaLimit(Double_t *etaLimit) {EtaLimit[0]=etaLimit[0];EtaLimit[1]=etaLimit[1];}
46 void SetTRDanalysis(Bool_t kTrdAnalysis=kFALSE, Int_t iTrd=1) {kTRDana=kTrdAnalysis;iTRD=iTrd;}
49 AliAnalysisNucleiMass(const AliAnalysisNucleiMass &old);
50 AliAnalysisNucleiMass& operator=(const AliAnalysisNucleiMass &source);
52 TFile *fmism; //! For load the mism time distr
53 TH1F *hmism; //! The mism time distr
55 TFile *fchDist; //! Load the tof chan dist from IP
56 TH1D *hChDist; //! The tof chan dist from IP
58 static const Int_t nbin = 46; // number of pt bins
60 Double_t EtaLimit[2]; // Eta windows in analysis
62 Int_t MomType; // type of momentum bins in analysis (7 are all ON): (Flag: 001(1)->pT 010(2)->p 100(3)->pTPC)
64 Bool_t kTRDana; //TRD analysis: 0->No 1->Yes
66 Int_t iTRD; //TRD: 2->No TRD, 4->Yes TRD, 1->indifferent
70 Float_t fCentrality[2]; // centrality bin (min and max)
72 Int_t FilterBit; // filter be to be used
74 Int_t NminTPCcluster; // min TPC cluster number
76 Float_t DCAzCUT; // cut on DCA-z
77 Float_t DCAxyCUT; // cut on DCA-xy
79 Bool_t kTPCcut; // to apply a TPC 2 sigma cut
81 Bool_t kTPC; //! is > NminTPCcluster
82 Bool_t kTOF; //! kTOFout and kTIME required
84 Int_t iBconf; //! if Magnetic Configuration is down or up
86 Bool_t isSignalCheck; // if write with an appropriate binning the plots of the various signals (QA,...)
88 Float_t NsigmaTPCCut; // number of sigma Tpc Cut
90 AliAODEvent* fAOD; //! AOD object
92 AliESDEvent* fESD; //! ESD object
94 AliVEvent* fEvent; //! general object
96 AliPIDResponse *fPIDResponse; //! pointer to PID response
98 TList *fList1[2]; //! lists for slot
100 TH1F *hNeventSelected[2]; //! selected Event counter
102 TH1F *hNevent[2]; //! analyzed Event counter
104 TH1F *hZvertex[2]; //! z-vertex distribution
106 TH1F *hEtaDistribution[2][2]; //! Eta distribution of the tracks
108 TH2F *fEtaSpecies[2][18]; //! Eta distribution of the each particle identified by the TPC
110 TH1F *hPhi[2][6]; //! Phi particle distribution
112 TH2F *fEtaPhi[2][6]; //! Phi vs Eta particle distribution
114 TH2F *fPhiSpecies[2][18]; //! Phi vs Eta particle distribution identified by the TPC
116 TH2F *fdEdxVSp[2][3]; //! dedx vs p plots
118 TH2F *fBetaTofVSp[2]; //! beta vs p plots
120 TH1F *hTOFSignalPion[2]; //! pion TOF signal
122 TH2F *fM2vsP_NoTpcCut[2][3]; //! M2 vs. P
124 TH2F *fNsigmaTPC[2][9]; //! NsigmaTPC vs. pT
126 TH2F *fNsigmaTOF[2][9]; //! NsigmaTOF vs. pT
128 TH2F *fNsigmaTPCvsP_kTOFtrue[2][18]; //! NsigmaTPC vs. p with kTOFout && kTIME for provide TPC different cuts effect
130 TProfile *hDeDxExp[2][9]; //! TPC spline used
132 TProfile *hBetaExp[2][9]; //! TOF expected beta
134 TH2F *fM2vsZ[2][15]; //! M2 vs. Z in different pT range
136 TH2F *fM2vsZwithTPC[2][15]; //! M2 vs. Z in different pT range with 2sigmaTPC cut
138 TH2F *fM2vsP[2][18]; //! M2 vs. P with 2 sigma TPC cut for each particle species
140 TH1D *hDCAxy[2][18][nbin]; //! DCA distribution in 2 sigma TPC cut for each particle species, in pT bins
142 TH1D *hM2CutDCAxy[2][18][nbin]; //! M^{2} IN DCA cut (in 2 sigma TPC cut), in pT bins
144 TH1D *hDCAz[2][18][nbin]; //! DCAz distribution in 2 sigma TPC cut for each particle species, in pT bins
146 TH1D *hM2CutGroundDCAxy[2][18][nbin];//! M^{2} OUT DCA cut (in 2 sigma TPC cut), in pT bins
148 TH2F *fM2vsP_NoTpcCut_DCAxyCut[2][3];//! M^{2} vs. P with a DCAxy cut
150 TH2F *fM2vsP_DCAxyCut[2][18]; //! M^{2} vs. P with a DCAxy cut (2sigma TPC cut)
152 TH1D *hDCAxy_pbin[2][18][nbin]; //! DCA distribution in 2 sigma TPC cut for each particle species, in p bins
154 TH1D *hM2CutDCAxy_pbin[2][18][nbin]; //! M^{2} IN DCA cut (in 2 sigma TPC cut), in p bins
156 TH1D *hDCAz_pbin[2][18][nbin]; //! DCAz distribution in 2 sigma TPC cut for each particle species, in p bins
158 TH1D *hM2CutGroundDCAxy_pbin[2][18][nbin];//! M^{2} OUT DCA cut (in 2 sigma TPC cut), in p bins
160 TH1D *hDCAxy_pTpcbin[2][18][nbin]; //! DCA distribution in 2 sigma TPC cut for each particle species, in pTPC bins
162 TH1D *hM2CutDCAxy_pTpcbin[2][18][nbin]; //! M^{2} IN DCA cut (in 2 sigma TPC cut), in pTPC bins
164 TH1D *hDCAz_pTpcbin[2][18][nbin]; //! DCAz distribution in 2 sigma TPC cut for each particle species, in pTPC bins
166 TH1D *hM2CutGroundDCAxy_pTpcbin[2][18][nbin];//! M^{2} OUT DCA cut (in 2 sigma TPC cut), in pTPC bins
168 TH1D *hM2BkgMism[2][3][nbin]; //! M2 from mismatch background in each momentum bin
172 ClassDef(AliAnalysisNucleiMass, 1);