]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx
- Removed TOF electron exclusion (el contamination in TOF pi sample can be treated...
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / masses / AliAnalysisNucleiMass.cxx
CommitLineData
983b8a42 1#include "AliAnalysisNucleiMass.h"
2
3// ROOT includes
4#include <TMath.h>
5#include "TChain.h"
6
7// AliRoot includes
8#include "AliInputEventHandler.h"
9#include "AliAODEvent.h"
10#include "AliESDEvent.h"
11#include "AliVEvent.h"
12#include "AliAODTrack.h"
13#include "AliAODPid.h"
14#include "AliCentrality.h"
15#include "TH2F.h"
16#include "TH2D.h"
17#include "TH1F.h"
18#include "TF1.h"
c77430f9 19#include "TF2.h"
983b8a42 20#include "TGraph.h"
21#include "TProfile.h"
22#include "AliESDtrackCuts.h"
23#include "AliAnalysisManager.h"
24395a5c 24#include "TFile.h"
983b8a42 25
c77430f9 26ClassImp(AliAnalysisNucleiMass)
983b8a42 27
28//_____________________________________________________________________________
29AliAnalysisNucleiMass::AliAnalysisNucleiMass():
30 AliAnalysisTaskSE(),
623d9bd1 31 Centrality(),
de383542 32 FilterBit(16),
623d9bd1 33 EtaLimit(),
de383542 34 DCAxyCut(0.1),
35 DCAzCut(1000.),
36 NsigmaTpcCut(2.0),
37 NminTpcCluster(0),
38 iTrdCut(0),
39 kSignalCheck(1),
40 iMtof(1),
c77430f9 41 kPvtxCorr(1),
de383542 42 iBconf(0),
43 kTOF(0),
44 fAOD(NULL),
983b8a42 45 fESD(NULL),
46 fEvent(NULL),
de383542 47 fPIDResponse(NULL)
983b8a42 48{
623d9bd1
MC
49 Centrality[0]=0.0;
50 Centrality[1]=100.0;
51
52 EtaLimit[0]=-99.0;
53 EtaLimit[1]=99.0;
54
de383542 55 fList[0]=new TList();
56 fList[0]->SetName("results");
bfb9094a 57
de383542 58 fList[1]=new TList();
59 fList[1]->SetName("results2");
983b8a42 60}
61//______________________________________________________________________________
62AliAnalysisNucleiMass::AliAnalysisNucleiMass(const char *name):
63 AliAnalysisTaskSE(name),
623d9bd1 64 Centrality(),
de383542 65 FilterBit(16),
623d9bd1 66 EtaLimit(),
de383542 67 DCAxyCut(0.1),
68 DCAzCut(1000.),
69 NsigmaTpcCut(2.0),
70 NminTpcCluster(0),
71 iTrdCut(0),
72 kSignalCheck(1),
73 iMtof(1),
c77430f9 74 kPvtxCorr(1),
de383542 75 iBconf(0),
76 kTOF(0),
983b8a42 77 fAOD(NULL),
78 fESD(NULL),
79 fEvent(NULL),
de383542 80 fPIDResponse(NULL)
983b8a42 81{
623d9bd1
MC
82
83 Centrality[0]=0.0;
84 Centrality[1]=100.0;
85
86 EtaLimit[0]=-99.0;
87 EtaLimit[1]=99.0;
88
de383542 89 fList[0]=new TList();
983b8a42 90 DefineOutput(1, TList::Class());
de383542 91 fList[0]->SetName("results");
bfb9094a 92
de383542 93 fList[1]=new TList();
bfb9094a 94 DefineOutput(2, TList::Class());
de383542 95 fList[1]->SetName("results2");
983b8a42 96}
97//_____________________________________________________________________________
98AliAnalysisNucleiMass::~AliAnalysisNucleiMass()
99{
de383542 100 if(fList[0]) delete fList[0];
101 if(fList[1]) delete fList[1];
983b8a42 102}
103//______________________________________________________________________________
104void AliAnalysisNucleiMass::UserCreateOutputObjects()
105{
de383542 106 Char_t namePart[nPart][30];
107 snprintf(namePart[0],30,"e");
108 snprintf(namePart[1],30,"#mu");
109 snprintf(namePart[2],30,"#pi");
110 snprintf(namePart[3],30,"K");
111 snprintf(namePart[4],30,"p");
112 snprintf(namePart[5],30,"d");
113 snprintf(namePart[6],30,"t");
114 snprintf(namePart[7],30,"He3");
115 snprintf(namePart[8],30,"He4");
983b8a42 116
de383542 117 Char_t name[nSpec][30];
118 snprintf(name[0],20,"e^{+}");
119 snprintf(name[1],20,"#mu^{+}");
120 snprintf(name[2],20,"#pi^{+}");
121 snprintf(name[3],20,"K^{+}");
122 snprintf(name[4],20,"p");
123 snprintf(name[5],20,"d");
124 snprintf(name[6],20,"t");
125 snprintf(name[7],20,"He3");
126 snprintf(name[8],20,"He4");
127 snprintf(name[9],20,"e^{-}");
128 snprintf(name[10],20,"#mu^{-}");
129 snprintf(name[11],20,"#pi^{-}");
130 snprintf(name[12],20,"K^{-}");
131 snprintf(name[13],20,"#bar{p}");
132 snprintf(name[14],20,"#bar{d}");
133 snprintf(name[15],20,"#bar{t}");
134 snprintf(name[16],20,"#bar{He3}");
135 snprintf(name[17],20,"#bar{He4}");
136
c77430f9 137 Double_t binP[nbin+1];
de383542 138 for(Int_t i=0;i<nbin+1;i++) {
c77430f9 139 binP[i]=0.4+0.1*i;
de383542 140 }
141
142 Char_t name_nbin[nbin][200];
143 for(Int_t j=0;j<nbin;j++) {
c77430f9 144 snprintf(name_nbin[j],200,"%.1f<P<%.1f",binP[j],binP[j+1]);
de383542 145 }
146
147 for(Int_t iB=0;iB<nBconf;iB++) {
983b8a42 148
de383542 149 htemp[iB] = new TH1F("htemp","htemp (avoid the problem with the empty list...);B field",20,-10,10);
3f2b4d7b 150
de383542 151 hCentrality[iB][0] = new TH1F("hCentrality_Selected","Centrality (selected events);centrality(%)",20,0,100);
152 hCentrality[iB][1] = new TH1F("hCentrality_Analyzed","Centrality (analyzed events);centrality (%)",20,0,100);
bfb9094a 153
de383542 154 hZvertex[iB][0] = new TH1F("hZvertex_Selected","Vertex distribution of selected events;z vertex (cm)",240,-30,30);
155 hZvertex[iB][1] = new TH1F("hZvertex_Analyzed","Vertex distribution of analyzed events;z vertex (cm)",240,-30,30);
bfb9094a 156
623d9bd1 157 hEta[iB] = new TH1F("hEta_Analyzed","|#eta| distribution after the track cuts;|#eta|",200,-1.0,1.0);
bfb9094a 158
de383542 159 hPhi[iB] = new TH1F("hPhi_Analyzed","#phi distribution after the track cuts;#phi (rad.)",90,0,6.3);//Each TRD supermodule is divided for 5 (DeltaPhi(TRD)=0.35 theoretical)
bfb9094a 160
64e976d4 161 Int_t hbins[2];
623d9bd1 162 if(kSignalCheck!=0) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=90;} to reduce RAM consuming (toram)
c77430f9 163 else {hbins[0]=1; hbins[1]=1;}
623d9bd1 164 fEtaPhi[iB] = new TH2F("fEtaPhi_Analyzed","#eta vs. #phi after the track cuts;|#eta|;#phi (rad.)",hbins[0],-1.0,1.0,hbins[1],0,6.3);
38fdd8e0 165
de383542 166 hNTpcCluster[iB] = new TH1F("hNTpcCluster","Number of the TPC clusters after the track cuts;n_{cl}^{TPC}",300,0,300);
38fdd8e0 167
de383542 168 hNTrdSlices[iB] = new TH1F("hNTrdSlices","Number of the TRD slices after the track cuts;n_{slices}^{TRD}",40,0,40);
38fdd8e0 169
de383542 170 if(kSignalCheck==1) {hbins[0]=500; hbins[1]=2000;}
171 else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
623d9bd1 172 else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=500;} toram
de383542 173 fdEdxVSp[iB][0] = new TH2F("fdEdxVSp_pos","dE/dx vs p (positive charge); p/|z| (GeV/c); dE/dx_{TPC} (a.u.)",hbins[0],0,5,hbins[1],0,1000);
174 fdEdxVSp[iB][1] = new TH2F("fdEdxVSp_neg","dE/dx vs p (negative charge); p/|z| (GeV/c); dE/dx_{TPC} (a.u.)",hbins[0],0,5,hbins[1],0,1000);
38fdd8e0 175
de383542 176 Char_t name_hDeDxExp[nPart][200];
177 Char_t title_hDeDxExp[nPart][200];
178 for(Int_t i=0;i<nPart;i++) {
179 snprintf(name_hDeDxExp[i],200,"hDeDxExp_%s",namePart[i]);
180 snprintf(title_hDeDxExp[i],200,"Expected dE/dx of %s in the TPC;p/|z| (GeV/c);dE/dx_{TPC} (a.u.)",namePart[i]);
623d9bd1 181 hDeDxExp[iB][i] = new TProfile(name_hDeDxExp[i],title_hDeDxExp[i],1,0,5,0,1,"");//,500,0,5,0,1000,""); toram
38fdd8e0 182 }
38fdd8e0 183
de383542 184 Char_t name_fNsigmaTpc[nPart][200];
185 Char_t title_fNsigmaTpc[nPart][200];
623d9bd1 186 if(kSignalCheck==1) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=100;} toram
de383542 187 else {hbins[0]=1; hbins[1]=1;}
188 for(Int_t i=0;i<nPart;i++) {
189 snprintf(name_fNsigmaTpc[i],200,"NsigmaTpc_%s",namePart[i]);
190 snprintf(title_fNsigmaTpc[i],200,"NsigmaTpc_%s;p_{TPC}/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",namePart[i],namePart[i]);
191 fNsigmaTpc[iB][i] = new TH2F(name_fNsigmaTpc[i],title_fNsigmaTpc[i],hbins[0],0,5,hbins[1],-5,5);
3f2b4d7b 192 }
193
623d9bd1 194 if(kSignalCheck>0) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=100;} toram
de383542 195 else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
196 Char_t name_fNsigmaTpc_kTOF[nSpec][200];
197 Char_t title_fNsigmaTpc_kTOF[nSpec][200];
198 for(Int_t i=0;i<nSpec;i++) {
199 snprintf(name_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_%s_kTOF",name[i]);
c77430f9 200 snprintf(title_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_kTOF_%s in DCAxyCut;p/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
de383542 201 fNsigmaTpc_kTOF[iB][i] = new TH2F(name_fNsigmaTpc_kTOF[i],title_fNsigmaTpc_kTOF[i],hbins[0],0,5,hbins[1],-5,5);
3f2b4d7b 202 }
203
de383542 204 if(kSignalCheck==1) {hbins[0]=1000; hbins[1]=1300;}
205 else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
623d9bd1 206 else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=260;}
de383542 207 fBetaTofVSp[iB][0] = new TH2F("fBetaTofVSp_pos","#beta_{TOF} vs p/|z| (positive charge);p(GeV/c);#beta_{TOF}",hbins[0],0,5,hbins[1],0.4,1.05);
208 fBetaTofVSp[iB][1] = new TH2F("fBetaTofVSp_neg","#beta_{TOF} vs p/|z| (negative charge);p(GeV/c);#beta_{TOF}",hbins[0],0,5,hbins[1],0.4,1.05);
209
210 Char_t name_hBetaExp[nPart][200];
211 Char_t title_hBetaExp[nPart][200];
212 for(Int_t i=0;i<nPart;i++) {
213 snprintf(name_hBetaExp[i],200,"hBetaTofVsP_Exp_%s",namePart[i]);
214 snprintf(title_hBetaExp[i],200,"Expected #beta_{TOF} vs p/|z| of %s;p/|z| (GeV/c); #beta_{TOF}",namePart[i]);
623d9bd1 215 hBetaExp[iB][i] = new TProfile(name_hBetaExp[i],title_hBetaExp[i],1,0,5,0.4,1.05,"");//,400,0,5,0.4,1.05,""); toram
3f2b4d7b 216 }
217
de383542 218 Char_t name_fNsigmaTof[nPart][200];
219 Char_t title_fNsigmaTof[nPart][200];
220 if(kSignalCheck==1) {hbins[0]=100; hbins[1]=100;}
221 else {hbins[0]=1; hbins[1]=1;}
222 for(Int_t i=0;i<nPart;i++) {
223 snprintf(name_fNsigmaTof[i],200,"NsigmaTof_%s",namePart[i]);
224 snprintf(title_fNsigmaTof[i],200,"NsigmaTof_%s;p_{T}/|z| (GeV/c);n_{#sigma_{TOF}}^{%s}",namePart[i],namePart[i]);
225 fNsigmaTof[iB][i] = new TH2F(name_fNsigmaTof[i],title_fNsigmaTof[i],hbins[0],0,5,hbins[1],-5,5);
3f2b4d7b 226 }
227
de383542 228 Char_t name_fNsigmaTof_DcaCut[nSpec][200];
229 Char_t title_fNsigmaTof_DcaCut[nSpec][200];
c77430f9
MC
230 if(kSignalCheck==1) {hbins[0]=100; hbins[1]=100;}
231 else {hbins[0]=1; hbins[1]=1;}
de383542 232 for(Int_t i=0;i<nSpec;i++) {
233 snprintf(name_fNsigmaTof_DcaCut[i],200,"NsigmaTof_DcaCut_%s",name[i]);
234 snprintf(title_fNsigmaTof_DcaCut[i],200,"NsigmaTof_%s with DCAxyCut;p_{T}/|z| (GeV/c);n_{#sigma_{TOF}}^{%s}",name[i],name[i]);
235 fNsigmaTof_DcaCut[iB][i] = new TH2F(name_fNsigmaTof_DcaCut[i],title_fNsigmaTof_DcaCut[i],hbins[0],0,5,hbins[1],-5,5);
24395a5c 236 }
24395a5c 237
de383542 238 if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
239 else {hbins[0]=1; hbins[1]=1;}
c77430f9
MC
240 fM2vsP_NoTpcCut[iB][0][0] = new TH2F("fM2vsP_NoTpcCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
241 fM2vsP_NoTpcCut[iB][0][1] = new TH2F("fM2vsP_NoTpcCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
24395a5c 242
de383542 243 if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
244 else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
623d9bd1 245 else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}// {hbins[0]=1000; hbins[1]=100;} toram
c77430f9
MC
246 fM2vsP_NoTpcCut[iB][1][0] = new TH2F("fM2vsP_NoTpcCut_DCAxyCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge) with DCAxy cut;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
247 fM2vsP_NoTpcCut[iB][1][1] = new TH2F("fM2vsP_NoTpcCut_DCAxyCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge) with DCAxy cut;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
24395a5c 248
c77430f9
MC
249 Char_t name_fM2vsP[2][18][300];
250 Char_t title_fM2vsP[2][18][300];
de383542 251
252 for(Int_t i=0;i<nSpec;i++) {
c77430f9
MC
253 snprintf(name_fM2vsP[0][i],300,"fM2vsPc_%s",name[i]);
254 snprintf(title_fM2vsP[0][i],300,"m^{2}/z^{2}_{TOF} vs p/|z| of %s with a NsigmaTpcCut (pReco->pTrue for nuclei);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",name[i]);
24395a5c 255
c77430f9
MC
256 snprintf(name_fM2vsP[1][i],300,"fM2vsPc_%s_DCAxyCut",name[i]);
257 snprintf(title_fM2vsP[1][i],300,"m^{2}/z^{2}_{TOF} vs p/|z| of %s with a NsigmaTpcCut and with the DCAxy cut (pReco->pTrue for nuclei);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",name[i]);
24395a5c 258
de383542 259 if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
260 else {hbins[0]=1; hbins[1]=1;}
c77430f9 261 fM2vsP[iB][0][i] = new TH2F(name_fM2vsP[0][i],title_fM2vsP[0][i],hbins[0],0,10,hbins[1],0,5);
de383542 262
263 if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
264 else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
623d9bd1 265 else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=1000; hbins[1]=100;} toram
c77430f9 266 fM2vsP[iB][1][i] = new TH2F(name_fM2vsP[1][i],title_fM2vsP[1][i],hbins[0],0,10,hbins[1],0,5);
bfb9094a 267 }
268
de383542 269 if(kSignalCheck==1) {hbins[0]=4000; hbins[1]=1000;}
270 else {hbins[0]=1; hbins[1]=1;}
271 fM2vsZ[iB][0] = new TH2F("fM2vsZ","m^{2}/z^{2}_{TOF} vs z_{TPC} Integrated p_{T};z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
272 fM2vsZ[iB][1] = new TH2F("fM2vsZ_0.5pT1.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 0.5<pT<1.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
273 fM2vsZ[iB][2] = new TH2F("fM2vsZ_1.0pT1.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 1.0<pT<1.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
274 fM2vsZ[iB][3] = new TH2F("fM2vsZ_1.5pT2.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 1.5<pT<2.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
275 fM2vsZ[iB][4] = new TH2F("fM2vsZ_2.0pT2.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 2.0<pT<2.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
276 fM2vsZ[iB][5] = new TH2F("fM2vsZ_2.5pT3.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 2.5<pT<3.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
277 fM2vsZ[iB][6] = new TH2F("fM2vsZ_3.0pT3.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 3.0<pT<3.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
278 fM2vsZ[iB][7] = new TH2F("fM2vsZ_3.5pT4.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 3.5<pT<4.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
279 fM2vsZ[iB][8] = new TH2F("fM2vsZ_4.0pT4.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 4.0<pT<4.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
280 fM2vsZ[iB][9] = new TH2F("fM2vsZ_4.5pT5.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 2.0<pT<2.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
281
282 Char_t name_hDCAxy[18][nbin][200];
283 Char_t title_hDCAxy[18][nbin][200];
284 Char_t name_hDCAz[18][nbin][200];
285 Char_t title_hDCAz[18][nbin][200];
286 for(Int_t iS=0;iS<nSpec;iS++) {
bfb9094a 287 for(Int_t j=0;j<nbin;j++) {
de383542 288 snprintf(name_hDCAxy[iS][j],200,"hDCAxy_%s_%s",name[iS],name_nbin[j]);
289 snprintf(title_hDCAxy[iS][j],200,"hDCAxy_%s_%s;DCA_{xy} (cm)",name[iS],name_nbin[j]);
290 hDCAxy[iB][iS][j] = new TH1D(name_hDCAxy[iS][j],title_hDCAxy[iS][j],875,-3.5,3.5);
24395a5c 291
de383542 292 snprintf(name_hDCAz[iS][j],200,"hDCAz_%s_%s",name[iS],name_nbin[j]);
293 snprintf(title_hDCAz[iS][j],200,"hDCAz_%s_%s;DCA_{z} (cm)",name[iS],name_nbin[j]);
294 hDCAz[iB][iS][j] = new TH1D(name_hDCAz[iS][j],title_hDCAz[iS][j],875,-3.5,3.5);
bfb9094a 295 }
296 }
de383542 297
298 Char_t name_hM2CutDCAxy[18][nbin][200];
299 Char_t title_hM2CutDCAxy[18][nbin][200];
300 Char_t name_hM2CutGroundDCAxy[18][nbin][200];
301 Char_t title_hM2CutGroundDCAxy[18][nbin][200];
302 for(Int_t iS=0;iS<nSpec;iS++) {
24395a5c 303 for(Int_t j=0;j<nbin;j++) {
de383542 304 snprintf(name_hM2CutDCAxy[iS][j],200,"hM2_CutDCAxy_%s_%s",name[iS],name_nbin[j]);
305 snprintf(title_hM2CutDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s in DCAxy cut and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
306 snprintf(name_hM2CutGroundDCAxy[iS][j],200,"hM2_GroundCatDCAxy_%s_%s",name[iS],name_nbin[j]);
307 snprintf(title_hM2CutGroundDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s in the bkg. of DCAxy and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
24395a5c 308 }
bfb9094a 309 }
3f2b4d7b 310
de383542 311 const Int_t BinM2pT[nPart]={1,1,600,250,500,500,1000,400,600};
312 const Double_t RangeM2min[nPart]={0.0,0.0,-0.1,0.0,0.0,0.0,0.0,0.0,0.0};
313 const Double_t RangeM2max[nPart]={1.0,1.0,0.5,2.0,4.0,6.0,12.0,4.0,6.0};
3202676b 314
de383542 315 for(Int_t iS=0;iS<nPart;iS++) {
316 for(Int_t j=0;j<nbin;j++) {
7f7ede25 317
de383542 318 hM2CutDCAxy[iB][iS][j] = new TH1D(name_hM2CutDCAxy[iS][j],title_hM2CutDCAxy[iS][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
319 hM2CutGroundDCAxy[iB][iS][j] = new TH1D(name_hM2CutGroundDCAxy[iS][j],title_hM2CutGroundDCAxy[iS][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
320
321 hM2CutDCAxy[iB][iS+nPart][j] = new TH1D(name_hM2CutDCAxy[iS+nPart][j],title_hM2CutDCAxy[iS+nPart][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
322 hM2CutGroundDCAxy[iB][iS+nPart][j] = new TH1D(name_hM2CutGroundDCAxy[iS+nPart][j],title_hM2CutGroundDCAxy[iS+nPart][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
8aa5d867 323 }
bfb9094a 324 }
de383542 325
64e976d4 326 Char_t name_fPmeanVsBetaGamma[18][200];
327 Char_t title_fPmeanVsBetaGamma[18][200];
328
329 hbins[0]=200; hbins[1]=200;
330 for(Int_t iS=0;iS<nSpec;iS++) {
331 snprintf(name_fPmeanVsBetaGamma[iS],200,"fPmeanVsPvtx_%s",name[iS]);
c77430f9 332 snprintf(title_fPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
64e976d4 333 fPmeanVsBetaGamma[iB][iS]=new TH2F(name_fPmeanVsBetaGamma[iS],title_fPmeanVsBetaGamma[iS],hbins[0],0,10,hbins[1],0.8,1.2);
334 }
335
336 Char_t name_prPmeanVsBetaGamma[18][200];
337 Char_t title_prPmeanVsBetaGamma[18][200];
338
339 for(Int_t iS=0;iS<nSpec;iS++) {
340 snprintf(name_prPmeanVsBetaGamma[iS],200,"prPmeanVsPvtx_%s",name[iS]);
c77430f9 341 snprintf(title_prPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
64e976d4 342 prPmeanVsBetaGamma[iB][iS]=new TProfile(name_prPmeanVsBetaGamma[iS],title_prPmeanVsBetaGamma[iS],hbins[0],0,10,0.8,1.2,"");
343 }
c77430f9
MC
344
345 //for (bar)d
346 fPvtxTrueVsReco[0]=new TF2("fcorr_d","([0]*TMath::Power(x,[1])+[2])*(TMath::Power((TMath::Exp([3]*x)+[4]),[5]*TMath::Power(y,[6])));|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)d
347 fPvtxTrueVsReco[0]->SetParameter(0,0.031263);
348 fPvtxTrueVsReco[0]->SetParameter(1,-3.276770);
349 fPvtxTrueVsReco[0]->SetParameter(2,1.000113);
350 fPvtxTrueVsReco[0]->SetParameter(3,-5.195875);
351 fPvtxTrueVsReco[0]->SetParameter(4,1.000674);
352 fPvtxTrueVsReco[0]->SetParameter(5,2.870503);
353 fPvtxTrueVsReco[0]->SetParameter(6,3.777729);
354
355 fPvtxTrueVsReco[0]->SetNpx(fPvtxTrueVsReco[0]->GetNpx()*10);
356
357 //for (bar)He3
358 fPvtxTrueVsReco[1]=new TF2("fcorr_He","([0]*TMath::Power(x,[1])+[2])*(TMath::Power((TMath::Exp([3]*x)+[4]),[5]*TMath::Power(y,[6])));|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)He3
359 fPvtxTrueVsReco[1]->SetParameter(0,0.037986);
360 fPvtxTrueVsReco[1]->SetParameter(1,-2.707620);
361 fPvtxTrueVsReco[1]->SetParameter(2,1.000742);
362 fPvtxTrueVsReco[1]->SetParameter(3,-4.934743);
363 fPvtxTrueVsReco[1]->SetParameter(4,1.001640);
364 fPvtxTrueVsReco[1]->SetParameter(5,2.744372);
365 fPvtxTrueVsReco[1]->SetParameter(6,3.528561);
366
367 fPvtxTrueVsReco[1]->SetNpx(fPvtxTrueVsReco[1]->GetNpx()*10);
368
369 prPvtxTrueVsReco[iB][0]=new TProfile("prPvtxTrueVsReco_d","p_{true} vs p_{reco} of d and dbar;p_{reco} (GeV/c); p_{true}/p_{reco} (d)",200,0,10);
370 prPvtxTrueVsReco[iB][1]=new TProfile("prPvtxTrueVsReco_He3","p_{true} vs p_{reco} of He3 and He3bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He3)",200,0,10);
371
372 Char_t nameTemp[10][200];
373 snprintf(nameTemp[0],200,"#pi^{+}");
374 snprintf(nameTemp[1],200,"K^{+}");
375 snprintf(nameTemp[2],200,"p");
376 snprintf(nameTemp[3],200,"d");
377 snprintf(nameTemp[4],200,"He3");
378 snprintf(nameTemp[5],200,"#pi^{-}");
379 snprintf(nameTemp[6],200,"K^{-}");
380 snprintf(nameTemp[7],200,"#bar{p}");
381 snprintf(nameTemp[8],200,"#bar{d}");
382 snprintf(nameTemp[9],200,"#bar{He3}");
383
c77430f9 384 Char_t name_fPmeanVsBGcorr[10][200];
c77430f9
MC
385 for(Int_t i=0;i<10;i++) {
386 snprintf(name_fPmeanVsBGcorr[i],200,"fPmeanVsBGcorr_%s",nameTemp[i]);
623d9bd1
MC
387 fPmeanVsBGcorr[0][i]=new TF1(name_fPmeanVsBGcorr[i],"[2]-[0]*TMath::Power(x,[1]);p_{vtx}/m;<p>/p",0.0001,100);
388 fPmeanVsBGcorr[1][i]=new TF1(name_fPmeanVsBGcorr[i],"[2]-[0]*TMath::Power(x,[1]);p_{vtx}/m;<p>/p",0.0001,100);
389 //fPmeanVsBGcorr[i]->SetParameters(pars_fPmeanVsBGcorr[i]);
390 //fPmeanVsBGcorr[i]->SetNpx(fPmeanVsBGcorr[i]->GetNpx()*10);
c77430f9 391 }
623d9bd1
MC
392 SetPmeanCorrections();
393
c77430f9
MC
394 Char_t name_prPmeanVsBGcorr[10][200];
395 Char_t title_prPmeanVsBGcorr[10][200];
396
397 hbins[0]=200;
398 for(Int_t iS=0;iS<10;iS++) {
399 snprintf(name_prPmeanVsBGcorr[iS],200,"prPmeanVsBGcorr_%s",nameTemp[iS]);
400 snprintf(title_prPmeanVsBGcorr[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s as parameterized in input TF1 (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",nameTemp[iS],nameTemp[iS],nameTemp[iS]);
401 prPmeanVsBGcorr[iB][iS]=new TProfile(name_prPmeanVsBGcorr[iS],title_prPmeanVsBGcorr[iS],hbins[0],0,10,0.8,1.2,"");
402 }
64e976d4 403
de383542 404 fList[iB]->Add(htemp[iB]);
405 for(Int_t i=0;i<2;i++) fList[iB]->Add(hCentrality[iB][i]);
406 for(Int_t i=0;i<2;i++) fList[iB]->Add(hZvertex[iB][i]);
407 fList[iB]->Add(hEta[iB]);
408 fList[iB]->Add(hPhi[iB]);
c77430f9 409 //fList[iB]->Add(fEtaPhi[iB]);
de383542 410 fList[iB]->Add(hNTpcCluster[iB]);
411 fList[iB]->Add(hNTrdSlices[iB]);
c77430f9
MC
412 //for(Int_t i=0;i<2;i++) fList[iB]->Add(fdEdxVSp[iB][i]);
413 //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(hDeDxExp[iB][i]);
414 //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(fNsigmaTpc[iB][i]);
de383542 415 for(Int_t i=0;i<nPart;i++) {
416 if(kSignalCheck!=1)
417 if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
c77430f9
MC
418 //fList[iB]->Add(fNsigmaTpc_kTOF[iB][i]);
419 //fList[iB]->Add(fNsigmaTpc_kTOF[iB][i+nPart]);
bfb9094a 420 }
c77430f9
MC
421 //for(Int_t i=0;i<2;i++) fList[iB]->Add(fBetaTofVSp[iB][i]);
422 //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(hBetaExp[iB][i]);
423 //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(fNsigmaTof[iB][i]);
de383542 424 for(Int_t i=0;i<nPart;i++) {
425 if(kSignalCheck!=1)
426 if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
c77430f9
MC
427 //fList[iB]->Add(fNsigmaTof_DcaCut[iB][i]);
428 //fList[iB]->Add(fNsigmaTof_DcaCut[iB][i+nPart]);
bfb9094a 429 }
c77430f9
MC
430 //for(Int_t i=0;i<2;i++) fList[iB]->Add(fM2vsP_NoTpcCut[iB][0][i]);
431 //for(Int_t i=0;i<2;i++) fList[iB]->Add(fM2vsP_NoTpcCut[iB][1][i]);
de383542 432 for(Int_t i=0;i<nPart;i++) {
433 if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
c77430f9
MC
434 //fList[iB]->Add(fM2vsP[iB][0][i]);
435 //fList[iB]->Add(fM2vsP[iB][0][i+nPart]);
bfb9094a 436 }
de383542 437 for(Int_t i=0;i<nPart;i++){
438 if(kSignalCheck!=1)
439 if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
c77430f9
MC
440 fList[iB]->Add(fM2vsP[iB][1][i]);
441 fList[iB]->Add(fM2vsP[iB][1][i+nPart]);
442 }
443 for(Int_t i=0;i<2;i++){
444 //fList[iB]->Add(fPvtxTrueVsReco[i]);
445 fList[iB]->Add(prPvtxTrueVsReco[iB][i]);
bfb9094a 446 }
64e976d4 447 if(iMtof!=1) {
448 for(Int_t i=0;i<nPart;i++){
c77430f9 449 if(i<2) continue;//e,mu excluded
64e976d4 450 fList[iB]->Add(fPmeanVsBetaGamma[iB][i]);
451 fList[iB]->Add(prPmeanVsBetaGamma[iB][i]);
452 fList[iB]->Add(fPmeanVsBetaGamma[iB][i+nPart]);
453 fList[iB]->Add(prPmeanVsBetaGamma[iB][i+nPart]);
454 }
455 }
c77430f9
MC
456 if(iMtof>2) {
457 //for(Int_t i=0;i<10;i++)fList[iB]->Add(fPmeanVsBGcorr[i]);
458 for(Int_t i=0;i<10;i++)fList[iB]->Add(prPmeanVsBGcorr[iB][i]);
459 }
460 //for(Int_t i=0;i<10;i++) fList[iB]->Add(fM2vsZ[iB][i]);
de383542 461 for(Int_t i=0;i<nPart;i++){
462 if(kSignalCheck!=1)
463 if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
464 for(Int_t j=0;j<nbin;j++){
465 fList[iB]->Add(hDCAxy[iB][i][j]);
466 fList[iB]->Add(hDCAz[iB][i][j]);
467 fList[iB]->Add(hM2CutDCAxy[iB][i][j]);
468 fList[iB]->Add(hM2CutGroundDCAxy[iB][i][j]);
469 fList[iB]->Add(hDCAxy[iB][i+nPart][j]);
470 fList[iB]->Add(hDCAz[iB][i+nPart][j]);
471 fList[iB]->Add(hM2CutDCAxy[iB][i+nPart][j]);
472 fList[iB]->Add(hM2CutGroundDCAxy[iB][i+nPart][j]);
bfb9094a 473 }
24395a5c 474 }
de383542 475
bfb9094a 476 // Post output data.
de383542 477 PostData(1, fList[0]);
478 PostData(2, fList[1]);
c77430f9 479
de383542 480 }//end iB loop
983b8a42 481}
482//______________________________________________________________________________
483void AliAnalysisNucleiMass::UserExec(Option_t *)
484{
485 // Main loop
486 // Called for each event
487
488 fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
489 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
490 if(!fAOD && !fESD){
491 Printf("%s:%d AODEvent and ESDEvent not found in Input Manager",(char*)__FILE__,__LINE__);
983b8a42 492 return;
493 }
494
495 if(fESD) fEvent = fESD;
496 else fEvent = fAOD;
497
498 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
499 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
de383542 500 fPIDResponse=inputHandler->GetPIDResponse();
bfb9094a 501
de383542 502 //--------------------------Magnetic field polarity--------------------
bfb9094a 503 Double_t fBfield=fEvent->GetMagneticField();
504 if(fBfield<0.0) iBconf=0;//B--
505 else iBconf=1;//B++
de383542 506 for(Int_t i=0;i<nBconf;i++) htemp[i]->Fill(fBfield);
507
508 //--------------------------Centrality--------------------------------
509 Double_t v0Centr = -10.;
510 AliCentrality *centrality = fEvent->GetCentrality();
511 if (centrality){
512 v0Centr=centrality->GetCentralityPercentile("V0M"); // VZERO
513 }
514 hCentrality[iBconf][0]->Fill(v0Centr);
983b8a42 515
de383542 516 //-------------------------zVertex determination of event----------------
517 Double_t zvtx = 9999.9;
38fdd8e0 518 const AliVVertex* vtxEVENT = fEvent->GetPrimaryVertex();
de383542 519 if(vtxEVENT->GetNContributors()>0) zvtx = vtxEVENT->GetZ();
983b8a42 520
de383542 521 hZvertex[iBconf][0]->Fill(zvtx);
522
523 //---------------------------EVENT CUTS-----------------------------
524 if(TMath::Abs(zvtx) < 10.0 && v0Centr>Centrality[0] && v0Centr<Centrality[1]){
525
526 hCentrality[iBconf][1]->Fill(v0Centr);
527 hZvertex[iBconf][1]->Fill(zvtx);
983b8a42 528
529 Int_t nTracks = fEvent->GetNumberOfTracks();
530
de383542 531 //----------------------loop on the TRACKS-----------------------------
532 for(Int_t iT = 0; iT < nTracks; iT++) {
533 AliVTrack* track = (AliVTrack *) fEvent->GetTrack(iT);
983b8a42 534
de383542 535 if (!track){
536 continue;
537 }
538
539 //For the geometrical cuts
623d9bd1 540 Double_t eta = track->Eta();
de383542 541
542 Bool_t trkFlag = 0;
543 trkFlag = ((AliAODTrack *) track)->TestFilterBit(FilterBit);
544 //TestFilterBit(16) -- Standard Cuts with very loose DCA: GetStandardITSTPCTrackCuts2011(kFALSE) && SetMaxDCAToVertexXY(2.4) && SetMaxDCAToVertexZ(3.2) && SetDCaToVertex2D(kTRUE)
545 //TestFilterBit(32) (STARDARD) -- Standard Cuts with very tight DCA cut ( 7sigma^primaries: 7*(0.0015+0.0050/pt^1.1) ) : GetStandardITSTPCTrackCuts2011().
546
547 //Cut on the Minumum Number of the TPC clusters
548 Bool_t isMinTpcCluster=kFALSE;
549 Int_t nTpcCluster=0;
550 nTpcCluster=track->GetTPCNcls();
551 if(nTpcCluster>NminTpcCluster) isMinTpcCluster=kTRUE;
552
553 //-------------------------------------start TRACK CUTS----------------------------------
623d9bd1 554 if ((track->Pt() < 0.2) || (eta<EtaLimit[0]) || (eta>EtaLimit[1]) || !trkFlag || !isMinTpcCluster)
de383542 555 continue;
3202676b 556
de383542 557 //Vertex determination
558 Double_t b[2] = {-99., -99.};
559 Double_t bCov[3] = {-99., -99., -99.};
560 if (!track->PropagateToDCA(fEvent->GetPrimaryVertex(), fEvent->GetMagneticField(), 100., b, bCov))
561 continue;
562
563 Double_t DCAxy = b[0];
564 Double_t DCAz = b[1];
565
566 //Cut on the DCAz
567 Bool_t isDCAzCut=kFALSE;
568 if(DCAz<DCAzCut) isDCAzCut=kTRUE;
983b8a42 569
de383542 570 if(!isDCAzCut)
571 continue;
572
573 //For the Tpc purity cut
574 Double_t dedx = track->GetTPCsignal();
575 if(dedx<10) continue;
3f2b4d7b 576
de383542 577 Int_t nTrdSlices = track->GetNumberOfTRDslices();
578 if(nTrdSlices<2 && iTrdCut==1) continue;
579 if(nTrdSlices>0 && iTrdCut==2) continue;
580
581 //-------------------------------------end TRACK CUTS----------------------------------
582
c77430f9 583 //-------------------------------------Track info--------------------------------------
de383542 584 Double_t phi= track->Phi();
585
623d9bd1 586 hEta[iBconf]->Fill(eta);
de383542 587 hPhi[iBconf]->Fill(phi);
623d9bd1 588 fEtaPhi[iBconf]->Fill(eta,phi);
de383542 589 hNTpcCluster[iBconf]->Fill(nTpcCluster);
590 hNTrdSlices[iBconf]->Fill(nTrdSlices);
591
592 Double_t charge = (Double_t)track->Charge();
593 Double_t p = track->P();
594 Double_t pt = track->Pt();
595 Double_t tof = track->GetTOFsignal()-fPIDResponse->GetTOFResponse().GetStartTime(p);
596 Double_t pTPC = track->GetTPCmomentum();
597 Double_t beta = 0.0;
598 Double_t M2 = 999.9;
599 Double_t Z2 = 999.9;
600
601 kTOF = (track->GetStatus() & AliVTrack::kTOFout) && (track->GetStatus() & AliVTrack::kTIME);
602
603 //-----------------------------TPC info------------------------------
604 Double_t nsigmaTPC[nPart];
605 Double_t expdedx[nPart];
606
607 Int_t stdFlagPid[9] = {1,2,4,8,16,32,64,128,256};//e,#mu,#pi,K,p,d,t,3He,4He
608 Int_t FlagPid = 0;
c77430f9
MC
609
610 for(Int_t iS=0;iS<9;iS++){
611 nsigmaTPC[iS] = fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType) iS);
612 //TPC identification:
613 if(TMath::Abs(nsigmaTPC[iS])<NsigmaTpcCut) {
614 FlagPid += ((Int_t)TMath::Power(2,iS));
615 }
616 }
617 //Correction of the momentum to the vertex for (anti)nuclei
618 Double_t pC[9];
619 for(Int_t iS=0;iS<9;iS++) pC[iS]=p;
623d9bd1 620 this->MomVertexCorrection(p,pC,eta,FlagPid);
de383542 621
c77430f9 622 //More TPC info:
de383542 623 for(Int_t iS=0;iS<9;iS++){
624 expdedx[iS] = fPIDResponse->GetTPCResponse().GetExpectedSignal(track, (AliPID::EParticleType) iS, AliTPCPIDResponse::kdEdxDefault, kTRUE);
625 hDeDxExp[iBconf][iS]->Fill(pTPC,expdedx[iS]);
626 nsigmaTPC[iS] = fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType) iS);
627 fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
628 if(charge>0) {//positive particle
c77430f9 629 if(kTOF && (TMath::Abs(DCAxy)<DCAxyCut)) fNsigmaTpc_kTOF[iBconf][iS]->Fill(p,nsigmaTPC[iS]);
3f2b4d7b 630 }
de383542 631 else {//negative particle
c77430f9 632 if(kTOF && (TMath::Abs(DCAxy)<DCAxyCut)) fNsigmaTpc_kTOF[iBconf][iS+nPart]->Fill(p,nsigmaTPC[iS]);
3f2b4d7b 633 }
c77430f9
MC
634 /*
635 if(TMath::Abs(nsigmaTPC[iS])<NsigmaTpcCut) {
de383542 636 FlagPid += ((Int_t)TMath::Power(2,iS));
c77430f9 637 }*/
de383542 638 }
c77430f9 639
de383542 640 if(charge>0) fdEdxVSp[iBconf][0]->Fill(pTPC,dedx);
641 else fdEdxVSp[iBconf][1]->Fill(pTPC,dedx);
3202676b 642
de383542 643 //-----------------------------TOF info------------------------------
644
645 Double_t massOverZ[9] = {0.000511,0.105658,0.139570,0.493677,0.938272,1.875612859,2.808921005,1.404195741,1.863689620};
983b8a42 646
de383542 647 //----------------------------------------kTOF available-----------------------------
648
649 if(kTOF) {
650 Double_t exptimes[9];
983b8a42 651 track->GetIntegratedTimes(exptimes);
de383542 652 //Integrated times of the Nuclei:
653 for(Int_t iN=5;iN<9;iN++) {
654 exptimes[iN] = exptimes[4]*exptimes[4]*(massOverZ[iN]*massOverZ[iN]/p/p+1)/(massOverZ[4]*massOverZ[4]/p/p+1);
655 exptimes[iN] = TMath::Sqrt(exptimes[iN]);
656 }
657
658 beta=exptimes[0];
659 beta=beta/tof;//beta = L/tof/c = t_e/tof
660
c77430f9
MC
661 Int_t FlagPidTof = 0;
662 Double_t NsigmaTofCut = 2.0;
663
de383542 664 Double_t nsigmaTOF[9];
665 for(Int_t iS=0;iS<9;iS++){
666 nsigmaTOF[iS] = fPIDResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType) iS);
667 fNsigmaTof[iBconf][iS]->Fill(pt,nsigmaTOF[iS]);
668 if(charge>0) {
669 hBetaExp[iBconf][iS]->Fill(p,exptimes[0]/exptimes[iS]);
670 if(TMath::Abs(DCAxy)<DCAxyCut) fNsigmaTof_DcaCut[iBconf][iS]->Fill(pt,nsigmaTOF[iS]);
24395a5c 671 }
de383542 672 else {
673 hBetaExp[iBconf][iS+nPart]->Fill(p,exptimes[0]/exptimes[iS]);
674 if(TMath::Abs(DCAxy)<DCAxyCut) fNsigmaTof_DcaCut[iBconf][iS+nPart]->Fill(pt,nsigmaTOF[iS]);
24395a5c 675 }
c77430f9
MC
676
677 //TOF identification:
678 if(TMath::Abs(nsigmaTOF[iS])<NsigmaTofCut) {
679 FlagPidTof += ((Int_t)TMath::Power(2,iS));
680 }
de383542 681 }
c77430f9 682
de383542 683 if(charge>0) fBetaTofVSp[iBconf][0]->Fill(p,beta);
684 else fBetaTofVSp[iBconf][1]->Fill(p,beta);
685
686 this->GetMassFromPvertex(beta,p,M2);
687 this->GetZTpc(dedx,pTPC,M2,Z2);
c77430f9 688
de383542 689 Double_t Mass2[9];
623d9bd1 690 //-----------------------------M2 as a function of momentum to the primary vertex if iMtof==1---------------------------------
c77430f9
MC
691 if(iMtof==1) this->GetMassFromPvertexCorrected(beta,pC,Mass2);
692
693 if(iMtof>1) this->GetPmeanVsBetaGamma(exptimes,pC,FlagPid,FlagPidTof,charge,DCAxy);
694
695 //-----------------------------M2 as a function of expected times---------------------------------
696 if(iMtof==2) this->GetMassFromExpTimes(beta,exptimes,Mass2);
697
698 //-----------------------------M2 as a function of mean momentum calculated from expected time and extrapolated to the (anti)nuclei---------------------------------
699 if(iMtof>2) this->GetMassFromMeanMom(beta,exptimes,pC,charge,Mass2,FlagPid,FlagPidTof,DCAxy);
700
de383542 701 //-------------------------------Squared Mass TH2 distributions-----------------------
702 if(charge>0) {
703 //without TPC
c77430f9
MC
704 fM2vsP_NoTpcCut[iBconf][0][0]->Fill(M2,p);
705 if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP_NoTpcCut[iBconf][1][0]->Fill(M2,p);
de383542 706 //with TPC
707 for(Int_t iS=0;iS<9;iS++) {
c77430f9
MC
708 M2=999.9;
709 M2=Mass2[iS];
de383542 710 //-----------------
711 if(FlagPid & stdFlagPid[iS]) {
c77430f9
MC
712 fM2vsP[iBconf][0][iS]->Fill(M2,pC[iS]);
713 if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP[iBconf][1][iS]->Fill(M2,pC[iS]);
bfb9094a 714 }
983b8a42 715 }
de383542 716 }
717 else {//charge<0
718 //without TPC
c77430f9
MC
719 fM2vsP_NoTpcCut[iBconf][0][1]->Fill(M2,p);
720 if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP_NoTpcCut[iBconf][1][1]->Fill(M2,p);
de383542 721 //with TPC
722 for(Int_t iS=0;iS<9;iS++) {
c77430f9
MC
723 M2=999.9;
724 M2=Mass2[iS];
de383542 725 //-----------------
726 if(FlagPid & stdFlagPid[iS]) {
c77430f9
MC
727 fM2vsP[iBconf][0][iS+nPart]->Fill(M2,pC[iS]);
728 if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP[iBconf][1][iS+nPart]->Fill(M2,pC[iS]);
983b8a42 729 }
730 }
de383542 731 }
732
733 //------------------------------start DCA and Squared Mass TH1 distributions-------------------------
c77430f9 734 Double_t binP[nbin+1];
de383542 735 for(Int_t i=0;i<nbin+1;i++) {
c77430f9 736 binP[i]=0.4+i*0.1;
de383542 737 }
738
739 if(charge>0) {
983b8a42 740 for(Int_t iS=0;iS<9;iS++) {
c77430f9
MC
741 M2=999.9;
742 M2=Mass2[iS];
743
de383542 744 if(FlagPid & stdFlagPid[iS]) {
745 for(Int_t j=0;j<nbin;j++) {
c77430f9 746 if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
de383542 747 hDCAxy[iBconf][iS][j]->Fill(DCAxy);
748 hDCAxy[iBconf][iS][j]->Fill(-DCAxy);
749 hDCAz[iBconf][iS][j]->Fill(DCAz);
750 hDCAz[iBconf][iS][j]->Fill(-DCAz);
751 if(TMath::Abs(DCAxy)<DCAxyCut) {
752 hM2CutDCAxy[iBconf][iS][j]->Fill(M2);
bfb9094a 753 }
de383542 754 if(TMath::Abs(DCAxy+0.5)<DCAxyCut) {
755 hM2CutGroundDCAxy[iBconf][iS][j]->Fill(M2);
756 }
757 break;
bfb9094a 758 }
c77430f9 759 }//end loop on the p bins (j)
bfb9094a 760 }
de383542 761 }//end loop on the particle species (iS)
762 }
763 else {//charge<0
983b8a42 764 for(Int_t iS=0;iS<9;iS++) {
c77430f9
MC
765 M2=999.9;
766 M2=Mass2[iS];
767
de383542 768 if(FlagPid & stdFlagPid[iS]) {
769 for(Int_t j=0;j<nbin;j++) {
c77430f9 770 if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
de383542 771 hDCAxy[iBconf][iS+nPart][j]->Fill(DCAxy);
772 hDCAxy[iBconf][iS+nPart][j]->Fill(-DCAxy);
773 hDCAz[iBconf][iS+nPart][j]->Fill(DCAz);
774 hDCAz[iBconf][iS+nPart][j]->Fill(-DCAz);
775 if(TMath::Abs(DCAxy)<DCAxyCut) {
776 hM2CutDCAxy[iBconf][iS+nPart][j]->Fill(M2);
24395a5c 777 }
de383542 778 if(TMath::Abs(DCAxy+0.5)<DCAxyCut) {
779 hM2CutGroundDCAxy[iBconf][iS+nPart][j]->Fill(M2);
983b8a42 780 }
de383542 781 break;
983b8a42 782 }
c77430f9 783 }//end loop on the p bins (j)
983b8a42 784 }
de383542 785 }//end loop on the particle species (iS)
786 }
787
788 //-------------------------------------------------M2/Z2 vs Z-------------------------
789
790
791 Double_t binCutPt[10] = {0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0};
792 Double_t Z=999.9;
793 if(Z2>0) Z=TMath::Sqrt(Z2);
794
795 fM2vsZ[iBconf][0]->Fill(charge*TMath::Sqrt(Z2),M2);
796 for(Int_t i=1;i<10;i++) {
797 if(pt>binCutPt[i-1] && pt<binCutPt[i]){
798 fM2vsZ[iBconf][i]->Fill(charge*Z,M2);
799 break;
983b8a42 800 }
de383542 801 }
983b8a42 802
de383542 803 }//end kTOF available
804 }//end track loop
805 }//end loop on the events
983b8a42 806}
807
808//_____________________________________________________________________________
809void AliAnalysisNucleiMass::Terminate(Option_t *)
810{
811 // Terminate loop
812 Printf("Terminate()");
813}
de383542 814//_____________________________________________________________________________
c77430f9
MC
815void AliAnalysisNucleiMass::MomVertexCorrection(Double_t p, Double_t *pC, Double_t eta, Int_t FlagPid){
816
817 Int_t stdFlagPid[9] = {1,2,4,8,16,32,64,128,256};//e,#mu,#pi,K,p,d,t,3He,4He
818
819 for(Int_t iS=0;iS<9;iS++) {
820 if(FlagPid & stdFlagPid[iS]) {
821 if(iS==5) {
822 if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[0]->Eval(pC[iS],TMath::Abs(eta));//for (bar)d
823 prPvtxTrueVsReco[iBconf][0]->Fill(p,pC[iS]/p);
824 }
825 else if(iS==7) {
826 if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[1]->Eval(pC[iS],TMath::Abs(eta));//for (bar)He3
827 prPvtxTrueVsReco[iBconf][1]->Fill(p,pC[iS]/p);
828 }
829 }
830 }
831
832 return;
833
834}
835//_____________________________________________________________________________
de383542 836void AliAnalysisNucleiMass::GetMassFromPvertex(Double_t beta, Double_t p, Double_t &M2) {
837
838 M2 = p*p*(1-beta*beta)/(beta*beta);
839
840 return;
841
842}
c77430f9
MC
843//_________________________________________________________________________________________________________________________
844void AliAnalysisNucleiMass::GetZTpc(Double_t dedx, Double_t pTPC, Double_t M2, Double_t &Z2) {
845
846 //z^2_tpc = dedx^{Tpc} / dedx^{exp,Tof}_{z=1}
847
848 Z2=999.9;
849
850 Double_t M=999.9;
851 Double_t pTPC_pr=999.9;//rescaling of the pTPC for the proton
852 Double_t expdedx_Tof=999.9;
853
854 if(M2>0) {
855 M=TMath::Sqrt(M2);
856 pTPC_pr=pTPC*0.938272/M;
857 expdedx_Tof=fPIDResponse->GetTPCResponse().GetExpectedSignal(pTPC_pr,AliPID::kProton);
858 if((dedx/expdedx_Tof)<0) return;
859 Z2=TMath::Power(dedx/expdedx_Tof,0.862);
860 }
861
862 return;
863}
864//_________________________________________________________________________________________________________________________
865void AliAnalysisNucleiMass::GetMassFromPvertexCorrected(Double_t beta, Double_t *pC, Double_t *Mass2) {
866
867 for(Int_t iS=0;iS<9;iS++) Mass2[iS] = pC[iS]*pC[iS]*(1-beta*beta)/(beta*beta);
868
869 return;
870}
de383542 871//____________________________________________________________________________________________________________
c77430f9 872void AliAnalysisNucleiMass::GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2) {
de383542 873
874 // m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
875 // In this way m_tof = mPDG only if tof=t_exp
876
877 Double_t massOverZ[9] = {0.000511,0.105658,0.139570,0.493677,0.938272,1.875612859,2.808921005,1.404195741,1.863689620};
878
879 Double_t beta2Exp[9];
880 Double_t p2Exp[9];
881
c77430f9
MC
882 //Double_t pExp[9];
883
de383542 884 for(Int_t iS=0;iS<9;iS++) {
885 beta2Exp[iS]=IntTimes[0]/IntTimes[iS];//beta = L/tof*c = t_e/tof
886 beta2Exp[iS]=beta2Exp[iS]*beta2Exp[iS];
887 if((1-beta2Exp[iS])==0) {
888 Mass2[iS]=999.9;
889 continue;
890 }
891 p2Exp[iS]=massOverZ[iS]*massOverZ[iS]*beta2Exp[iS]/(1-beta2Exp[iS]);
892
893 //--------------------for MC corrections
894 if(p2Exp[iS]<0) {
895 Mass2[iS]=999.9;
896 continue;
897 }
c77430f9 898 //pExp[iS]=TMath::Sqrt(p2Exp[iS]);
de383542 899
de383542 900 //------------
de383542 901 Mass2[iS]=p2Exp[iS]*(1-beta*beta)/(beta*beta);
c77430f9 902 }//end loop on the particle species
64e976d4 903
c77430f9
MC
904 return;
905}
906//____________________________________________________________________________________________________________
907void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pVtx, Int_t FlagPid, Int_t FlagPidTof, Double_t charge, Double_t DCAxy) {
908
909 // m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
910 // In this way m_tof = mPDG only if tof=t_exp
911
912 Double_t massOverZ[9] = {0.000511,0.105658,0.139570,0.493677,0.938272,1.875612859,2.808921005,1.404195741,1.863689620};
913
914 Double_t beta2Exp[9];
915 Double_t p2Exp[9];
916
917 Double_t pExp[9];
918
919 Int_t stdFlagPid[9] = {1,2,4,8,16,32,64,128,256};//e,#mu,#pi,K,p,d,t,3He,4He
920
921 for(Int_t iS=0;iS<9;iS++) {
922 beta2Exp[iS]=IntTimes[0]/IntTimes[iS];//beta = L/tof*c = t_e/tof
923 beta2Exp[iS]=beta2Exp[iS]*beta2Exp[iS];
924 if((1-beta2Exp[iS])==0) {
925 continue;
926 }
927 p2Exp[iS]=massOverZ[iS]*massOverZ[iS]*beta2Exp[iS]/(1-beta2Exp[iS]);
928
929 if(p2Exp[iS]<0) {
930 continue;
931 }
932 pExp[iS]=TMath::Sqrt(p2Exp[iS]);
933
934 if((FlagPid & stdFlagPid[iS]) && (FlagPidTof & stdFlagPid[iS])) {
935 if(TMath::Abs(DCAxy)>DCAxyCut) continue;
64e976d4 936 if(charge>0){
c77430f9
MC
937 fPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
938 prPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
64e976d4 939 }
940 else {
c77430f9
MC
941 fPmeanVsBetaGamma[iBconf][iS+nPart]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
942 prPmeanVsBetaGamma[iBconf][iS+nPart]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
64e976d4 943 }
944 }
945 }//end loop on the particle species
de383542 946
947 return;
948
949}
c77430f9
MC
950//____________________________________________________________________________________________________________
951void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes, Double_t *pVtx, Double_t charge, Double_t *Mass2, Int_t FlagPid, Int_t FlagPidTof, Double_t DCAxy) {//Double_t *Mass2, Int_t iCorr
952
953 // m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
954 // In this way m_tof = mPDG only if tof=t_exp
de383542 955
c77430f9
MC
956 Double_t massOverZ[9] = {0.000511,0.105658,0.139570,0.493677,0.938272,1.875612859,2.808921005,1.404195741,1.863689620};
957
958 Double_t beta2Exp[9];
959 Double_t p2Exp[9];
de383542 960
c77430f9 961 Double_t pExp[9];
de383542 962
c77430f9
MC
963 Int_t stdFlagPid[9] = {1,2,4,8,16,32,64,128,256};//e,#mu,#pi,K,p,d,t,3He,4He
964
965 for(Int_t iS=0;iS<9;iS++) {
966 if(iS==2 || iS==3 || iS==4 || iS==5 || iS==7) {
967 if(charge>0) {
623d9bd1
MC
968 if(iS!=7) p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS-2]->Eval(pVtx[iS]/massOverZ[iS]);
969 else p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS-3]->Eval(pVtx[iS]/massOverZ[iS]);
c77430f9
MC
970 }
971 else if(charge<0) {
623d9bd1
MC
972 if(iS!=7) p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS+3]->Eval(pVtx[iS]/massOverZ[iS]);
973 else p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS+2]->Eval(pVtx[iS]/massOverZ[iS]);
c77430f9
MC
974 }
975 p2Exp[iS]*=p2Exp[iS];
976 }
977 else {
978 beta2Exp[iS]=IntTimes[0]/IntTimes[iS];//beta = L/tof*c = t_e/tof
979 beta2Exp[iS]=beta2Exp[iS]*beta2Exp[iS];
980 if((1-beta2Exp[iS])==0) {
981 Mass2[iS]=999.9;
982 continue;
983 }
984 p2Exp[iS]=massOverZ[iS]*massOverZ[iS]*beta2Exp[iS]/(1-beta2Exp[iS]);
985 }
986 //--------------------for MC corrections
987 if(p2Exp[iS]<0) {
988 Mass2[iS]=999.9;
989 continue;
990 }
991 pExp[iS]=TMath::Sqrt(p2Exp[iS]);
992
993 //------------
994 Mass2[iS]=p2Exp[iS]*(1-beta*beta)/(beta*beta);
995
996 //-----------
997 if(TMath::Abs(DCAxy)>DCAxyCut) continue;
998 if(iS==2 || iS==3 || iS==4 || iS==5 || iS==7) {
999 if((FlagPid & stdFlagPid[iS]) && (FlagPidTof & stdFlagPid[iS])) {
1000 if(charge>0) {
1001 if(iS!=7) prPmeanVsBGcorr[iBconf][iS-2]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
1002 else prPmeanVsBGcorr[iBconf][iS-3]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
1003 }
1004 else if(charge<0) {
1005 if(iS!=7) prPmeanVsBGcorr[iBconf][iS+3]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
1006 else prPmeanVsBGcorr[iBconf][iS+2]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
1007 }
1008 }
1009 }
1010
1011 }//end loop on the particle species
de383542 1012
1013 return;
c77430f9 1014
de383542 1015}
623d9bd1
MC
1016//________________________________________________________________________________________
1017void AliAnalysisNucleiMass::SetPmeanCorrections(){
1018
1019 //iMtof==8 -> different particle and antiparticle parameterization
1020
1021 Double_t pars_fPmeanVsBGcorr[nBconf][10][3];
1022 //particle
1023
1024 Double_t etaMin=0.0;
1025 Double_t etaMax=0.8;
1026
1027 if(EtaLimit[0]<0.0 || EtaLimit[1]<0.0) {
1028 etaMin=TMath::Abs(EtaLimit[1]);
1029 etaMax=TMath::Abs(EtaLimit[0]);
1030 }
1031 else {
1032 etaMin=TMath::Abs(EtaLimit[0]);
1033 etaMax=TMath::Abs(EtaLimit[1]);
1034 }
1035
1036 if(etaMin>-0.00001 && etaMax<0.10001) {
1037 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fAAA\n",EtaLimit[0],EtaLimit[1]);
1038 for(Int_t i=0;i<5;i++) {
1039 if(i==0) {//pi
1040 pars_fPmeanVsBGcorr[0][i][0]=4.16853e-02; pars_fPmeanVsBGcorr[0][i][1]=-7.67091e-01; pars_fPmeanVsBGcorr[0][i][2]=9.98035e-01;//B--
1041 pars_fPmeanVsBGcorr[1][i][0]=5.51380e-02; pars_fPmeanVsBGcorr[1][i][1]=-7.58112e-01; pars_fPmeanVsBGcorr[1][i][2]=1.00360e+00;//B++
1042 }
1043 else if(i==1) {//K
1044 pars_fPmeanVsBGcorr[0][i][0]=2.73697e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.43042e+00; pars_fPmeanVsBGcorr[0][i][2]=9.93148e-01;
1045 pars_fPmeanVsBGcorr[1][i][0]=3.19397e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.08037e+00; pars_fPmeanVsBGcorr[1][i][2]=9.98016e-01;
1046 }
1047 else if(i==2) {//p
1048 pars_fPmeanVsBGcorr[0][i][0]=1.35721e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.80958e+00; pars_fPmeanVsBGcorr[0][i][2]=9.93925e-01;
1049 pars_fPmeanVsBGcorr[1][i][0]=1.63564e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.55914e+00; pars_fPmeanVsBGcorr[1][i][2]=9.98106e-01;
1050 }
1051 else if(i==3) {//d
1052 pars_fPmeanVsBGcorr[0][i][0]=0.009609; pars_fPmeanVsBGcorr[0][i][1]=-2.534810; pars_fPmeanVsBGcorr[0][i][2]=0.993507;
1053 pars_fPmeanVsBGcorr[1][i][0]=0.011580; pars_fPmeanVsBGcorr[1][i][1]=-2.308857; pars_fPmeanVsBGcorr[1][i][2]=0.998126;
1054 }
1055 else if(i==4) {//He3
1056 pars_fPmeanVsBGcorr[0][i][0]=0.026420; pars_fPmeanVsBGcorr[0][i][1]=-2.253066; pars_fPmeanVsBGcorr[0][i][2]=0.993507;
1057 pars_fPmeanVsBGcorr[1][i][0]=0.031840; pars_fPmeanVsBGcorr[1][i][1]=-2.052228; pars_fPmeanVsBGcorr[1][i][2]=0.998126;
1058 }
1059 }
1060 }
1061 else if(etaMin>0.09999 && etaMax<0.20001) {
1062 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fBBB\n",EtaLimit[0],EtaLimit[1]);
1063 for(Int_t i=0;i<5;i++) {
1064 if(i==0) {//pi
1065 pars_fPmeanVsBGcorr[0][i][0]=4.98872e-02; pars_fPmeanVsBGcorr[0][i][1]=-3.56884e-01; pars_fPmeanVsBGcorr[0][i][2]=1.01356e+00;
1066 pars_fPmeanVsBGcorr[1][i][0]=6.11287e-02; pars_fPmeanVsBGcorr[1][i][1]=-3.65072e-01; pars_fPmeanVsBGcorr[1][i][2]=1.02074e+00;
1067 }
1068 else if(i==1) {//K
1069 pars_fPmeanVsBGcorr[0][i][0]=2.85027e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.04376e+00; pars_fPmeanVsBGcorr[0][i][2]=9.94804e-01;
1070 pars_fPmeanVsBGcorr[1][i][0]=3.30937e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.72959e+00; pars_fPmeanVsBGcorr[1][i][2]=9.99966e-01;
1071 }
1072 else if(i==2) {//p
1073 pars_fPmeanVsBGcorr[0][i][0]=1.38640e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.71621e+00; pars_fPmeanVsBGcorr[0][i][2]=9.94151e-01;
1074 pars_fPmeanVsBGcorr[1][i][0]=1.74869e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.38269e+00; pars_fPmeanVsBGcorr[1][i][2]=9.98776e-01;
1075 }
1076 else if(i==3) {//d
1077 pars_fPmeanVsBGcorr[0][i][0]=0.009816; pars_fPmeanVsBGcorr[0][i][1]=-2.450567; pars_fPmeanVsBGcorr[0][i][2]=0.994465;
1078 pars_fPmeanVsBGcorr[1][i][0]=0.012381; pars_fPmeanVsBGcorr[1][i][1]=-2.149671; pars_fPmeanVsBGcorr[1][i][2]=0.999302;
1079 }
1080 else if(i==4) {//He3
1081 pars_fPmeanVsBGcorr[0][i][0]=0.026988; pars_fPmeanVsBGcorr[0][i][1]=-2.178186; pars_fPmeanVsBGcorr[0][i][2]=0.994465;
1082 pars_fPmeanVsBGcorr[1][i][0]=0.034041; pars_fPmeanVsBGcorr[1][i][1]=-1.910736; pars_fPmeanVsBGcorr[1][i][2]=0.999302;
1083 }
1084 }
1085 }
1086 else if(etaMin>0.19999 && etaMax<0.30001) {
1087 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fCCC\n",EtaLimit[0],EtaLimit[1]);
1088 for(Int_t i=0;i<5;i++) {
1089 if(i==0) {//pi
1090 pars_fPmeanVsBGcorr[0][i][0]=4.71844e-02; pars_fPmeanVsBGcorr[0][i][1]=-6.24048e-01; pars_fPmeanVsBGcorr[0][i][2]=1.00525e+00;
1091 pars_fPmeanVsBGcorr[1][i][0]=5.45281e-02; pars_fPmeanVsBGcorr[1][i][1]=-5.87331e-01; pars_fPmeanVsBGcorr[1][i][2]=1.01029e+00;
1092 }
1093 else if(i==1) {//K
1094 pars_fPmeanVsBGcorr[0][i][0]=2.92060e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.15537e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97130e-01;
1095 pars_fPmeanVsBGcorr[1][i][0]=3.24550e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.97289e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00059e+00;
1096 }
1097 else if(i==2) {//p
1098 pars_fPmeanVsBGcorr[0][i][0]=1.33594e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.86707e+00; pars_fPmeanVsBGcorr[0][i][2]=9.96053e-01;
1099 pars_fPmeanVsBGcorr[1][i][0]=1.57187e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.62957e+00; pars_fPmeanVsBGcorr[1][i][2]=9.99431e-01;
1100 }
1101 else if(i==3) {//d
1102 pars_fPmeanVsBGcorr[0][i][0]=0.009458; pars_fPmeanVsBGcorr[0][i][1]=-2.586677; pars_fPmeanVsBGcorr[0][i][2]=0.996592;
1103 pars_fPmeanVsBGcorr[1][i][0]=0.011129; pars_fPmeanVsBGcorr[1][i][1]=-2.372404; pars_fPmeanVsBGcorr[1][i][2]=1.000024;
1104 }
1105 else if(i==4) {//He3
1106 pars_fPmeanVsBGcorr[0][i][0]=0.026006; pars_fPmeanVsBGcorr[0][i][1]=-2.299168; pars_fPmeanVsBGcorr[0][i][2]=0.996592;
1107 pars_fPmeanVsBGcorr[1][i][0]=0.030599; pars_fPmeanVsBGcorr[1][i][1]=-2.108711; pars_fPmeanVsBGcorr[1][i][2]=1.000024;
1108 }
1109 }
1110 }
1111 else if(etaMin>0.29999 && etaMax<0.40001) {
1112 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fDDD\n",EtaLimit[0],EtaLimit[1]);
1113 for(Int_t i=0;i<5;i++) {
1114 if(i==0) {//pi
1115 pars_fPmeanVsBGcorr[0][i][0]=5.25262e-02; pars_fPmeanVsBGcorr[0][i][1]=-3.04325e-01; pars_fPmeanVsBGcorr[0][i][2]=1.02056e+00;
1116 pars_fPmeanVsBGcorr[1][i][0]=5.70585e-02; pars_fPmeanVsBGcorr[1][i][1]=-5.95375e-01; pars_fPmeanVsBGcorr[1][i][2]=1.01130e+00;
1117 }
1118 else if(i==1) {//K
1119 pars_fPmeanVsBGcorr[0][i][0]=2.96035e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.17931e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97539e-01;
1120 pars_fPmeanVsBGcorr[1][i][0]=3.35067e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.99656e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00128e+00;
1121 }
1122 else if(i==2) {//p
1123 pars_fPmeanVsBGcorr[0][i][0]=1.44529e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.77844e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97130e-01;
1124 pars_fPmeanVsBGcorr[1][i][0]=1.68180e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.56489e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00070e+00;
1125 }
1126 else if(i==3) {//d
1127 pars_fPmeanVsBGcorr[0][i][0]=0.010233; pars_fPmeanVsBGcorr[0][i][1]=-2.506714; pars_fPmeanVsBGcorr[0][i][2]=0.997341;
1128 pars_fPmeanVsBGcorr[1][i][0]=0.011907; pars_fPmeanVsBGcorr[1][i][1]=-2.314052; pars_fPmeanVsBGcorr[1][i][2]=1.001048;
1129 }
1130 else if(i==4) {//He3
1131 pars_fPmeanVsBGcorr[0][i][0]=0.028135; pars_fPmeanVsBGcorr[0][i][1]=-2.228093; pars_fPmeanVsBGcorr[0][i][2]=0.997341;
1132 pars_fPmeanVsBGcorr[1][i][0]=0.032739; pars_fPmeanVsBGcorr[1][i][1]=-2.056845; pars_fPmeanVsBGcorr[1][i][2]=1.001048;
1133 }
1134 }
1135 }
1136 else if(etaMin>0.39999 && etaMax<0.50001) {
1137 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fEEE\n",EtaLimit[0],EtaLimit[1]);
1138 for(Int_t i=0;i<5;i++) {
1139 if(i==0) {//pi
1140 pars_fPmeanVsBGcorr[0][i][0]=5.72833e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.51868e-01; pars_fPmeanVsBGcorr[0][i][2]=1.02665e+00;
1141 pars_fPmeanVsBGcorr[1][i][0]=6.59446e-02; pars_fPmeanVsBGcorr[1][i][1]=-9.09587e-01; pars_fPmeanVsBGcorr[1][i][2]=1.00472e+00;
1142 }
1143 else if(i==1) {//K
1144 pars_fPmeanVsBGcorr[0][i][0]=3.00754e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.18175e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97758e-01;
1145 pars_fPmeanVsBGcorr[1][i][0]=3.36764e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.08206e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00094e+00;
1146 }
1147 else if(i==2) {//p
1148 pars_fPmeanVsBGcorr[0][i][0]=1.54832e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.70549e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97921e-01;
1149 pars_fPmeanVsBGcorr[1][i][0]=1.75353e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.52898e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00121e+00;
1150 }
1151 else if(i==3) {//d
1152 pars_fPmeanVsBGcorr[0][i][0]=0.010962; pars_fPmeanVsBGcorr[0][i][1]=-2.440895; pars_fPmeanVsBGcorr[0][i][2]=0.997846;
1153 pars_fPmeanVsBGcorr[1][i][0]=0.012415; pars_fPmeanVsBGcorr[1][i][1]=-2.281648; pars_fPmeanVsBGcorr[1][i][2]=1.001189;
1154 }
1155 else if(i==4) {//He3
1156 pars_fPmeanVsBGcorr[0][i][0]=0.030140; pars_fPmeanVsBGcorr[0][i][1]=-2.169590; pars_fPmeanVsBGcorr[0][i][2]=0.997846;
1157 pars_fPmeanVsBGcorr[1][i][0]=0.034135; pars_fPmeanVsBGcorr[1][i][1]=-2.028043; pars_fPmeanVsBGcorr[1][i][2]=1.001189;
1158 }
1159 }
1160 }
1161 else if(etaMin>0.49999 && etaMax<0.60001) {
1162 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fFFF\n",EtaLimit[0],EtaLimit[1]);
1163 for(Int_t i=0;i<5;i++) {
1164 if(i==0) {//pi
1165 pars_fPmeanVsBGcorr[0][i][0]=5.29436e-02; pars_fPmeanVsBGcorr[0][i][1]=-5.04070e-01; pars_fPmeanVsBGcorr[0][i][2]=1.00951e+00;
1166 pars_fPmeanVsBGcorr[1][i][0]=1.04356e-01; pars_fPmeanVsBGcorr[1][i][1]=-1.19297e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00197e+00;
1167 }
1168 else if(i==1) {//K
1169 pars_fPmeanVsBGcorr[0][i][0]=3.36237e-02; pars_fPmeanVsBGcorr[0][i][1]=-1.89739e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97921e-01;
1170 pars_fPmeanVsBGcorr[1][i][0]=3.76386e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.89484e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00097e+00;
1171 }
1172 else if(i==2) {//p
1173 pars_fPmeanVsBGcorr[0][i][0]=1.93889e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.38744e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98551e-01;
1174 pars_fPmeanVsBGcorr[1][i][0]=2.12666e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.29606e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00174e+00;
1175 }
1176 else if(i==3) {//d
1177 pars_fPmeanVsBGcorr[0][i][0]=0.013727; pars_fPmeanVsBGcorr[0][i][1]=-2.153951; pars_fPmeanVsBGcorr[0][i][2]=0.998275;
1178 pars_fPmeanVsBGcorr[1][i][0]=0.015057; pars_fPmeanVsBGcorr[1][i][1]=-2.071511; pars_fPmeanVsBGcorr[1][i][2]=1.001396;
1179 }
1180 else if(i==4) {//He3
1181 pars_fPmeanVsBGcorr[0][i][0]=0.037743; pars_fPmeanVsBGcorr[0][i][1]=-1.914539; pars_fPmeanVsBGcorr[0][i][2]=0.998275;
1182 pars_fPmeanVsBGcorr[1][i][0]=0.041398; pars_fPmeanVsBGcorr[1][i][1]=-1.841262; pars_fPmeanVsBGcorr[1][i][2]=1.001396;
1183 }
1184 }
1185 }
1186 else if(etaMin>0.59999 && etaMax<0.70001) {
1187 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fGGG\n",EtaLimit[0],EtaLimit[1]);
1188 for(Int_t i=0;i<5;i++) {
1189 if(i==0) {//pi
1190 pars_fPmeanVsBGcorr[0][i][0]=7.18462e-02; pars_fPmeanVsBGcorr[0][i][1]=-1.15676e+00; pars_fPmeanVsBGcorr[0][i][2]=9.99111e-01;
1191 pars_fPmeanVsBGcorr[1][i][0]=8.52428e-02; pars_fPmeanVsBGcorr[1][i][1]=-9.11048e-01; pars_fPmeanVsBGcorr[1][i][2]=1.00777e+00;
1192 }
1193 else if(i==1) {//K
1194 pars_fPmeanVsBGcorr[0][i][0]=3.32328e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.30015e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97683e-01;
1195 pars_fPmeanVsBGcorr[1][i][0]=3.88555e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.18109e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00130e+00;
1196 }
1197 else if(i==2) {//p
1198 pars_fPmeanVsBGcorr[0][i][0]=1.71488e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.73349e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98517e-01;
1199 pars_fPmeanVsBGcorr[1][i][0]=1.89105e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.65564e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00159e+00;
1200 }
1201 else if(i==3) {//d
1202 pars_fPmeanVsBGcorr[0][i][0]=0.012141; pars_fPmeanVsBGcorr[0][i][1]=-2.466162; pars_fPmeanVsBGcorr[0][i][2]=0.998125;
1203 pars_fPmeanVsBGcorr[1][i][0]=0.013389; pars_fPmeanVsBGcorr[1][i][1]=-2.395927; pars_fPmeanVsBGcorr[1][i][2]=1.001633;
1204 }
1205 else if(i==4) {//He3
1206 pars_fPmeanVsBGcorr[0][i][0]=0.033383; pars_fPmeanVsBGcorr[0][i][1]=-2.192048; pars_fPmeanVsBGcorr[0][i][2]=0.998125;
1207 pars_fPmeanVsBGcorr[1][i][0]=0.036812; pars_fPmeanVsBGcorr[1][i][1]=-2.129620; pars_fPmeanVsBGcorr[1][i][2]=1.001633;
1208 }
1209 }
1210 }
1211 else if(etaMin>0.69999 && etaMax<0.80001) {
1212 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fHHH\n",EtaLimit[0],EtaLimit[1]);
1213 for(Int_t i=0;i<5;i++) {
1214 if(i==0) {//pi
1215 pars_fPmeanVsBGcorr[0][i][0]=9.56419e-02; pars_fPmeanVsBGcorr[0][i][1]=-1.31941e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98375e-01;
1216 pars_fPmeanVsBGcorr[1][i][0]=8.30340e-02; pars_fPmeanVsBGcorr[1][i][1]=-4.46775e-01; pars_fPmeanVsBGcorr[1][i][2]=1.02721e+00;
1217 }
1218 else if(i==1) {//K
1219 pars_fPmeanVsBGcorr[0][i][0]=3.55532e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.25782e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97746e-01;
1220 pars_fPmeanVsBGcorr[1][i][0]=4.26998e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.10431e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00185e+00;
1221 }
1222 else if(i==2) {//p
1223 pars_fPmeanVsBGcorr[0][i][0]=1.87103e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.65814e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98847e-01;
1224 pars_fPmeanVsBGcorr[1][i][0]=2.07010e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.60124e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00210e+00;
1225 }
1226 else if(i==3) {//d
1227 pars_fPmeanVsBGcorr[0][i][0]=0.013247; pars_fPmeanVsBGcorr[0][i][1]=-2.398177; pars_fPmeanVsBGcorr[0][i][2]=0.998269;
1228 pars_fPmeanVsBGcorr[1][i][0]=0.014656; pars_fPmeanVsBGcorr[1][i][1]=-2.346847; pars_fPmeanVsBGcorr[1][i][2]=1.002033;
1229 }
1230 else if(i==4) {//He3
1231 pars_fPmeanVsBGcorr[0][i][0]=0.036422; pars_fPmeanVsBGcorr[0][i][1]=-2.131620; pars_fPmeanVsBGcorr[0][i][2]=0.998269;
1232 pars_fPmeanVsBGcorr[1][i][0]=0.040298; pars_fPmeanVsBGcorr[1][i][1]=-2.085995; pars_fPmeanVsBGcorr[1][i][2]=1.002033;
1233 }
1234 }
1235 }
1236 else {//for all eta
1237 //printf("EtaLimit[0]== %f and EtaLimit[1]== %fIII\n",EtaLimit[0],EtaLimit[1]);
1238 for(Int_t i=0;i<5;i++) {
1239 if(i==0) {//pi
1240 pars_fPmeanVsBGcorr[0][i][0]=4.89956e-02; pars_fPmeanVsBGcorr[0][i][1]=-6.46308e-01; pars_fPmeanVsBGcorr[0][i][2]=1.00462e+00;
1241 pars_fPmeanVsBGcorr[1][i][0]=6.36672e-02; pars_fPmeanVsBGcorr[1][i][1]=-6.10966e-01; pars_fPmeanVsBGcorr[1][i][2]=1.01188e+00;
1242 }
1243 else if(i==1) {//K
1244 pars_fPmeanVsBGcorr[0][i][0]=3.06216e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.10247e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97142e-01;
1245 pars_fPmeanVsBGcorr[1][i][0]=3.48865e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.89213e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00123e+00;
1246 }
1247 else if(i==2) {//p
1248 pars_fPmeanVsBGcorr[0][i][0]=1.58652e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.64898e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97176e-01;
1249 pars_fPmeanVsBGcorr[1][i][0]=1.83264e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.45858e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00079e+00;
1250 }
1251 else if(i==3) {//d
1252 pars_fPmeanVsBGcorr[0][i][0]=0.011233; pars_fPmeanVsBGcorr[0][i][1]=-2.389911; pars_fPmeanVsBGcorr[0][i][2]=0.997176;//0.997210
1253 pars_fPmeanVsBGcorr[1][i][0]=0.012975; pars_fPmeanVsBGcorr[1][i][1]=-2.218137; pars_fPmeanVsBGcorr[1][i][2]=1.001091;
1254 }
1255 else if(i==4) {//He3
1256 pars_fPmeanVsBGcorr[0][i][0]=0.030884; pars_fPmeanVsBGcorr[0][i][1]=-2.124273; pars_fPmeanVsBGcorr[0][i][2]=0.997176;//0.997210
1257 pars_fPmeanVsBGcorr[1][i][0]=0.035675; pars_fPmeanVsBGcorr[1][i][1]=-1.971591; pars_fPmeanVsBGcorr[1][i][2]=1.001091;
1258 }
1259 }
1260 }
1261
1262 /*
1263 for(Int_t iB=0;iB<nBconf;iB++) {
1264 for(Int_t i=0;i<5;i++) {
1265 pars_fPmeanVsBGcorr[iB][i][0]=0.02; pars_fPmeanVsBGcorr[iB][i][1]=-2.0; pars_fPmeanVsBGcorr[iB][i][2]=1.0;
1266 }
1267 }*/
1268
1269 for(Int_t iB=0;iB<nBconf;iB++) {
1270 for(Int_t i=5;i<10;i++) {
1271 pars_fPmeanVsBGcorr[iB][i][0]=pars_fPmeanVsBGcorr[iB][i-5][0];
1272 pars_fPmeanVsBGcorr[iB][i][1]=pars_fPmeanVsBGcorr[iB][i-5][1];
1273 pars_fPmeanVsBGcorr[iB][i][2]=pars_fPmeanVsBGcorr[iB][i-5][2];
1274 }
1275 }
1276
1277 for(Int_t iB=0;iB<nBconf;iB++) {
1278 for(Int_t i=0;i<10;i++) {
1279 fPmeanVsBGcorr[iB][i]->SetParameters(pars_fPmeanVsBGcorr[iB][i]);
1280 fPmeanVsBGcorr[iB][i]->SetNpx(fPmeanVsBGcorr[iB][i]->GetNpx()*10);
1281 }
1282 }
1283
1284 return;
1285
1286}
c77430f9 1287