]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/MultYields2QA.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / MultYields2QA.C
CommitLineData
8797f8b6 1#include "AliMassFitControl.h"
2
3// Two functions now.
4// MultYields3 takes a 3D histogram and calls the 2D function MultYields2
5// MultYields2 could be called directly if we only have a 2D histogram
6
7void MultYields3(TH3F *PtMassMult, Int_t particleMode, Int_t MultBin, Char_t* label){
8
9 // Leave open possibility to choose different values depending on MultBin - LSB
10 Float_t MultLo[1] = {0};
11 Float_t MultHi[1] = {300};
12
13 //Make 2D projections from the 3D histogram
14 PtMassMult->GetZaxis()->SetRange(MultLo[MultBin],MultHi[MultBin]);
15 TH2F* hParMass = (TH2F*)PtMassMult->Project3D("XY");// FIX:MF
16 hParMass->SetTitle("PtMass");
17
18 //hParMass->Draw(); // Drawing invokes default c1 canvas making it inaccessible in MultYields2 - TO FIX
19 MultYields2(hParMass, particleMode,MultBin,label);
20
21}
22
23void MultYields2QA(TH2F *hParMass, Int_t particleMode, Int_t ihist,Int_t Nev = 1, Int_t MultBin, Char_t* label){
24
25 hParMass->Draw();
26 ////////////////////////// minhist is needed by AliMassFitControl.h (in case the minimum on the parameter's axis is arbitrary value);
27 Double_t minhist = 0;
28 minhist = hParMass->GetBinLowEdge(1);
29 cout<<" value of the first bin of parameter : " <<minhist << endl;
30
31 // Do .L on command line first
32 //gROOT->LoadMacro("macros/PtMassAna2.C");
33 /* Modifications to produce a single uncorrected spectrum in a particular mult. bin for K0 or Lambda
34 Old ratio code preserved in MultYieldsRatio.C
35 Dec 2003 */
36 Char_t* part; //for name of particle
37 Float_t BR; //branching ratio - check them
38 if (particleMode==0){
39 part = "K0";
40 BR=0.686;
41 } else if (particleMode==1){
42 part = "Lambda";
43 BR=0.639;
44 } else if (particleMode==2){
45 part = "AntiLambda";
46 BR=0.639;
47 } else if (particleMode==3){
48 part = "Lambda+antiLambda";
49 BR=0.639;
50 } else if (particleMode==4){
51 part = "Xi";
52 BR=1.0; // Should be Lam ->p pi Br
53 } else if (particleMode ==6){
54 part = "Omega";
55 BR=1.0; // Should be Lam->p pi * Om -> K Lam
56 }
57
58
59
e33438ef 60 TString title[1]={"MinimumBias"}; // Not used?
8797f8b6 61 //Make 2D projections from the 3D histogram
62 //Minbias (i.e. everything)
63
e33438ef 64 // 1st argument is initial size but array will expand as necessary
65 // 2nd arg means can count from 1!
66 TObjArray *controllerArray = new TObjArray(10,1);
67
8797f8b6 68 //Here probably need switch-case, depending on mult bin and particle
69 // LoPt, HiPt, polynomial order, rebinning factor
70
71 ///// LAMBDA and LAMBDA+ANTILAMBDA (Combination)
72
73
74
e33438ef 75 if(particleMode == 1 || particleMode == 3 || particleMode == 2){ // Lambda or Lambda+Anti-Lambda
8797f8b6 76 if(ihist ==0){
99c77a9a 77 // controllerArray->AddLast(new AliMassFitControl(0.2,0.3, 2,2, 1.095,1.17)); //1
78 // controllerArray->AddLast(new AliMassFitControl(0.3,0.4, 2,2, 1.095,1.17)); //2
79 // controllerArray->AddLast(new AliMassFitControl(0.4,0.5, 2,2, 1.095,1.17)); //3
80 // controllerArray->AddLast(new AliMassFitControl(0.5,0.6, 2,2, 1.095,1.17)); //4
81 controllerArray->AddLast(new AliMassFitControl(0.6,0.7, 2,2, 1.105,1.14)); //5
82 controllerArray->AddLast(new AliMassFitControl(0.7,0.8, 2,2, 1.095,1.14)); //6
83 controllerArray->AddLast(new AliMassFitControl(0.8,0.9, 2,2, 1.095,1.14)); //7
84 controllerArray->AddLast(new AliMassFitControl(0.9,1.0, 2,2, 1.095,1.14)); //1
85 controllerArray->AddLast(new AliMassFitControl(1.0,1.1, 2,2, 1.099,1.14)); //2
86 controllerArray->AddLast(new AliMassFitControl(1.1,1.2, 2,2, 1.099,1.14)); //3
87 controllerArray->AddLast(new AliMassFitControl(1.2,1.3, 2,2, 1.099,1.14)); //4
88 controllerArray->AddLast(new AliMassFitControl(1.3,1.4, 2,2, 1.099,1.14)); //5
89 controllerArray->AddLast(new AliMassFitControl(1.4,1.5, 2,2, 1.095,1.14)); //6
90 controllerArray->AddLast(new AliMassFitControl(1.5,1.6, 2,2, 1.095,1.15)); //7
91 controllerArray->AddLast(new AliMassFitControl(1.6,1.7, 2,2, 1.095,1.145)); //8
92 controllerArray->AddLast(new AliMassFitControl(1.7,1.8, 2,2, 1.095,1.15)); //9
93 controllerArray->AddLast(new AliMassFitControl(1.8,1.9, 2,2, 1.095,1.14)); //10
94 controllerArray->AddLast(new AliMassFitControl(1.9,2.0, 2,2, 1.095,1.14)); //11
95 controllerArray->AddLast(new AliMassFitControl(2.0,2.2, 2,2, 1.095,1.17)); //12
96 controllerArray->AddLast(new AliMassFitControl(2.2,2.4, 2,2, 1.095,1.17)); //13
97 controllerArray->AddLast(new AliMassFitControl(2.4,2.6, 2,2, 1.095,1.17)); //14
98 controllerArray->AddLast(new AliMassFitControl(2.6,2.8, 2,2, 1.095,1.17)); //15
e33438ef 99 controllerArray->AddLast(new AliMassFitControl(2.8,3.0, 2,2, 1.095,1.16)); //16
99c77a9a 100 controllerArray->AddLast(new AliMassFitControl(3.0,3.2, 2,2, 1.095,1.17)); //17
101 controllerArray->AddLast(new AliMassFitControl(3.2,3.4, 2,2, 1.095,1.16)); //18
e33438ef 102 controllerArray->AddLast(new AliMassFitControl(3.4,3.6, 2,2, 1.095,1.17)); //19
99c77a9a 103 controllerArray->AddLast(new AliMassFitControl(3.6,3.8, 2,2, 1.095,1.17)); //20
e33438ef 104 controllerArray->AddLast(new AliMassFitControl(3.8,4.0, 1,2, 1.090,1.16)); //21
99c77a9a 105 controllerArray->AddLast(new AliMassFitControl(4.0,4.5, 1,2, 1.095,1.17)); //22
106 controllerArray->AddLast(new AliMassFitControl(4.5,5.0, 1,2, 1.083,1.17)); //23
107 controllerArray->AddLast(new AliMassFitControl(5.0,5.5, 1,2, 1.083,1.17)); //24 bin05
108 controllerArray->AddLast(new AliMassFitControl(5.5,6.5, 1,2, 1.083,1.17)); //25
e33438ef 109 controllerArray->AddLast(new AliMassFitControl(6.5,8.0, 0,2, 1.095,1.17)); //33
110 //controllerArray->AddLast(new AliMassFitControl(8.0,12.0, 1,2, 1.096,1.17));//34
8797f8b6 111
112
113 }
114 if(ihist == 1){
115 cout << "histogram : " <<1<<endl;
116 for(int i = 0; i<49; i++)
117 // for(int i = 0; i<33; i++) //for 05 centrality
118 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
119 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 2,1, 1.095,1.15));
120 }
121 if(ihist == 2){
122 cout << "histogram : " <<2<<endl;
123 for(int i = 0; i<49; i++)
124 // for(int i = 0; i<33; i++) //for 05 centrality
125 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
126 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 2,1, 1.095,1.17));
127 }
128 if(ihist == 3){
129 cout << "histogram : " <<3<<endl;
130 for(int i = 0; i<=40; i++)
131 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
132 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 1.095,1.17));
133 }
134 if(ihist == 4){
135 cout << "histogram : " <<4<<endl;
136 for(int i = 0; i<=40; i++)
137 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
138 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 1.095,1.17));
139 }
140 if(ihist == 5){
141 cout << "histogram : " <<5<<endl;
142 for(int i = 0; i<=33; i++)
143 // if(i==11 || i==15 || i==16)
144 // controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.43,0.57));
145 // else
146 //controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.44,0.56));
147 controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 1.095,1.17)); //00
148 }
149 if(ihist == 6){
150 cout << "histogram : " <<6<<endl;
151 for(int i = 1; i<40; i++){
152 // if(i==23)
153 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 2,1, 1.095,1.17));
154 /* if( i==17 || i==18 || i==23)
155 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 2,1, 0.446,0.55));
156 else
157 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 2,1, 0.44,0.56));
158 */ }
159 }
160 }
161 /// ANTI LAMBDA ---->
e33438ef 162// else if (particleMode == 2){ // Anti-Lambdas
163// controllerArray->AddLast(new AliMassFitControl(5.0,5.5, 0,4, 1.095,1.17));
164// controllerArray->AddLast(new AliMassFitControl(5.5,6.0, 0,6, 1.085,1.17));
165// } // end if anti-Lambda
8797f8b6 166 else if (particleMode == 0){ // K0s case
167 if(ihist == 0){
99c77a9a 168 // controllerArray->AddLast(new AliMassFitControl(0.2,0.3, 2,2, 0.45,0.56)); //1
169 //controllerArray->AddLast(new AliMassFitControl(0.3,0.4, 2,2, 0.45,0.56)); //2
170 controllerArray->AddLast(new AliMassFitControl(0.4,0.5, 1,2, 0.45,0.6)); //3
171 controllerArray->AddLast(new AliMassFitControl(0.5,0.6, 1,2, 0.45,0.59)); //4
172 controllerArray->AddLast(new AliMassFitControl(0.6,0.7, 2,2, 0.45,0.55)); //5
173 controllerArray->AddLast(new AliMassFitControl(0.7,0.8, 2,2, 0.45,0.55)); //6
174 controllerArray->AddLast(new AliMassFitControl(0.8,0.9, 2,2, 0.44,0.55)); //7
175 controllerArray->AddLast(new AliMassFitControl(0.9,1.0, 2,2, 0.443,0.55)); //8
176 controllerArray->AddLast(new AliMassFitControl(1.0,1.1, 2,2, 0.443,0.55)); //9
177 controllerArray->AddLast(new AliMassFitControl(1.1,1.2, 2,2, 0.443,0.56)); //10
178 controllerArray->AddLast(new AliMassFitControl(1.2,1.3, 2,2, 0.44,0.55)); //11
e33438ef 179 controllerArray->AddLast(new AliMassFitControl(1.3,1.4, 2,2, 0.44,0.56)); //12
99c77a9a 180 controllerArray->AddLast(new AliMassFitControl(1.4,1.5, 2,2, 0.44,0.56)); //13
181 controllerArray->AddLast(new AliMassFitControl(1.5,1.6, 2,2, 0.44,0.55)); //14
182 controllerArray->AddLast(new AliMassFitControl(1.6,1.7, 2,2, 0.44,0.55)); //15
183 controllerArray->AddLast(new AliMassFitControl(1.7,1.8, 2,2, 0.44,0.55)); //16
184 controllerArray->AddLast(new AliMassFitControl(1.8,1.9, 2,2, 0.45,0.55)); //17
185 controllerArray->AddLast(new AliMassFitControl(1.9,2.0, 2,2, 0.44,0.55)); //18
186 controllerArray->AddLast(new AliMassFitControl(2.0,2.2, 2,2, 0.44,0.55)); //19
187 controllerArray->AddLast(new AliMassFitControl(2.2,2.4, 2,2, 0.44,0.55)); //20
e33438ef 188 controllerArray->AddLast(new AliMassFitControl(2.4,2.6, 1,2, 0.44,0.54)); //21
189 controllerArray->AddLast(new AliMassFitControl(2.6,2.8, 1,2, 0.44,0.54)); //22
99c77a9a 190 controllerArray->AddLast(new AliMassFitControl(2.8,3.0, 2,2, 0.44,0.54)); //23
191 controllerArray->AddLast(new AliMassFitControl(3.0,3.2, 2,2, 0.443,0.54)); //24
192 controllerArray->AddLast(new AliMassFitControl(3.2,3.4, 2,2, 0.443,0.54)); //25
193 controllerArray->AddLast(new AliMassFitControl(3.4,3.6, 2,2, 0.44,0.56)); //26
194 controllerArray->AddLast(new AliMassFitControl(3.6,3.8, 2,2, 0.444,0.56)); //27
195 controllerArray->AddLast(new AliMassFitControl(3.8,4.0, 2,2, 0.44,0.56)); //28
196 controllerArray->AddLast(new AliMassFitControl(4.0,4.5, 2,2, 0.44,0.56)); //29
197 controllerArray->AddLast(new AliMassFitControl(4.5,5.0, 1,2, 0.44,0.56)); //30
e33438ef 198 controllerArray->AddLast(new AliMassFitControl(5.0,5.5, 1,2, 0.44,0.55)); //31
199 controllerArray->AddLast(new AliMassFitControl(5.5,6.5, 1,2, 0.44,0.56)); //32
99c77a9a 200 controllerArray->AddLast(new AliMassFitControl(6.5,8.0, 1,2, 0.43,0.56)); //33
e33438ef 201 controllerArray->AddLast(new AliMassFitControl(8.0,12.0, 0,4, 0.42,0.57));//34
8797f8b6 202
203 }
204 if(ihist == 1){
205 cout << "histogram : " <<1<<endl;
99c77a9a 206 // for(int i = 0; i<49; i++)
207 // for(int i = 0; i<=20; i++) //for pt3
208 for(int i = 0; i<33; i++) //for 05 centrality
8797f8b6 209 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
99c77a9a 210 if(i==0)
211 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 2,1, 0.443,0.54));
212 else
213 if(i>=25)
214 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 1,1, 0.443,0.53));
215 else
216 if(i==24)
217 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 1,1, 0.45,0.57));
218
219 else
220 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 2,1, 0.45,0.56));
8797f8b6 221 }
222 if(ihist == 2){
223 cout << "histogram : " <<2<<endl;
99c77a9a 224 // for(int i = 0; i<=20; i++){ //for pt3
225 // for(int i = 0; i<42; i++){
226 for(int i = 0; i<33; i++){ //for 05 centrality
8797f8b6 227 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
99c77a9a 228 if(i<=5)controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 2,1, 0.445,0.55));
229 else
230 if(i>25)
231 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 1,1, 0.444,0.56));
8797f8b6 232 else
233 controllerArray->AddLast(new AliMassFitControl(minhist,0.1+i*0.2,0.1+(i+1.0)*0.2, 2,1, 0.445,0.56));
234 }
235 }
236 if(ihist == 3){
237 cout << "histogram : " <<3<<endl;
238 //for(int i = 0; i<=28; i++) //bin05
99c77a9a 239 for(int i = 1; i<=20; i++) //for pt3
240 // for(int i = 0; i<=40; i++)
8797f8b6 241 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
99c77a9a 242 if(i==2 || i==4 || i==5)
243 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.442,0.535));
244 else if(i<2)
245 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.442,0.53));
246 else if(i>=3)
247 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.443,0.55));
248
249 else
250 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.443,0.54));
8797f8b6 251 }
252 if(ihist == 4){
253 cout << "histogram : " <<4<<endl;
254 for(int i = 0; i<=40; i++)
255 // controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
99c77a9a 256 if(i<4)controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 1,1, 0.443,0.56));
257 else if (i >=4 && i<=6)
258 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 1,1, 0.443,0.547));
259 else if (i==10 || i==11)
260 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 1,1, 0.443,0.544));
261 else if (i==26)
262 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 1,1, 0.443,0.544));
263 else if (i==29 || i == 34)
264 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 1,1, 0.454,0.544));
265 else
266 controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 1,1, 0.445,0.55));
8797f8b6 267 }
268 if(ihist == 5){
269 cout << "histogram : " <<5<<endl;
99c77a9a 270 for(int i = 0; i<25; i++) //for pt3
271 // for(int i = 0; i<=32; i++)
8797f8b6 272 // if(i==11 || i==15 || i==16)
273 // controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.43,0.57));
274 // else
275 //controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.44,0.56));
99c77a9a 276 if(i<=5) controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.443,0.55)); //00
277 else
278 if(i>=6 && i<=9) controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.44,0.55)); //00
279 else
280 if(i>=21) controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 1,1, 0.44,0.55)); //00
281 else
282 controllerArray->AddLast(new AliMassFitControl(minhist,0+i*0.03,(i+1)*0.03, 2,1, 0.43,0.56));
283
8797f8b6 284 }
285 if(ihist == 6){
286 cout << "histogram : " <<6<<endl;
99c77a9a 287 for(int i = 18; i<40; i++){ //for pt3
288 // for(int i = 1; i<40; i++){
8797f8b6 289 // if(i==23)
99c77a9a 290 if( i==15 || i==0)
291 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.444,0.56));
292 else if( i==10 || i==11)
293 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.444,0.56));
294 else if( i==20 || i==21)
295 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.445,0.56));
296 else if (i<=22)
297 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.445,0.56));
298 else if (i>22 && i<=24)
299 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.445,0.555));
300 else if (i>24 && i<29)
301 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.44,0.53));
302 else if (i>29)
303 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 1,1, 0.445,0.54));
304 else if( i>31 )
305 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 2,1, 0.44,0.54));
306
307 else
308 controllerArray->AddLast(new AliMassFitControl(minhist,0.998 +i*0.00005,0.998 +(i+1)*0.00005, 2,1, 0.445,0.55));
309 }
8797f8b6 310 }
311 } else if (particleMode == 4) { //Xi case
312 //controllerArray->AddLast(new AliMassFitControl(0.5,0.7, 1,1, 1.28,1.45)); //signal not visible with
313 controllerArray->AddLast(new AliMassFitControl(0.7,0.9, 1,1, 1.285,1.45));
314 controllerArray->AddLast(new AliMassFitControl(0.9,1.1, 1,1, 1.285,1.45));
315 controllerArray->AddLast(new AliMassFitControl(1.1,1.3, 1,1, 1.27,1.45));
316 controllerArray->AddLast(new AliMassFitControl(1.3,1.5, 1,1, 1.27,1.45));
317 controllerArray->AddLast(new AliMassFitControl(1.5,1.7, 1,1, 1.27,1.45));
318 controllerArray->AddLast(new AliMassFitControl(1.7,2.0, 1,1, 1.27,1.45));
319 controllerArray->AddLast(new AliMassFitControl(2.0,2.5, 1,1, 1.27,1.44));
320 controllerArray->AddLast(new AliMassFitControl(2.5,3.0, 1,1, 1.27,1.45));
321 controllerArray->AddLast(new AliMassFitControl(3.0,3.5, 1,1, 1.27,1.44));
322 controllerArray->AddLast(new AliMassFitControl(3.5,4.0, 1,1, 1.27,1.45));
323 controllerArray->AddLast(new AliMassFitControl(4.0,4.5, 2,1, 1.27,1.44));
324 controllerArray->AddLast(new AliMassFitControl(4.5,5.0, 2,1, 1.27,1.45));
325 }
326 controllerArray->Sort();
327
328 // Make the proper label to pass in for use in labelling the diagnostics
329 // saved canvas files and histos
330 Char_t fulllabel[80];
331 //sprintf(fulllabel,"%s%s",title[MultBin].Data(),label);
332 sprintf(fulllabel,"%s",label);
333
334 //Slice up projection into mass histograms to extract yield
335 TH1F* hYield = (TH1F*)PtMassAna2(hParMass,particleMode,ihist,controllerArray->GetEntries(),controllerArray,fulllabel);
336
337
338 // CORRECTIONS Nev -comming from "FitSpectrum.C" (events with Zvertex < |10cm|)
339 hYield->Scale(1.0/Nev); //Divide by the number of events
340
341 //hYield->Scale(Veff[MultBin]); //Multiply by the vertex efficiency effectively increaing number of events
342 //(since Veff<1) therefore decreases yield
343 //hYield->Scale(1.0/BR); //Divide by branching ratio (again increases yield since BR<1)
344 //hYield->Scale(1.0/(2*TMath::Pi())); // Always plot 1/2pi ...
345
346 Char_t yieldTitle[80];
347 //sprintf(yieldTitle,"Uncorrected %s yield: %s",part,title[MultBin].Data());
348 sprintf(yieldTitle,"Uncorrected %s yield",part);
349 hYield->SetTitle(yieldTitle);
350 if(ihist == 0)hYield->SetXTitle("p_{t} / [GeV/c]");
351 if(ihist == 1)hYield->SetXTitle("DCA / [cm]");
352 if(ihist == 2)hYield->SetXTitle("DCA / [cm]");
353 if(ihist == 3)hYield->SetXTitle("Radius / [cm]");
e33438ef 354 if(ihist == 4)hYield->SetXTitle("Decay Length / [cm]");
8797f8b6 355 if(ihist == 5)hYield->SetXTitle("V0 Daughters / [cm]");
356 if(ihist == 6)hYield->SetXTitle("Cos of pointing angle");
357 hYield->SetYTitle("1/Nev.dN/dp_{t}");
358
359 // Create plots
360
361 Char_t fileNameBase[80];
362 if(ihist == 0)sprintf(fileNameBase,"Masses%s",part);
363 else sprintf(fileNameBase,"Masses%s",label);
364 Char_t fileNamePng[80];
365 sprintf(fileNamePng,"%s.png",fileNameBase);
366 Char_t fileNameEps[80];
367 sprintf(fileNameEps,"%s.eps",fileNameBase);
368 Char_t fileNamePdf[80];
369 sprintf(fileNamePdf,"%s.pdf",fileNameBase);
370
371 c1->SaveAs(fileNamePng);
372 c1->SaveAs(fileNameEps);
373 c1->SaveAs(fileNamePdf);
374
375 //c1->Clear();
376
377 //c1->SetLogy();
378 TCanvas *cYield = new TCanvas("Yield","Corrected Yield",600,400);
379 cYield->cd();
380 //cYield->SetLogy();
381 hYield->SetStats(kFALSE);
382 hYield->Draw();
383 // cYield->SetLogy();
384 cYield->Update();
385
386 // hRC_MB->SetMarkerStyle(20);
387 // hRC_MB->SetMarkerColor(4);
388 // hRC_MB->Scale(NBinMB/NBin3);
389 Char_t fnametext[80];
390 if(ihist == 0)sprintf(fnametext,"Yield%s",part);
391 else sprintf(fnametext,"Yield%s",label);
392 Char_t fnamePng[80];
393 sprintf(fnamePng,"%s.png",fnametext);
394 c1->SaveAs(fnamePng);
395 Char_t fnameEps[80];
396 sprintf(fnameEps,"%s.eps",fnametext);
397 c1->SaveAs(fnameEps);
398
399 // This section for yield scaled by number of binary collisions.
400 // Could add array of values and do scaling according to 'MultBin' index
401 TH1F* hScYield = hYield->Clone("ScYield");
402 Char_t scYieldTitle[80];
403 //sprintf(scYieldTitle,"<N_{bin}> Scaled %s",hYield->GetTitle());
404 //hScYield->SetTitle(scYieldTitle);
405 //SCALING for scaled yield only divide by mean Nbin (scaled yield is therefore smaller)
406 //hScYield->Scale(1/NBin[MultBin]);
407
408 Char_t fnameRoot[80];
409 sprintf(fnameRoot,"%s.root",fnametext);
410 TFile *YieldFile = new TFile(fnameRoot,"RECREATE");
411 hYield->Write();
412 hScYield->Write();
413 YieldFile->Close();
414
415 controllerArray->Delete();
416}