]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/LambdaK0PbPb/MultYields2QA.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / MultYields2QA.C
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
7 void 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
23 void 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
60   TString title[1]={"MinimumBias"}; // Not used?
61   //Make 2D projections from the 3D histogram
62   //Minbias (i.e. everything)
63   
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   
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
75   if(particleMode == 1 || particleMode == 3 || particleMode == 2){ // Lambda or Lambda+Anti-Lambda
76     if(ihist ==0){
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
99       controllerArray->AddLast(new AliMassFitControl(2.8,3.0, 2,2, 1.095,1.16)); //16
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
102       controllerArray->AddLast(new AliMassFitControl(3.4,3.6, 2,2, 1.095,1.17)); //19
103       controllerArray->AddLast(new AliMassFitControl(3.6,3.8, 2,2, 1.095,1.17)); //20
104       controllerArray->AddLast(new AliMassFitControl(3.8,4.0, 1,2, 1.090,1.16)); //21
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
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
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 ---->
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
166   else if (particleMode == 0){ // K0s case
167     if(ihist == 0){
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 
179       controllerArray->AddLast(new AliMassFitControl(1.3,1.4, 2,2, 0.44,0.56)); //12
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
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
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
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
200               controllerArray->AddLast(new AliMassFitControl(6.5,8.0, 1,2, 0.43,0.56)); //33
201         controllerArray->AddLast(new AliMassFitControl(8.0,12.0, 0,4, 0.42,0.57));//34
202       
203     }
204     if(ihist == 1){
205       cout << "histogram : " <<1<<endl;
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
209         //      controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
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));
221     }
222     if(ihist == 2){
223       cout << "histogram : " <<2<<endl;
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
227         //      controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
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));
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
239       for(int i = 1; i<=20; i++) //for pt3
240         // for(int i = 0; i<=40; i++)
241         //      controllerArray->AddLast(new AliMassFitControl(minhist,i,i+1.0, 2,1, 0.44,0.56));
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));
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));
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));
267     }
268     if(ihist == 5){
269       cout << "histogram : " <<5<<endl;
270       for(int i = 0; i<25; i++) //for pt3
271         //      for(int i = 0; i<=32; i++)
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));
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
284     }
285     if(ihist == 6){
286       cout << "histogram : " <<6<<endl;
287             for(int i = 18; i<40; i++){ //for pt3
288       //  for(int i = 1; i<40; i++){
289         //   if(i==23) 
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                          }
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]");
354   if(ihist == 4)hYield->SetXTitle("Decay Length / [cm]");
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 }