StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StCentrality.cxx
1 
2 #include <assert.h>
3 
4 #include "TError.h"
5 #include "TMath.h"
6 
7 #include "StMessMgr.h"
8 #include "StCentrality.h"
9 
10 ClassImp(StCentrality)
11 
12  using std::vector ;
13 
14  //____________________________________________________________________________________________________
15  // Re-weighting correction
16 Double_t Reweighting(const Double_t* x, const Double_t* par)
17 {
18  return 1.0 - TMath::Exp(-par[0]*TMath::Power(x[0], par[1]));
19 }
20 
21 //____________________________________________________________________________________________________
22 // Default constructor
23  StCentrality::StCentrality(const TString system, const TString type)
24 : mType(type), mNpp(0.0), mK(0.0), mX(0.0)
25 {
26  for(UInt_t im=0; im<mNMode; im++){
27  mMultiplicityCut[im].clear();
28  mCentralityMin[im].clear();
29  mCentralityMax[im].clear();
30  }
31 
32  mParReweighting[0] = 0.0 ;
33  mParReweighting[1] = 0.0 ;
34 
36  if( system.CompareTo("auau_200gev", TString::kIgnoreCase) == 0 ) Init_AuAu200GeV() ;
37  else if( system.CompareTo("auau_62gev", TString::kIgnoreCase) == 0 ) Init_AuAu62GeV() ;
38  else if( system.CompareTo("auau_39gev", TString::kIgnoreCase) == 0 ) Init_AuAu39GeV() ;
39  else if( system.CompareTo("auau_27gev", TString::kIgnoreCase) == 0 ) Init_AuAu27GeV() ;
40  else if( system.CompareTo("auau_19gev", TString::kIgnoreCase) == 0 ) Init_AuAu19GeV() ;
41  else if( system.CompareTo("auau_11gev", TString::kIgnoreCase) == 0 ) Init_AuAu11GeV() ;
42  else if( system.CompareTo("auau_7gev", TString::kIgnoreCase) == 0 ) Init_AuAu7GeV() ;
43  else if( system.CompareTo("dau_200GeV", TString::kIgnoreCase) == 0 ) Init_dAu200GeV() ;
44  else if( system.CompareTo("cucu_200GeV", TString::kIgnoreCase) == 0 ) Init_CuCu200GeV() ;
45  else if( system.CompareTo("zrzr_200GeV", TString::kIgnoreCase) == 0 ) Init_ZrZr200GeV() ;
46  else if( system.CompareTo("uu_200GeV", TString::kIgnoreCase) == 0 ) Init_UU200GeV() ;
47  else if( system.CompareTo("pbpb_2760GeV", TString::kIgnoreCase) == 0 ) Init_PbPb2760GeV() ;
48  else{
49  Error("StCentrality", "can't find system %s. See below for current available systems", system.Data());
50  help();
51  assert(0);
52  }
53 
55  if( mMultiplicityCut[0].empty() ) Warning("StCentrality", "Bins for multiplicity cut is empty. Program will be crashed ...");
56  if( mCentralityMin[0].empty() ) Warning("StCentrality", "Minimum centrality is empty. Program will be crashed ...");
57  if( mCentralityMax[0].empty() ) Warning("StCentrality", "Maximum centrality is empty. Program will be crashed ...");
58 
59  // Cuts
60  const Bool_t isBinSizeEqual0 =
61  (mMultiplicityCut[0].size() == mMultiplicityCut[1].size())
62  && (mMultiplicityCut[1].size() == mMultiplicityCut[2].size())
63  && (mMultiplicityCut[2].size() == mMultiplicityCut[0].size())
64  ;
65  if(!isBinSizeEqual0){
66  Error("StCentrality",
67  Form("Bin size for arrays are not equal: (default, small, large) = (%3d, %3d, %3d)",
68  mMultiplicityCut[0].size(), mMultiplicityCut[1].size(), mMultiplicityCut[2].size())
69  );
70  assert(isBinSizeEqual0);
71  }
72 
73  // Among cut, min, max
74  const Bool_t isBinSizeEqual1 =
75  (mMultiplicityCut[0].size() == mCentralityMin[0].size())
76  && (mCentralityMin[0].size() == mCentralityMax[0].size())
77  && (mCentralityMax[0].size() == mMultiplicityCut[0].size())
78  ;
79  if(!isBinSizeEqual1){
80  Error("StCentrality",
81  Form("Bin size for arrays are not equal: (mult, centmin, centmax) = (%3d, %3d, %3d)",
82  mMultiplicityCut[0].size(), mCentralityMin[0].size(), mCentralityMax[0].size())
83  );
84  assert(isBinSizeEqual1);
85  }
86 
88  for(UInt_t im=0; im<mNMode; im++){
89  for(UInt_t ic=0; ic<mMultiplicityCut[im].size(); ic++){
90  LOG_INFO << Form("StCentrality multiplicity cut M > %4d for centrality %3d - %3d (%%)",
91  mMultiplicityCut[im][ic], (Int_t)mCentralityMin[im][ic], (Int_t)mCentralityMax[im][ic])
92  << endm;
93  }// centrality
94  }// mode
95 
96 }
97 
98 //____________________________________________________________________________________________________
99 // Default destructor
101 {
102  for(UInt_t im=0; im<mNMode; im++){
103  mMultiplicityCut[im].clear();
104  mCentralityMin[im].clear();
105  mCentralityMax[im].clear();
106  }
107 }
108 
109 //____________________________________________________________________________________________________
111 {
112  LOG_INFO << "#----------------------------------------------------------------------------------------------------" << endm;
113  LOG_INFO << "StCentrality::help Current available systems for Init(const Char_t* system) are:" << endm;
114  LOG_INFO << "system descriptions" << endm;
115  LOG_INFO << "AuAu_200GeV Au + Au at 200 GeV" << endm;
116  LOG_INFO << "AuAu_39GeV Au + Au at 39 GeV" << endm;
117  LOG_INFO << "AuAu_11GeV Au + Au at 11.5 GeV" << endm;
118  LOG_INFO << "AuAu_19GeV Au + Au at 19.6 GeV" << endm;
119  LOG_INFO << "AuAu_7GeV Au + Au at 7.7 GeV" << endm;
120  LOG_INFO << "dAu_200GeV d + Au at 200 GeV" << endm;
121  LOG_INFO << endm;
122  LOG_INFO << " NOTE: input system name is case insensitive" << endm;
123  LOG_INFO << "#----------------------------------------------------------------------------------------------------" << endm;
124 }
125 
126 //____________________________________________________________________________________________________
127 Double_t StCentrality::GetCentrality(const UInt_t multiplicity, const UInt_t mode) const
128 {
134 
135  // Check mode
136  if( mode >= mNMode ){
137  Error("StCentrality::GetCentrality", "Invalid mode, mode=%3d. reutnr -1", mode);
138  return -1.0 ;
139  }
140 
141  // Make sure array has some entries
142  if( mMultiplicityCut[mode].empty() ){
143  Error("StCentrality::GetCentrality", "multiplicity cuts for centrality have not implemented. return -1");
144  return -1.0 ;
145  }
146 
147  // Find centrality bin
148  for(UInt_t icent=0; icent<mMultiplicityCut[mode].size(); icent++){
149  if( multiplicity > mMultiplicityCut[mode][icent] )
150  return (mCentralityMin[mode][icent]+mCentralityMax[mode][icent])/2.0;
151  }
152 
153  return -1.0 ;
154 }
155 
156 //____________________________________________________________________________________________________
157 Double_t StCentrality::GetNppError(const Double_t npp) const
158 {
159  if ( mType.CompareTo("default", TString::kIgnoreCase) == 0 ) return 0.0 ;
160  else if ( mType.CompareTo("low", TString::kIgnoreCase) == 0 ){
161  LOG_INFO << "StCentrality::GetNppError type=low add -5% error on npp" << endm;
162  return -0.05 * npp ;
163  }
164  else if ( mType.CompareTo("high", TString::kIgnoreCase) == 0 ){
165  LOG_INFO << "StCentrality::GetNppError type=high add +5% error on npp" << endm;
166  return 0.05 * npp ;
167  }
168  else {
169  Warning("StCentrality::GetNppError", "Unknown type, type=%s. Set error = 0", mType.Data());
170  return 0.0 ;
171  }
172 }
173 
174 //____________________________________________________________________________________________________
175 void StCentrality::Init_AuAu200GeV()
176 {
177  // Run4 stuffs
178 #if 0
179  // Centrality definition in 200 GeV Run4
180  // Define multiplicity cut from central to peripheral
181  mMultiplicityCut[0].push_back( 514 - 1 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
182  mMultiplicityCut[0].push_back( 432 - 1 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
183  mMultiplicityCut[0].push_back( 302 - 1 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
184  mMultiplicityCut[0].push_back( 208 - 1 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
185  mMultiplicityCut[0].push_back( 138 - 1 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
186  mMultiplicityCut[0].push_back( 88 - 1 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
187  mMultiplicityCut[0].push_back( 52 - 1 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
188  mMultiplicityCut[0].push_back( 28 - 1 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
189  mMultiplicityCut[0].push_back( 14 - 1 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
190 #endif
191 
193  //----------------------------------------------------------------------------------------------------
194  // Update on Feb/04/2011
195  // npp and x are determined from published spectra paper, PRC79, 034909 (2009)
196  // npp = 2.43
197  // k = 2.0 (probably k dependence is weak, need to study)
198  // x = 0.13 from interpolation between 19.6 and 200 GeV data (PHOBOS, PRC70, 021902, 2004)
199  //
200  // - Multiplicity dependent efficiency with d=0.14
201  // - Additional constant efficiency loss 17% (0.17)
202  // (need to be implemented somehow, this is currently done by temporary fix in StNegativeBinomial.cxx)
203  //
204  // NOTE: parameters are not final yet (Feb/04/2011)
205  //----------------------------------------------------------------------------------------------------
206  // 0.00 - 5.00 (%) : M > 441
207  // 5.00 - 10.00 (%) : M > 375
208  // 10.00 - 15.00 (%) : M > 317
209  // 15.00 - 20.00 (%) : M > 266
210  // 20.00 - 25.00 (%) : M > 221
211  // 25.00 - 30.00 (%) : M > 182
212  // 30.00 - 35.00 (%) : M > 148
213  // 35.00 - 40.00 (%) : M > 118
214  // 40.00 - 45.00 (%) : M > 93
215  // 45.00 - 50.00 (%) : M > 72
216  // 50.00 - 55.00 (%) : M > 55
217  // 55.00 - 60.00 (%) : M > 41
218  // 60.00 - 65.00 (%) : M > 30
219  // 65.00 - 70.00 (%) : M > 21
220  // 70.00 - 75.00 (%) : M > 15
221  // 75.00 - 80.00 (%) : M > 10
222  // 80.00 - 85.00 (%) : M > 6
223  // 85.00 - 90.00 (%) : M > 4
224  //
225 
226  // Error on x (energy specific ???)
227  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
228  Double_t xError = 0.0 ; // absolute error
229  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
230  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
231 
232  const Double_t npp = 2.07 ; // default npp
233  mNpp = npp + GetNppError(npp) ; // 5% error on npp
234  mK = 2.00 ;
235  mX = 0.14 + xError ;
236  mEfficiency = 0.15 ;
237  mTriggerBias = 1.00 ;
238  // mTriggerBias = 0.835 ; // Run10 200 GeV
239 
240  // Final centrality bins
241  // Define multiplicity cut from central to peripheral
242  mMultiplicityCut[0].push_back( 469 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
243  mMultiplicityCut[0].push_back( 398 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
244  mMultiplicityCut[0].push_back( 336 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
245  mMultiplicityCut[0].push_back( 281 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
246  mMultiplicityCut[0].push_back( 234 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
247  mMultiplicityCut[0].push_back( 192 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
248  mMultiplicityCut[0].push_back( 155 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
249  mMultiplicityCut[0].push_back( 124 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
250  mMultiplicityCut[0].push_back( 98 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
251  mMultiplicityCut[0].push_back( 75 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
252  mMultiplicityCut[0].push_back( 57 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
253  mMultiplicityCut[0].push_back( 42 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
254  mMultiplicityCut[0].push_back( 31 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
255  mMultiplicityCut[0].push_back( 22 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
256  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
257  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
258  // -5% +5%
259  mMultiplicityCut[1].push_back( 473 ); mMultiplicityCut[2].push_back( 465 );
260  mMultiplicityCut[1].push_back( 405 ); mMultiplicityCut[2].push_back( 391 );
261  mMultiplicityCut[1].push_back( 345 ); mMultiplicityCut[2].push_back( 327 );
262  mMultiplicityCut[1].push_back( 292 ); mMultiplicityCut[2].push_back( 271 );
263  mMultiplicityCut[1].push_back( 245 ); mMultiplicityCut[2].push_back( 223 );
264  mMultiplicityCut[1].push_back( 204 ); mMultiplicityCut[2].push_back( 181 );
265  mMultiplicityCut[1].push_back( 168 ); mMultiplicityCut[2].push_back( 144 );
266  mMultiplicityCut[1].push_back( 136 ); mMultiplicityCut[2].push_back( 113 );
267  mMultiplicityCut[1].push_back( 109 ); mMultiplicityCut[2].push_back( 87 );
268  mMultiplicityCut[1].push_back( 86 ); mMultiplicityCut[2].push_back( 66 );
269  mMultiplicityCut[1].push_back( 67 ); mMultiplicityCut[2].push_back( 49 );
270  mMultiplicityCut[1].push_back( 51 ); mMultiplicityCut[2].push_back( 35 );
271  mMultiplicityCut[1].push_back( 38 ); mMultiplicityCut[2].push_back( 25 );
272  mMultiplicityCut[1].push_back( 28 ); mMultiplicityCut[2].push_back( 17 );
273  mMultiplicityCut[1].push_back( 20 ); mMultiplicityCut[2].push_back( 11 );
274  mMultiplicityCut[1].push_back( 14 ); mMultiplicityCut[2].push_back( 7 );
275 
276  // Set same centrality bins
277  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
278  for(UInt_t im=1; im<mNMode; im++){
279  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
280  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
281  }
282  }
283 }
284 
285 //____________________________________________________________________________________________________
286 void StCentrality::Init_AuAu62GeV()
287 {
289  //----------------------------------------------------------------------------------------------------
290  // Update on Jul/21/2011
291  // - Just copy from 200 GeV, should be updated later on
292  //
293  //----------------------------------------------------------------------------------------------------
294  // Update on Nov/02/2011 (by Alex's study)
295  // - npp = 1.6
296  // - k = 2
297  // - x = 0.12
298  // - multiplicity dependent efficiency (d=0.14)
299  //----------------------------------------------------------------------------------------------------
300 
301  // Error on x
302  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
303  Double_t xError = 0.0 ; // absolute error
304  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
305  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
306 
307  const Double_t npp = 1.6 ; // default npp
308  mNpp = npp + GetNppError(npp) ; // 5% error on npp
309  mK = 2.00 ;
310  mX = 0.12 + xError ;
311  mEfficiency = 0.14 ;
312  mTriggerBias = 1.00 ;
313 
314  // Final centrality bins
315  // Define multiplicity cut from central to peripheral
316  mMultiplicityCut[0].push_back( 339 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
317  mMultiplicityCut[0].push_back( 285 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
318  mMultiplicityCut[0].push_back( 239 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
319  mMultiplicityCut[0].push_back( 199 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
320  mMultiplicityCut[0].push_back( 165 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
321  mMultiplicityCut[0].push_back( 135 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
322  mMultiplicityCut[0].push_back( 109 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
323  mMultiplicityCut[0].push_back( 88 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
324  mMultiplicityCut[0].push_back( 69 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
325  mMultiplicityCut[0].push_back( 54 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
326  mMultiplicityCut[0].push_back( 41 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
327  mMultiplicityCut[0].push_back( 30 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
328  mMultiplicityCut[0].push_back( 22 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
329  mMultiplicityCut[0].push_back( 16 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
330  mMultiplicityCut[0].push_back( 11 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
331  mMultiplicityCut[0].push_back( 7 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
332 
333  // -5% // +5%
334  mMultiplicityCut[1].push_back( 342 ); mMultiplicityCut[2].push_back( 336 );
335  mMultiplicityCut[1].push_back( 290 ); mMultiplicityCut[2].push_back( 280 );
336  mMultiplicityCut[1].push_back( 245 ); mMultiplicityCut[2].push_back( 232 );
337  mMultiplicityCut[1].push_back( 206 ); mMultiplicityCut[2].push_back( 192 );
338  mMultiplicityCut[1].push_back( 173 ); mMultiplicityCut[2].push_back( 157 );
339  mMultiplicityCut[1].push_back( 143 ); mMultiplicityCut[2].push_back( 127 );
340  mMultiplicityCut[1].push_back( 118 ); mMultiplicityCut[2].push_back( 101 );
341  mMultiplicityCut[1].push_back( 96 ); mMultiplicityCut[2].push_back( 80 );
342  mMultiplicityCut[1].push_back( 77 ); mMultiplicityCut[2].push_back( 62 );
343  mMultiplicityCut[1].push_back( 61 ); mMultiplicityCut[2].push_back( 47 );
344  mMultiplicityCut[1].push_back( 47 ); mMultiplicityCut[2].push_back( 35 );
345  mMultiplicityCut[1].push_back( 36 ); mMultiplicityCut[2].push_back( 25 );
346  mMultiplicityCut[1].push_back( 27 ); mMultiplicityCut[2].push_back( 18 );
347  mMultiplicityCut[1].push_back( 20 ); mMultiplicityCut[2].push_back( 12 );
348  mMultiplicityCut[1].push_back( 14 ); mMultiplicityCut[2].push_back( 8 );
349  mMultiplicityCut[1].push_back( 10 ); mMultiplicityCut[2].push_back( 5 );
350 
351 
352  // Set same centrality bins
353  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
354  for(UInt_t im=1; im<mNMode; im++){
355  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
356  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
357  }
358  }
359 }
360 
361 
362 //____________________________________________________________________________________________________
363 void StCentrality::Init_AuAu39GeV()
364 {
366  //----------------------------------------------------------------------------------------------------
367  // npp = 1.56 from 0.528*log(sqrt(sNN)) - 0.3696
368  // (Paul's study in http://www.star.bnl.gov/protected/ebye/sorensen/bes/sorensen_glauber_9.2.pdf)
369  // k = 2.0 (probably k dependence is weak, need to study)
370  // x = 0.12 from interpolation between 19.6 and 200 GeV data (PHOBOS, PRC70, 021902, 2004)
371  // NOTE: parameters are not final yet (Apr/15/2010)
372  //----------------------------------------------------------------------------------------------------
373  // Update on Apr/26/2010
374  // npp = 1.6 (best fit)
375  // k = 2.0 (no big change from 2 to 5)
376  // x = 0.12
377  // eff = 80%
378  // * All above parameters were determined by using low multiplicity cut off M > 30
379  //
380  // Relative error on npp +/- 5% --> +/- 17% error on x (i.e. 0.12 +/- 0.02)
381  //
382  //----------------------------------------------------------------------------------------------------
383  // Update on Jul/29/2010
384  // npp = 1.52
385  // k = 1.5
386  // x = 0.12 (see above)
387  // eff : Multiplicity dependent efficiency with d = 0.14
388  // * All above parameters were determined by using low multiplicity cut off M > 30
389  //
390  // Re-weighting correction parameters: p0 = 0.92 +/- 0.03, p1 = 0.43 +/- 0.01
391  // These parameter are ANTI-correlated
392 
393  // Error on x (energy specific ???)
394  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
395  Double_t xError = 0.0 ; // absolute error
396  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
397  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
398 
399  const Double_t npp = 1.52 ; // default npp
400  mNpp = npp + GetNppError(npp) ; // 5% error on npp
401  mK = 1.50 ;
402  mX = 0.12 + xError ;
403  mEfficiency = 0.14 ;
404  mTriggerBias = 1.00 ;
405 
406  // Parameters for re-weighting correction
407  mParReweighting[0] = 0.92 ;
408  mParReweighting[1] = 0.43 ;
409 
410  // Assign +/- 2 sigma for re-weighting correction
411  if( mType.CompareTo("lowrw", TString::kIgnoreCase) == 0 ){
412  mParReweighting[0] = 0.98 ; // + 2sigma
413  mParReweighting[1] = 0.41 ; // - 2sigma
414  }
415  else if ( mType.CompareTo("highrw", TString::kIgnoreCase) == 0 ){
416  mParReweighting[0] = 0.86 ; // - 2sigma
417  mParReweighting[1] = 0.45 ; // + 2sigma
418  }
419 
420  LOG_INFO << "StCentrality::Init_AuAu39GeV Use " << mType << " type: re-weighting correction will be "
421  << Form("1-exp(-%1.2f*refmult^{%1.2f})", mParReweighting[0], mParReweighting[1])
422  << endm;
423 
424 #if 0
425  // Define multiplicity cut from central to peripheral
426  mMultiplicityCut[0].push_back( 316 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
427  mMultiplicityCut[0].push_back( 265 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
428  mMultiplicityCut[0].push_back( 185 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
429  mMultiplicityCut[0].push_back( 125 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
430  mMultiplicityCut[0].push_back( 81 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
431  mMultiplicityCut[0].push_back( 50 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
432  mMultiplicityCut[0].push_back( 28 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
433  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
434  mMultiplicityCut[0].push_back( 7 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
435 
436  // -5% +5%
437  mMultiplicityCut[1].push_back( 319 ); mMultiplicityCut[2].push_back( 313 ); // 0-5%
438  mMultiplicityCut[1].push_back( 270 ); mMultiplicityCut[2].push_back( 260 ); // 5-10%
439  mMultiplicityCut[1].push_back( 192 ); mMultiplicityCut[2].push_back( 178 ); // 10-20%
440  mMultiplicityCut[1].push_back( 133 ); mMultiplicityCut[2].push_back( 118 ); // 20-30%
441  mMultiplicityCut[1].push_back( 89 ); mMultiplicityCut[2].push_back( 74 ); // 30-40%
442  mMultiplicityCut[1].push_back( 57 ); mMultiplicityCut[2].push_back( 44 ); // 40-50%
443  mMultiplicityCut[1].push_back( 34 ); mMultiplicityCut[2].push_back( 24 ); // 50-60%
444  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 12 ); // 60-70%
445  mMultiplicityCut[1].push_back( 10 ); mMultiplicityCut[2].push_back( 5 ); // 70-80%
446 #endif
447 
448  // Final centrality bins
449  // Define multiplicity cut from central to peripheral
450  // mMultiplicityCut[0].push_back( 316 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
451  // mMultiplicityCut[0].push_back( 265 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
452  // Temporary to include 7.5%
453  mMultiplicityCut[0].push_back( 316 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
454  mMultiplicityCut[0].push_back( 290 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 7.5 );
455  mMultiplicityCut[0].push_back( 265 ); mCentralityMin[0].push_back( 7.5 ); mCentralityMax[0].push_back( 10.0 );
456 
457  mMultiplicityCut[0].push_back( 222 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
458  mMultiplicityCut[0].push_back( 185 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
459  mMultiplicityCut[0].push_back( 153 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
460  mMultiplicityCut[0].push_back( 125 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
461  mMultiplicityCut[0].push_back( 102 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
462  mMultiplicityCut[0].push_back( 81 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
463  mMultiplicityCut[0].push_back( 64 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
464  mMultiplicityCut[0].push_back( 50 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
465  mMultiplicityCut[0].push_back( 38 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
466  mMultiplicityCut[0].push_back( 28 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
467  mMultiplicityCut[0].push_back( 21 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
468  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
469  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
470  mMultiplicityCut[0].push_back( 7 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
471 
472  // -5% +5%
473  mMultiplicityCut[1].push_back( 319 ); mMultiplicityCut[2].push_back( 313 );
474  mMultiplicityCut[1].push_back( 293 ); mMultiplicityCut[2].push_back( 286 ); // temp
475  mMultiplicityCut[1].push_back( 270 ); mMultiplicityCut[2].push_back( 260 );
476  mMultiplicityCut[1].push_back( 228 ); mMultiplicityCut[2].push_back( 216 );
477  mMultiplicityCut[1].push_back( 192 ); mMultiplicityCut[2].push_back( 178 );
478  mMultiplicityCut[1].push_back( 160 ); mMultiplicityCut[2].push_back( 145 );
479  mMultiplicityCut[1].push_back( 133 ); mMultiplicityCut[2].push_back( 118 );
480  mMultiplicityCut[1].push_back( 110 ); mMultiplicityCut[2].push_back( 94 );
481  mMultiplicityCut[1].push_back( 89 ); mMultiplicityCut[2].push_back( 74 );
482  mMultiplicityCut[1].push_back( 72 ); mMultiplicityCut[2].push_back( 57 );
483  mMultiplicityCut[1].push_back( 57 ); mMultiplicityCut[2].push_back( 44 );
484  mMultiplicityCut[1].push_back( 44 ); mMultiplicityCut[2].push_back( 33 );
485  mMultiplicityCut[1].push_back( 34 ); mMultiplicityCut[2].push_back( 24 );
486  mMultiplicityCut[1].push_back( 26 ); mMultiplicityCut[2].push_back( 17 );
487  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 12 );
488  mMultiplicityCut[1].push_back( 14 ); mMultiplicityCut[2].push_back( 8 );
489  mMultiplicityCut[1].push_back( 10 ); mMultiplicityCut[2].push_back( 5 );
490 
491  // Set same centrality bins
492  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
493  for(UInt_t im=1; im<mNMode; im++){
494  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
495  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
496  }
497  }
498 
499 }
500 
501 //____________________________________________________________________________________________________
502 void StCentrality::Init_AuAu27GeV()
503 {
504  //Initialized Au+Au collisions at 27 GeV
505  //Updated on 07/28/2019
506  // npp = 1.27 from fitting, Refmult>100
507  // k = 1.80
508  // x = 0.16
509  // eff = 0.11
510  // with d = 0.14 (factor for multiplicity dependent efficiency)
511  //----------------------------------------------------------------------------------------------------
512 
513  // Error on x (energy specific ???)
514  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
515  Double_t xError = 0.0 ; // absolute error
516  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
517  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
518 
519  const Double_t npp = 1.27 ;
520  mNpp = npp + GetNppError(npp) ;
521  mK = 1.80 ;
522  mX = 0.16 + xError ;
523  mEfficiency = 0.11 ;
524  mTriggerBias = 1.00 ;
525 
526  mMultiplicityCut[0].push_back( 295 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
527  mMultiplicityCut[0].push_back( 245 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
528  mMultiplicityCut[0].push_back( 204 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
529  mMultiplicityCut[0].push_back( 169 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
530  mMultiplicityCut[0].push_back( 138 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
531  mMultiplicityCut[0].push_back( 113 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
532  mMultiplicityCut[0].push_back( 91 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
533  mMultiplicityCut[0].push_back( 72 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
534  mMultiplicityCut[0].push_back( 57 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
535  mMultiplicityCut[0].push_back( 44 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
536  mMultiplicityCut[0].push_back( 33 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
537  mMultiplicityCut[0].push_back( 25 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
538  mMultiplicityCut[0].push_back( 18 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
539  mMultiplicityCut[0].push_back( 13 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
540  mMultiplicityCut[0].push_back( 9 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
541  mMultiplicityCut[0].push_back( 6 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
542  mMultiplicityCut[1].push_back( 298 ); mMultiplicityCut[2].push_back( 293 );
543  mMultiplicityCut[1].push_back( 250 ); mMultiplicityCut[2].push_back( 241 );
544  mMultiplicityCut[1].push_back( 209 ); mMultiplicityCut[2].push_back( 198 );
545  mMultiplicityCut[1].push_back( 175 ); mMultiplicityCut[2].push_back( 162 );
546  mMultiplicityCut[1].push_back( 146 ); mMultiplicityCut[2].push_back( 132 );
547  mMultiplicityCut[1].push_back( 120 ); mMultiplicityCut[2].push_back( 106 );
548  mMultiplicityCut[1].push_back( 98 ); mMultiplicityCut[2].push_back( 84 );
549  mMultiplicityCut[1].push_back( 79 ); mMultiplicityCut[2].push_back( 66 );
550  mMultiplicityCut[1].push_back( 64 ); mMultiplicityCut[2].push_back( 51 );
551  mMultiplicityCut[1].push_back( 50 ); mMultiplicityCut[2].push_back( 38 );
552  mMultiplicityCut[1].push_back( 39 ); mMultiplicityCut[2].push_back( 28 );
553  mMultiplicityCut[1].push_back( 30 ); mMultiplicityCut[2].push_back( 20 );
554  mMultiplicityCut[1].push_back( 22 ); mMultiplicityCut[2].push_back( 14 );
555  mMultiplicityCut[1].push_back( 16 ); mMultiplicityCut[2].push_back( 10 );
556  mMultiplicityCut[1].push_back( 12 ); mMultiplicityCut[2].push_back( 6 );
557  mMultiplicityCut[1].push_back( 8 ); mMultiplicityCut[2].push_back( 4 );
558 
559  // /// Initialize Au + Au collisiona at 27 GeV
560  // //----------------------------------------------------------------------------------------------------
561  // // Update on Dec/15/2011
562  // // npp = 1.385 from fitting, M>50
563  // // k = 1.65
564  // // x = 0.12
565  // // with d = 0.14 (factor for multiplicity dependent efficiency)
566  // //----------------------------------------------------------------------------------------------------
567 
568  // // Error on x (energy specific ???)
569  // // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
570  // Double_t xError = 0.0 ; // absolute error
571  // if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
572  // else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
573 
574  // const Double_t npp = 1.385 ; // default npp
575  // // const Double_t npp = 1.390 ; // default npp
576  // mNpp = npp + GetNppError(npp) ;
577  // mK = 1.65 ;
578  // mX = 0.12 + xError ;
579  // mEfficiency = 0.14 ;
580  // mTriggerBias = 1.00 ;
581 
582  // // Centrality bins (Final)
583  // mMultiplicityCut[0].push_back( 288 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
584  // mMultiplicityCut[0].push_back( 241 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
585  // mMultiplicityCut[0].push_back( 201 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
586  // mMultiplicityCut[0].push_back( 168 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
587  // mMultiplicityCut[0].push_back( 139 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
588  // mMultiplicityCut[0].push_back( 114 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
589  // mMultiplicityCut[0].push_back( 92 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
590  // mMultiplicityCut[0].push_back( 74 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
591  // mMultiplicityCut[0].push_back( 58 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
592  // mMultiplicityCut[0].push_back( 45 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
593  // mMultiplicityCut[0].push_back( 35 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
594  // mMultiplicityCut[0].push_back( 26 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
595  // mMultiplicityCut[0].push_back( 19 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
596  // mMultiplicityCut[0].push_back( 13 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
597  // mMultiplicityCut[0].push_back( 9 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
598  // mMultiplicityCut[0].push_back( 6 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
599  // mMultiplicityCut[1].push_back( 290 ); mMultiplicityCut[2].push_back( 285 );
600  // mMultiplicityCut[1].push_back( 245 ); mMultiplicityCut[2].push_back( 236 );
601  // mMultiplicityCut[1].push_back( 206 ); mMultiplicityCut[2].push_back( 196 );
602  // mMultiplicityCut[1].push_back( 174 ); mMultiplicityCut[2].push_back( 161 );
603  // mMultiplicityCut[1].push_back( 145 ); mMultiplicityCut[2].push_back( 132 );
604  // mMultiplicityCut[1].push_back( 121 ); mMultiplicityCut[2].push_back( 107 );
605  // mMultiplicityCut[1].push_back( 99 ); mMultiplicityCut[2].push_back( 85 );
606  // mMultiplicityCut[1].push_back( 81 ); mMultiplicityCut[2].push_back( 67 );
607  // mMultiplicityCut[1].push_back( 65 ); mMultiplicityCut[2].push_back( 52 );
608  // mMultiplicityCut[1].push_back( 51 ); mMultiplicityCut[2].push_back( 40 );
609  // mMultiplicityCut[1].push_back( 40 ); mMultiplicityCut[2].push_back( 29 );
610  // mMultiplicityCut[1].push_back( 31 ); mMultiplicityCut[2].push_back( 21 );
611  // mMultiplicityCut[1].push_back( 23 ); mMultiplicityCut[2].push_back( 15 );
612  // mMultiplicityCut[1].push_back( 17 ); mMultiplicityCut[2].push_back( 10 );
613  // mMultiplicityCut[1].push_back( 12 ); mMultiplicityCut[2].push_back( 7 );
614  // mMultiplicityCut[1].push_back( 9 ); mMultiplicityCut[2].push_back( 4 );
615 
616 
617  // Set same centrality bins
618  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++)
619  {
620  for(UInt_t im=1; im<mNMode; im++)
621  {
622  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
623  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
624  }
625  }
626 
627 }
628 
629 //____________________________________________________________________________________________________
630 void StCentrality::Init_AuAu19GeV()
631 {
633  //----------------------------------------------------------------------------------------------------
634  // Update on Jun/13/2010 (just copy from 11.5 GeV, not final)
635  // npp = 1.07 from fitting, M>30
636  // k = 2.0 (not final, but probably ok)
637  // x = 0.12 (see above)
638  // with d = 0.14 (factor for multiplicity dependent efficiency)
639  //----------------------------------------------------------------------------------------------------
640  // Update on Jul/13/2010
641  // npp = 1.29 from fitting, M>50
642  // k = 1.8 (2.0 should be fine for centrality)
643  // x = 0.12
644  // with d = 0.14 (factor for multiplicity dependent efficiency)
645  //----------------------------------------------------------------------------------------------------
646 
647  // Error on x (energy specific ???)
648  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
649  Double_t xError = 0.0 ; // absolute error
650  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
651  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
652 
653  const Double_t npp = 1.29 ; // default npp
654  mNpp = npp + GetNppError(npp) ;
655  mK = 1.80 ;
656  mX = 0.12 + xError ;
657  mEfficiency = 0.14 ;
658  mTriggerBias = 1.00 ;
659 
660  // Define multiplicity cut from central to peripheral
661  // -- Very preliminary, version 0
662  // ---> Wrong.
663  // 0.00 - 5.00 (%) : M > 268 (im=531, M=268.5, bin= 0) (sum, total, fraction>cut) = (1865909.564, 36584023.104, 0.051>0.050)
664  // 5.00 - 10.00 (%) : M > 227 (im=572, M=227.5, bin= 1) (sum, total, fraction>cut) = (3659792.503, 36584023.104, 0.100>0.100)
665  // 10.00 - 15.00 (%) : M > 191 (im=608, M=191.5, bin= 2) (sum, total, fraction>cut) = (5520660.789, 36584023.104, 0.151>0.150)
666  // 15.00 - 20.00 (%) : M > 161 (im=638, M=161.5, bin= 3) (sum, total, fraction>cut) = (7330091.938, 36584023.104, 0.200>0.200)
667  // 20.00 - 25.00 (%) : M > 134 (im=665, M=134.5, bin= 4) (sum, total, fraction>cut) = (9203867.067, 36584023.104, 0.252>0.250)
668  // 25.00 - 30.00 (%) : M > 111 (im=688, M=111.5, bin= 5) (sum, total, fraction>cut) = (11055589.347, 36584023.104, 0.302>0.300)
669  // 30.00 - 35.00 (%) : M > 92 (im=707, M=92.5, bin= 6) (sum, total, fraction>cut) = (12811790.742, 36584023.104, 0.350>0.350)
670  // 35.00 - 40.00 (%) : M > 75 (im=724, M=75.5, bin= 7) (sum, total, fraction>cut) = (14634728.713, 36584023.104, 0.400>0.400)
671  // 40.00 - 45.00 (%) : M > 60 (im=739, M=60.5, bin= 8) (sum, total, fraction>cut) = (16514693.859, 36584023.104, 0.451>0.450)
672  // 45.00 - 50.00 (%) : M > 47 (im=752, M=47.5, bin= 9) (sum, total, fraction>cut) = (18447727.788, 36584023.104, 0.504>0.500)
673  // 50.00 - 55.00 (%) : M > 37 (im=762, M=37.5, bin= 10) (sum, total, fraction>cut) = (20227672.215, 36584023.104, 0.553>0.550)
674  // 55.00 - 60.00 (%) : M > 28 (im=771, M=28.5, bin= 11) (sum, total, fraction>cut) = (22164445.031, 36584023.104, 0.606>0.600)
675  // 60.00 - 65.00 (%) : M > 21 (im=778, M=21.5, bin= 12) (sum, total, fraction>cut) = (24030566.783, 36584023.104, 0.657>0.650)
676  // 65.00 - 70.00 (%) : M > 16 (im=783, M=16.5, bin= 13) (sum, total, fraction>cut) = (25698037.289, 36584023.104, 0.702>0.700)
677  // 70.00 - 75.00 (%) : M > 11 (im=788, M=11.5, bin= 14) (sum, total, fraction>cut) = (27877720.702, 36584023.104, 0.762>0.750)
678  // 75.00 - 80.00 (%) : M > 8 (im=791, M=8.5, bin= 15) (sum, total, fraction>cut) = (29625858.979, 36584023.104, 0.810>0.800)
679  // 0.00 - 4.75 (%) : M > 271 (im=528, M=271.5, bin= 0) (sum, total, fraction>cut) = (1746865.153, 36584023.104, 0.048>0.048)
680  // 4.75 - 9.50 (%) : M > 230 (im=569, M=230.5, bin= 1) (sum, total, fraction>cut) = (3516397.766, 36584023.104, 0.096>0.095)
681  // 9.50 - 14.25 (%) : M > 196 (im=603, M=196.5, bin= 2) (sum, total, fraction>cut) = (5242402.709, 36584023.104, 0.143>0.143)
682  // 14.25 - 19.00 (%) : M > 166 (im=633, M=166.5, bin= 3) (sum, total, fraction>cut) = (7009696.381, 36584023.104, 0.192>0.190)
683  // 19.00 - 23.75 (%) : M > 141 (im=658, M=141.5, bin= 4) (sum, total, fraction>cut) = (8691141.983, 36584023.104, 0.238>0.237)
684  // 23.75 - 28.50 (%) : M > 118 (im=681, M=118.5, bin= 5) (sum, total, fraction>cut) = (10463893.991, 36584023.104, 0.286>0.285)
685  // 28.50 - 33.25 (%) : M > 98 (im=701, M=98.5, bin= 6) (sum, total, fraction>cut) = (12230763.287, 36584023.104, 0.334>0.333)
686  // 33.25 - 38.00 (%) : M > 81 (im=718, M=81.5, bin= 7) (sum, total, fraction>cut) = (13960155.911, 36584023.104, 0.382>0.380)
687  // 38.00 - 42.75 (%) : M > 66 (im=733, M=66.5, bin= 8) (sum, total, fraction>cut) = (15724764.315, 36584023.104, 0.430>0.427)
688  // 42.75 - 47.50 (%) : M > 53 (im=746, M=53.5, bin= 9) (sum, total, fraction>cut) = (17511835.309, 36584023.104, 0.479>0.475)
689  // 47.50 - 52.25 (%) : M > 43 (im=756, M=43.5, bin= 10) (sum, total, fraction>cut) = (19120910.397, 36584023.104, 0.523>0.522)
690  // 52.25 - 57.00 (%) : M > 33 (im=766, M=33.5, bin= 11) (sum, total, fraction>cut) = (21038381.483, 36584023.104, 0.575>0.570)
691  // 57.00 - 61.75 (%) : M > 26 (im=773, M=26.5, bin= 12) (sum, total, fraction>cut) = (22657326.941, 36584023.104, 0.619>0.618)
692  // 61.75 - 66.50 (%) : M > 20 (im=779, M=20.5, bin= 13) (sum, total, fraction>cut) = (24334148.323, 36584023.104, 0.665>0.665)
693  // 66.50 - 71.25 (%) : M > 15 (im=784, M=15.5, bin= 14) (sum, total, fraction>cut) = (26079513.531, 36584023.104, 0.713>0.713)
694  // 71.25 - 76.00 (%) : M > 11 (im=788, M=11.5, bin= 15) (sum, total, fraction>cut) = (27877720.702, 36584023.104, 0.762>0.760)
695  // 0.00 - 5.25 (%) : M > 266 (im=533, M=266.5, bin= 0) (sum, total, fraction>cut) = (1945845.654, 36584023.104, 0.053>0.053)
696  // 5.25 - 10.50 (%) : M > 223 (im=576, M=223.5, bin= 1) (sum, total, fraction>cut) = (3851324.498, 36584023.104, 0.105>0.105)
697  // 10.50 - 15.75 (%) : M > 186 (im=613, M=186.5, bin= 2) (sum, total, fraction>cut) = (5804143.067, 36584023.104, 0.159>0.158)
698  // 15.75 - 21.00 (%) : M > 155 (im=644, M=155.5, bin= 3) (sum, total, fraction>cut) = (7722828.743, 36584023.104, 0.211>0.210)
699  // 21.00 - 26.25 (%) : M > 128 (im=671, M=128.5, bin= 4) (sum, total, fraction>cut) = (9661467.345, 36584023.104, 0.264>0.263)
700  // 26.25 - 31.50 (%) : M > 105 (im=694, M=105.5, bin= 5) (sum, total, fraction>cut) = (11584938.211, 36584023.104, 0.317>0.315)
701  // 31.50 - 36.75 (%) : M > 85 (im=714, M=85.5, bin= 6) (sum, total, fraction>cut) = (13527498.620, 36584023.104, 0.370>0.368)
702  // 36.75 - 42.00 (%) : M > 68 (im=731, M=68.5, bin= 7) (sum, total, fraction>cut) = (15473958.886, 36584023.104, 0.423>0.420)
703  // 42.00 - 47.25 (%) : M > 54 (im=745, M=54.5, bin= 8) (sum, total, fraction>cut) = (17364335.845, 36584023.104, 0.475>0.473)
704  // 47.25 - 52.50 (%) : M > 42 (im=757, M=42.5, bin= 9) (sum, total, fraction>cut) = (19296755.163, 36584023.104, 0.527>0.525)
705  // 52.50 - 57.75 (%) : M > 32 (im=767, M=32.5, bin= 10) (sum, total, fraction>cut) = (21253100.432, 36584023.104, 0.581>0.578)
706  // 57.75 - 63.00 (%) : M > 24 (im=775, M=24.5, bin= 11) (sum, total, fraction>cut) = (23177632.234, 36584023.104, 0.634>0.630)
707  // 63.00 - 68.25 (%) : M > 18 (im=781, M=18.5, bin= 12) (sum, total, fraction>cut) = (24982936.706, 36584023.104, 0.683>0.683)
708  // 68.25 - 73.50 (%) : M > 13 (im=786, M=13.5, bin= 13) (sum, total, fraction>cut) = (26916490.129, 36584023.104, 0.736>0.735)
709  // 73.50 - 78.75 (%) : M > 9 (im=790, M=9.5, bin= 14) (sum, total, fraction>cut) = (28990174.993, 36584023.104, 0.792>0.788)
710  // 78.75 - 84.00 (%) : M > 6 (im=793, M=6.5, bin= 15) (sum, total, fraction>cut) = (31082429.908, 36584023.104, 0.850>0.840)
711  //
712 
713  // Final centrality bins
714  // 0.00 - 5.00 (%) : M > 263 (im=536, M=263.5, bin= 0) (sum, total, fraction>cut) = (1990649.322, 39152407.031, 0.051>0.050)
715  // 5.00 - 10.00 (%) : M > 220 (im=579, M=220.5, bin= 1) (sum, total, fraction>cut) = (3932718.338, 39152407.031, 0.100>0.100)
716  // 10.00 - 15.00 (%) : M > 183 (im=616, M=183.5, bin= 2) (sum, total, fraction>cut) = (5911300.888, 39152407.031, 0.151>0.150)
717  // 15.00 - 20.00 (%) : M > 152 (im=647, M=152.5, bin= 3) (sum, total, fraction>cut) = (7860151.100, 39152407.031, 0.201>0.200)
718  // 20.00 - 25.00 (%) : M > 125 (im=674, M=125.5, bin= 4) (sum, total, fraction>cut) = (9839908.223, 39152407.031, 0.251>0.250)
719  // 25.00 - 30.00 (%) : M > 102 (im=697, M=102.5, bin= 5) (sum, total, fraction>cut) = (11809650.159, 39152407.031, 0.302>0.300)
720  // 30.00 - 35.00 (%) : M > 83 (im=716, M=83.5, bin= 6) (sum, total, fraction>cut) = (13705762.079, 39152407.031, 0.350>0.350)
721  // 35.00 - 40.00 (%) : M > 66 (im=733, M=66.5, bin= 7) (sum, total, fraction>cut) = (15697507.669, 39152407.031, 0.401>0.400)
722  // 40.00 - 45.00 (%) : M > 52 (im=747, M=52.5, bin= 8) (sum, total, fraction>cut) = (17654337.142, 39152407.031, 0.451>0.450)
723  // 45.00 - 50.00 (%) : M > 40 (im=759, M=40.5, bin= 9) (sum, total, fraction>cut) = (19666308.865, 39152407.031, 0.502>0.500)
724  // 50.00 - 55.00 (%) : M > 30 (im=769, M=30.5, bin= 10) (sum, total, fraction>cut) = (21739702.884, 39152407.031, 0.555>0.550)
725  // 55.00 - 60.00 (%) : M > 23 (im=776, M=23.5, bin= 11) (sum, total, fraction>cut) = (23540510.015, 39152407.031, 0.601>0.600)
726  // 60.00 - 65.00 (%) : M > 17 (im=782, M=17.5, bin= 12) (sum, total, fraction>cut) = (25471310.968, 39152407.031, 0.651>0.650)
727  // 65.00 - 70.00 (%) : M > 12 (im=787, M=12.5, bin= 13) (sum, total, fraction>cut) = (27562143.469, 39152407.031, 0.704>0.700)
728  // 70.00 - 75.00 (%) : M > 8 (im=791, M=8.5, bin= 14) (sum, total, fraction>cut) = (29853827.818, 39152407.031, 0.763>0.750)
729  // 75.00 - 80.00 (%) : M > 6 (im=793, M=6.5, bin= 15) (sum, total, fraction>cut) = (31386989.094, 39152407.031, 0.802>0.800)
730  // 0.00 - 4.75 (%) : M > 266 (im=533, M=266.5, bin= 0) (sum, total, fraction>cut) = (1868877.506, 39152407.031, 0.048>0.048)
731  // 4.75 - 9.50 (%) : M > 224 (im=575, M=224.5, bin= 1) (sum, total, fraction>cut) = (3736885.828, 39152407.031, 0.095>0.095)
732  // 9.50 - 14.25 (%) : M > 188 (im=611, M=188.5, bin= 2) (sum, total, fraction>cut) = (5623883.068, 39152407.031, 0.144>0.143)
733  // 14.25 - 19.00 (%) : M > 158 (im=641, M=158.5, bin= 3) (sum, total, fraction>cut) = (7458337.777, 39152407.031, 0.190>0.190)
734  // 19.00 - 23.75 (%) : M > 131 (im=668, M=131.5, bin= 4) (sum, total, fraction>cut) = (9372350.178, 39152407.031, 0.239>0.237)
735  // 23.75 - 28.50 (%) : M > 109 (im=690, M=109.5, bin= 5) (sum, total, fraction>cut) = (11177088.210, 39152407.031, 0.285>0.285)
736  // 28.50 - 33.25 (%) : M > 89 (im=710, M=89.5, bin= 6) (sum, total, fraction>cut) = (13073333.249, 39152407.031, 0.334>0.333)
737  // 33.25 - 38.00 (%) : M > 72 (im=727, M=72.5, bin= 7) (sum, total, fraction>cut) = (14957151.313, 39152407.031, 0.382>0.380)
738  // 38.00 - 42.75 (%) : M > 58 (im=741, M=58.5, bin= 8) (sum, total, fraction>cut) = (16773822.999, 39152407.031, 0.428>0.427)
739  // 42.75 - 47.50 (%) : M > 46 (im=753, M=46.5, bin= 9) (sum, total, fraction>cut) = (18612835.049, 39152407.031, 0.475>0.475)
740  // 47.50 - 52.25 (%) : M > 35 (im=764, M=35.5, bin= 10) (sum, total, fraction>cut) = (20646606.832, 39152407.031, 0.527>0.522)
741  // 52.25 - 57.00 (%) : M > 27 (im=772, M=27.5, bin= 11) (sum, total, fraction>cut) = (22464915.089, 39152407.031, 0.574>0.570)
742  // 57.00 - 61.75 (%) : M > 20 (im=779, M=20.5, bin= 12) (sum, total, fraction>cut) = (24447945.353, 39152407.031, 0.624>0.617)
743  // 61.75 - 66.50 (%) : M > 15 (im=784, M=15.5, bin= 13) (sum, total, fraction>cut) = (26239770.921, 39152407.031, 0.670>0.665)
744  // 66.50 - 71.25 (%) : M > 11 (im=788, M=11.5, bin= 14) (sum, total, fraction>cut) = (28067060.740, 39152407.031, 0.717>0.712)
745  // 71.25 - 76.00 (%) : M > 8 (im=791, M=8.5, bin= 15) (sum, total, fraction>cut) = (29853827.818, 39152407.031, 0.763>0.760)
746  // 0.00 - 5.25 (%) : M > 261 (im=538, M=261.5, bin= 0) (sum, total, fraction>cut) = (2073119.952, 39152407.031, 0.053>0.053)
747  // 5.25 - 10.50 (%) : M > 216 (im=583, M=216.5, bin= 1) (sum, total, fraction>cut) = (4130946.974, 39152407.031, 0.106>0.105)
748  // 10.50 - 15.75 (%) : M > 178 (im=621, M=178.5, bin= 2) (sum, total, fraction>cut) = (6207230.441, 39152407.031, 0.159>0.158)
749  // 15.75 - 21.00 (%) : M > 146 (im=653, M=146.5, bin= 3) (sum, total, fraction>cut) = (8276842.338, 39152407.031, 0.211>0.210)
750  // 21.00 - 26.25 (%) : M > 119 (im=680, M=119.5, bin= 4) (sum, total, fraction>cut) = (10326627.455, 39152407.031, 0.264>0.263)
751  // 26.25 - 31.50 (%) : M > 96 (im=703, M=96.5, bin= 5) (sum, total, fraction>cut) = (12373773.701, 39152407.031, 0.316>0.315)
752  // 31.50 - 36.75 (%) : M > 76 (im=723, M=76.5, bin= 6) (sum, total, fraction>cut) = (14487729.614, 39152407.031, 0.370>0.368)
753  // 36.75 - 42.00 (%) : M > 60 (im=739, M=60.5, bin= 7) (sum, total, fraction>cut) = (16495966.197, 39152407.031, 0.421>0.420)
754  // 42.00 - 47.25 (%) : M > 46 (im=753, M=46.5, bin= 8) (sum, total, fraction>cut) = (18612835.049, 39152407.031, 0.475>0.473)
755  // 47.25 - 52.50 (%) : M > 35 (im=764, M=35.5, bin= 9) (sum, total, fraction>cut) = (20646606.832, 39152407.031, 0.527>0.525)
756  // 52.50 - 57.75 (%) : M > 26 (im=773, M=26.5, bin= 10) (sum, total, fraction>cut) = (22718278.145, 39152407.031, 0.580>0.578)
757  // 57.75 - 63.00 (%) : M > 19 (im=780, M=19.5, bin= 11) (sum, total, fraction>cut) = (24774922.765, 39152407.031, 0.633>0.630)
758  // 63.00 - 68.25 (%) : M > 13 (im=786, M=13.5, bin= 12) (sum, total, fraction>cut) = (27094272.205, 39152407.031, 0.692>0.683)
759  // 68.25 - 73.50 (%) : M > 9 (im=790, M=9.5, bin= 13) (sum, total, fraction>cut) = (29201368.616, 39152407.031, 0.746>0.735)
760  // 73.50 - 78.75 (%) : M > 6 (im=793, M=6.5, bin= 14) (sum, total, fraction>cut) = (31386989.094, 39152407.031, 0.802>0.788)
761  // 78.75 - 84.00 (%) : M > 4 (im=795, M=4.5, bin= 15) (sum, total, fraction>cut) = (33378906.955, 39152407.031, 0.853>0.840)
762 
763  mMultiplicityCut[0].push_back( 263 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
764  mMultiplicityCut[0].push_back( 220 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
765  mMultiplicityCut[0].push_back( 183 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
766  mMultiplicityCut[0].push_back( 152 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
767  mMultiplicityCut[0].push_back( 125 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
768  mMultiplicityCut[0].push_back( 102 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
769  mMultiplicityCut[0].push_back( 83 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
770  mMultiplicityCut[0].push_back( 66 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
771  mMultiplicityCut[0].push_back( 52 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
772  mMultiplicityCut[0].push_back( 40 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
773  mMultiplicityCut[0].push_back( 30 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
774  mMultiplicityCut[0].push_back( 23 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
775  mMultiplicityCut[0].push_back( 17 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
776  mMultiplicityCut[0].push_back( 12 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
777  mMultiplicityCut[0].push_back( 8 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
778  mMultiplicityCut[0].push_back( 6 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
779 
780  // -5% +5%
781  mMultiplicityCut[1].push_back( 266 ); mMultiplicityCut[2].push_back( 261 );
782  mMultiplicityCut[1].push_back( 224 ); mMultiplicityCut[2].push_back( 216 );
783  mMultiplicityCut[1].push_back( 188 ); mMultiplicityCut[2].push_back( 178 );
784  mMultiplicityCut[1].push_back( 158 ); mMultiplicityCut[2].push_back( 146 );
785  mMultiplicityCut[1].push_back( 131 ); mMultiplicityCut[2].push_back( 119 );
786  mMultiplicityCut[1].push_back( 109 ); mMultiplicityCut[2].push_back( 96 );
787  mMultiplicityCut[1].push_back( 89 ); mMultiplicityCut[2].push_back( 76 );
788  mMultiplicityCut[1].push_back( 72 ); mMultiplicityCut[2].push_back( 60 );
789  mMultiplicityCut[1].push_back( 58 ); mMultiplicityCut[2].push_back( 46 );
790  mMultiplicityCut[1].push_back( 46 ); mMultiplicityCut[2].push_back( 35 );
791  mMultiplicityCut[1].push_back( 35 ); mMultiplicityCut[2].push_back( 26 );
792  mMultiplicityCut[1].push_back( 27 ); mMultiplicityCut[2].push_back( 19 );
793  mMultiplicityCut[1].push_back( 20 ); mMultiplicityCut[2].push_back( 13 );
794  mMultiplicityCut[1].push_back( 15 ); mMultiplicityCut[2].push_back( 9 );
795  mMultiplicityCut[1].push_back( 11 ); mMultiplicityCut[2].push_back( 6 );
796  mMultiplicityCut[1].push_back( 8 ); mMultiplicityCut[2].push_back( 4 );
797 
798  // Set same centrality bins
799  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
800  for(UInt_t im=1; im<mNMode; im++){
801  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
802  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
803  }
804  }
805 
806 }
807 
808 //____________________________________________________________________________________________________
809 void StCentrality::Init_AuAu11GeV()
810 {
812  //----------------------------------------------------------------------------------------------------
813  // Update on Jun/13/2010
814  // npp = 1.07 from fitting, M>30
815  // k = 2.0 (not final, but probably ok)
816  // x = 0.12 (see above)
817  // with d = 0.14 (factor for multiplicity dependent efficiency)
818  //----------------------------------------------------------------------------------------------------
819  // Update on Oct/25/2010 (with full production)
820  // npp = 1.06 from fitting, M>30
821  // k = 2.0
822  // x = 0.12 (see above)
823  // with d = 0.14 (factor for multiplicity dependent efficiency)
824  //
825  // ---> Stick to the 1.07
826  //----------------------------------------------------------------------------------------------------
827 
828  // Error on x (energy specific ???)
829  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
830  Double_t xError = 0.0 ; // absolute error
831  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
832  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
833 
834  const Double_t npp = 1.07 ; // default npp
835  // const Double_t npp = 1.06 ; // default npp
836  mNpp = npp + GetNppError(npp) ;
837  mK = 2.00 ;
838  mX = 0.12 + xError ;
839  mEfficiency = 0.14 ;
840  mTriggerBias = 1.00 ;
841 
842  // Define multiplicity cut from central to peripheral
843  // For the fast offline
844  // from
845 #if 0
846  mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
847  mMultiplicityCut[0].push_back( 184 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
848  mMultiplicityCut[0].push_back( 127 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
849  mMultiplicityCut[0].push_back( 86 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
850  mMultiplicityCut[0].push_back( 56 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
851  mMultiplicityCut[0].push_back( 34 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
852  mMultiplicityCut[0].push_back( 19 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
853  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
854  mMultiplicityCut[0].push_back( 5 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
855 
856  // -5% +5%
857  mMultiplicityCut[1].push_back( 223 ); mMultiplicityCut[2].push_back( 219 ); // 0-5%
858  mMultiplicityCut[1].push_back( 188 ); mMultiplicityCut[2].push_back( 181 ); // 5-10%
859  mMultiplicityCut[1].push_back( 132 ); mMultiplicityCut[2].push_back( 123 ); // 10-20%
860  mMultiplicityCut[1].push_back( 91 ); mMultiplicityCut[2].push_back( 81 ); // 20-30%
861  mMultiplicityCut[1].push_back( 61 ); mMultiplicityCut[2].push_back( 51 ); // 30-40%
862  mMultiplicityCut[1].push_back( 39 ); mMultiplicityCut[2].push_back( 30 ); // 40-50%
863  mMultiplicityCut[1].push_back( 23 ); mMultiplicityCut[2].push_back( 16 ); // 50-60%
864  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 8 ); // 60-70%
865  mMultiplicityCut[1].push_back( 7 ); mMultiplicityCut[2].push_back( 3 ); // 70-80%
866 
867  // For the full production
868  mMultiplicityCut[0].push_back( 219 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
869  mMultiplicityCut[0].push_back( 183 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
870  mMultiplicityCut[0].push_back( 126 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
871  mMultiplicityCut[0].push_back( 85 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
872  mMultiplicityCut[0].push_back( 55 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
873  mMultiplicityCut[0].push_back( 34 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
874  mMultiplicityCut[0].push_back( 19 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
875  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
876  mMultiplicityCut[0].push_back( 5 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
877 
878  // -5% +5%
879  mMultiplicityCut[1].push_back( 221 ); mMultiplicityCut[2].push_back( 217 ); // 0-5%
880  mMultiplicityCut[1].push_back( 186 ); mMultiplicityCut[2].push_back( 179 ); // 5-10%
881  mMultiplicityCut[1].push_back( 131 ); mMultiplicityCut[2].push_back( 121 ); // 10-20%
882  mMultiplicityCut[1].push_back( 91 ); mMultiplicityCut[2].push_back( 80 ); // 20-30%
883  mMultiplicityCut[1].push_back( 60 ); mMultiplicityCut[2].push_back( 50 ); // 30-40%
884  mMultiplicityCut[1].push_back( 38 ); mMultiplicityCut[2].push_back( 30 ); // 40-50%
885  mMultiplicityCut[1].push_back( 23 ); mMultiplicityCut[2].push_back( 16 ); // 50-60%
886  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 8 ); // 60-70%
887  mMultiplicityCut[1].push_back( 6 ); mMultiplicityCut[2].push_back( 3 ); // 70-80%
888 #endif
889 
890  // Final centrality bins
891  // Define multiplicity cut from central to peripheral
892  // mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
893  // mMultiplicityCut[0].push_back( 184 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
894 
895  // Temporary to include 7.5%
896  mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
897  mMultiplicityCut[0].push_back( 202 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 7.5 );
898  mMultiplicityCut[0].push_back( 184 ); mCentralityMin[0].push_back( 7.5 ); mCentralityMax[0].push_back( 10.0 );
899 
900  mMultiplicityCut[0].push_back( 153 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
901  mMultiplicityCut[0].push_back( 127 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
902  mMultiplicityCut[0].push_back( 105 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
903  mMultiplicityCut[0].push_back( 86 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
904  mMultiplicityCut[0].push_back( 70 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
905  mMultiplicityCut[0].push_back( 56 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
906  mMultiplicityCut[0].push_back( 44 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
907  mMultiplicityCut[0].push_back( 34 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
908  mMultiplicityCut[0].push_back( 26 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
909  mMultiplicityCut[0].push_back( 19 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
910  mMultiplicityCut[0].push_back( 14 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
911  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
912  mMultiplicityCut[0].push_back( 7 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
913  mMultiplicityCut[0].push_back( 5 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
914 
915  // -5% +5%
916  mMultiplicityCut[1].push_back( 223 ); mMultiplicityCut[2].push_back( 219 );
917  mMultiplicityCut[1].push_back( 204 ); mMultiplicityCut[2].push_back( 199 ); // temp
918  mMultiplicityCut[1].push_back( 188 ); mMultiplicityCut[2].push_back( 181 );
919  mMultiplicityCut[1].push_back( 158 ); mMultiplicityCut[2].push_back( 149 );
920  mMultiplicityCut[1].push_back( 132 ); mMultiplicityCut[2].push_back( 123 );
921  mMultiplicityCut[1].push_back( 110 ); mMultiplicityCut[2].push_back( 100 );
922  mMultiplicityCut[1].push_back( 91 ); mMultiplicityCut[2].push_back( 81 );
923  mMultiplicityCut[1].push_back( 75 ); mMultiplicityCut[2].push_back( 64 );
924  mMultiplicityCut[1].push_back( 61 ); mMultiplicityCut[2].push_back( 51 );
925  mMultiplicityCut[1].push_back( 49 ); mMultiplicityCut[2].push_back( 39 );
926  mMultiplicityCut[1].push_back( 39 ); mMultiplicityCut[2].push_back( 30 );
927  mMultiplicityCut[1].push_back( 30 ); mMultiplicityCut[2].push_back( 22 );
928  mMultiplicityCut[1].push_back( 23 ); mMultiplicityCut[2].push_back( 16 );
929  mMultiplicityCut[1].push_back( 17 ); mMultiplicityCut[2].push_back( 11 );
930  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 8 );
931  mMultiplicityCut[1].push_back( 9 ); mMultiplicityCut[2].push_back( 5 );
932  mMultiplicityCut[1].push_back( 7 ); mMultiplicityCut[2].push_back( 3 );
933 
934  // Set same centrality bins
935  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
936  for(UInt_t im=1; im<mNMode; im++){
937  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
938  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
939  }
940  }
941 
942 }
943 
944 //____________________________________________________________________________________________________
945 void StCentrality::Init_AuAu7GeV()
946 {
948  //----------------------------------------------------------------------------------------------------
949  // npp = 0.71 from 0.528*log(sqrt(sNN)) - 0.3696
950  // (Paul's study in http://www.star.bnl.gov/protected/ebye/sorensen/bes/sorensen_glauber_9.2.pdf)
951  // k = 2.0 (probably k dependence is weak, need to study)
952  // x = 0.118 --> 0.12 from extrapolation between 19.6 and 200 GeV data (PHOBOS, PRC70, 021902, 2004)
953  // NOTE: parameters are not final yet (May/03/2010)
954  //----------------------------------------------------------------------------------------------------
955  // Update: May/07/2010
956  // npp = 0.86 from fitting, M>30
957  // k = 2.0 (not final, but probably ok)
958  // x = 0.12 (see above)
959  // with d = 0.14 (factor for multiplicity dependent efficiency)
960  //----------------------------------------------------------------------------------------------------
961  // Update: Sep/08/2010
962  // npp = 0.89 from fitting, M>30
963  // k = 2.0
964  // x = 0.12 (see above)
965  // with d = 0.14 (factor for multiplicity dependent efficiency)
966  //----------------------------------------------------------------------------------------------------
967 
968  // Error on x (energy specific ???)
969  // NOTE: type 'low' and 'high' are for npp, x is anti-correlated with npp
970  Double_t xError = 0.0 ; // absolute error
971  if( mType.CompareTo("low", TString::kIgnoreCase) == 0 ) xError = 0.02 ; // npp is low, x is high
972  else if( mType.CompareTo("high", TString::kIgnoreCase) == 0 ) xError = -0.02 ; // npp is high, x is low
973 
974  const Double_t npp = 0.89 ; // default npp
975  mNpp = npp + GetNppError(npp) ;
976  mK = 2.00 ;
977  mX = 0.12 + xError ;
978  mEfficiency = 0.14 ;
979  mTriggerBias = 1.00 ;
980 
981  // Fast offline (obsolete)
982  // Define multiplicity cut from central to peripheral
983  // from
984  // mMultiplicityCut[0].push_back( 179 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
985  // mMultiplicityCut[0].push_back( 149 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
986  // mMultiplicityCut[0].push_back( 103 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
987  // mMultiplicityCut[0].push_back( 69 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
988  // mMultiplicityCut[0].push_back( 45 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
989  // mMultiplicityCut[0].push_back( 27 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
990  // mMultiplicityCut[0].push_back( 16 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
991  // mMultiplicityCut[0].push_back( 8 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
992  // mMultiplicityCut[0].push_back( 4 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
993  //
994  // // -5% +5%
995  // mMultiplicityCut[1].push_back( 181 ); mMultiplicityCut[2].push_back( 177 ); // 0-5%
996  // mMultiplicityCut[1].push_back( 152 ); mMultiplicityCut[2].push_back( 146 ); // 5-10%
997  // mMultiplicityCut[1].push_back( 107 ); mMultiplicityCut[2].push_back( 99 ); // 10-20%
998  // mMultiplicityCut[1].push_back( 74 ); mMultiplicityCut[2].push_back( 65 ); // 20-30%
999  // mMultiplicityCut[1].push_back( 49 ); mMultiplicityCut[2].push_back( 41 ); // 30-40%
1000  // mMultiplicityCut[1].push_back( 31 ); mMultiplicityCut[2].push_back( 24 ); // 40-50%
1001  // mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 13 ); // 50-60%
1002  // mMultiplicityCut[1].push_back( 10 ); mMultiplicityCut[2].push_back( 6 ); // 60-70%
1003  // mMultiplicityCut[1].push_back( 5 ); mMultiplicityCut[2].push_back( 3 ); // 70-80%
1004 
1005  // Final centrality bins
1006  // Define multiplicity cut from central to peripheral
1007  // mMultiplicityCut[0].push_back( 185 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1008  // mMultiplicityCut[0].push_back( 154 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1009 
1010  // Temporary to include 7.5%
1011  mMultiplicityCut[0].push_back( 185 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1012  mMultiplicityCut[0].push_back( 169 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 7.5 );
1013  mMultiplicityCut[0].push_back( 154 ); mCentralityMin[0].push_back( 7.5 ); mCentralityMax[0].push_back( 10.0 );
1014 
1015  mMultiplicityCut[0].push_back( 128 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
1016  mMultiplicityCut[0].push_back( 106 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
1017  mMultiplicityCut[0].push_back( 87 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
1018  mMultiplicityCut[0].push_back( 72 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
1019  mMultiplicityCut[0].push_back( 58 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
1020  mMultiplicityCut[0].push_back( 46 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
1021  mMultiplicityCut[0].push_back( 37 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
1022  mMultiplicityCut[0].push_back( 28 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
1023  mMultiplicityCut[0].push_back( 22 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
1024  mMultiplicityCut[0].push_back( 16 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
1025  mMultiplicityCut[0].push_back( 12 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
1026  mMultiplicityCut[0].push_back( 8 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
1027  mMultiplicityCut[0].push_back( 6 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
1028  mMultiplicityCut[0].push_back( 4 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
1029 
1030  // -5% +5%
1031  mMultiplicityCut[1].push_back( 187 ); mMultiplicityCut[2].push_back( 183 );
1032  mMultiplicityCut[1].push_back( 171 ); mMultiplicityCut[2].push_back( 167 ); // temp
1033  mMultiplicityCut[1].push_back( 157 ); mMultiplicityCut[2].push_back( 152 );
1034  mMultiplicityCut[1].push_back( 132 ); mMultiplicityCut[2].push_back( 125 );
1035  mMultiplicityCut[1].push_back( 110 ); mMultiplicityCut[2].push_back( 102 );
1036  mMultiplicityCut[1].push_back( 92 ); mMultiplicityCut[2].push_back( 83 );
1037  mMultiplicityCut[1].push_back( 76 ); mMultiplicityCut[2].push_back( 67 );
1038  mMultiplicityCut[1].push_back( 62 ); mMultiplicityCut[2].push_back( 54 );
1039  mMultiplicityCut[1].push_back( 51 ); mMultiplicityCut[2].push_back( 42 );
1040  mMultiplicityCut[1].push_back( 41 ); mMultiplicityCut[2].push_back( 33 );
1041  mMultiplicityCut[1].push_back( 32 ); mMultiplicityCut[2].push_back( 25 );
1042  mMultiplicityCut[1].push_back( 25 ); mMultiplicityCut[2].push_back( 18 );
1043  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 13 );
1044  mMultiplicityCut[1].push_back( 15 ); mMultiplicityCut[2].push_back( 9 );
1045  mMultiplicityCut[1].push_back( 11 ); mMultiplicityCut[2].push_back( 7 );
1046  mMultiplicityCut[1].push_back( 8 ); mMultiplicityCut[2].push_back( 4 );
1047  mMultiplicityCut[1].push_back( 5 ); mMultiplicityCut[2].push_back( 3 );
1048 
1049  // Set same centrality bins
1050  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1051  for(UInt_t im=1; im<mNMode; im++){
1052  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1053  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1054  }
1055  }
1056 
1057 }
1058 
1059 #if 0
1060 //____________________________________________________________________________________________________
1061 void StCentrality::Init_SmSm200GeV()
1062 {
1064  //----------------------------------------------------------------------------------------------------
1065  // From the NBD fit, chi2/NDF ~ 1.5
1066  // npp = 2.28
1067  // k = 0.75
1068  // x = 0.14 (PHOBOS, PRC70, 021902, 2004)
1069  //----------------------------------------------------------------------------------------------------
1070  // Update: Jul/09/2010
1071  mNpp = 2.28 ;
1072  mK = 0.75 ;
1073  mX = 0.14 ;
1074  mEfficiency = 0.14 ; // Multiplicity dependent efficiency
1075  mTriggerBias = 1.00 ;
1076 
1077  // Centrality definition in 200 GeV Run4
1078  // Define multiplicity cut from central to peripheral
1079  mMultiplicityCut[0].push_back( 514 - 1 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1080  mMultiplicityCut[0].push_back( 432 - 1 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1081  mMultiplicityCut[0].push_back( 302 - 1 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
1082  mMultiplicityCut[0].push_back( 208 - 1 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
1083  mMultiplicityCut[0].push_back( 138 - 1 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
1084  mMultiplicityCut[0].push_back( 88 - 1 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
1085  mMultiplicityCut[0].push_back( 52 - 1 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
1086  mMultiplicityCut[0].push_back( 28 - 1 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
1087  mMultiplicityCut[0].push_back( 14 - 1 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
1088 
1089  // Set same centrality bins
1090  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1091  for(UInt_t im=1; im<mNMode; im++){
1092  mMultiplicityCut[im].push_back( mMultiplicityCut[0][ic] );
1093  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1094  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1095  }
1096  }
1097 }
1098 #endif
1099 
1100 
1101 //____________________________________________________________________________________________________
1102 void StCentrality::Init_dAu200GeV()
1103 {
1105  //----------------------------------------------------------------------------------------------------
1106  // From the NBD fit, chi2/NDF ~ 1.5
1107  // npp = 2.28
1108  // k = 0.75
1109  // x = 0.14 (PHOBOS, PRC70, 021902, 2004)
1110  //----------------------------------------------------------------------------------------------------
1111  // Update: Jul/09/2010
1112  mNpp = 2.28 ;
1113  mK = 0.75 ;
1114  mX = 0.14 ;
1115  mEfficiency = 0.14 ; // Multiplicity dependent efficiency
1116  mTriggerBias = 1.00 ;
1117 
1118  // Define multiplicity cut from central to peripheral (copy from 39 GeV)
1119  mMultiplicityCut[0].push_back( 291 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1120  mMultiplicityCut[0].push_back( 241 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1121  mMultiplicityCut[0].push_back( 163 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 20.0 );
1122  mMultiplicityCut[0].push_back( 109 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 30.0 );
1123  mMultiplicityCut[0].push_back( 70 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 40.0 );
1124  mMultiplicityCut[0].push_back( 43 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 50.0 );
1125  mMultiplicityCut[0].push_back( 24 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 60.0 );
1126  mMultiplicityCut[0].push_back( 13 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 70.0 );
1127  mMultiplicityCut[0].push_back( 6 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 80.0 );
1128 
1129  // Set same centrality bins
1130  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1131  for(UInt_t im=1; im<mNMode; im++){
1132  mMultiplicityCut[im].push_back( mMultiplicityCut[0][ic] );
1133  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1134  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1135  }
1136  }
1137 }
1138 
1139 //____________________________________________________________________________________________________
1140 void StCentrality::Init_CuCu200GeV()
1141 {
1143  // Copy from Au+Au 200 GeV
1144  //----------------------------------------------------------------------------------------------------
1145  mNpp = 2.43 ;
1146  mK = 2.00 ;
1147  mX = 0.13 ;
1148  mEfficiency = 0.14 ; // Multiplicity dependent efficiency
1149  mTriggerBias = 1.00 ;
1150 
1151  // Define multiplicity cut from central to peripheral
1152  mMultiplicityCut[0].push_back( 441 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1153  mMultiplicityCut[0].push_back( 375 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1154  mMultiplicityCut[0].push_back( 317 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
1155  mMultiplicityCut[0].push_back( 266 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
1156  mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
1157  mMultiplicityCut[0].push_back( 182 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
1158  mMultiplicityCut[0].push_back( 148 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
1159  mMultiplicityCut[0].push_back( 118 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
1160  mMultiplicityCut[0].push_back( 93 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
1161  mMultiplicityCut[0].push_back( 72 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
1162  mMultiplicityCut[0].push_back( 55 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
1163  mMultiplicityCut[0].push_back( 41 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
1164  mMultiplicityCut[0].push_back( 30 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
1165  mMultiplicityCut[0].push_back( 21 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
1166  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
1167  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
1168 
1169  // -5% +5%
1170  mMultiplicityCut[1].push_back( 445 ); mMultiplicityCut[2].push_back( 438 );
1171  mMultiplicityCut[1].push_back( 382 ); mMultiplicityCut[2].push_back( 369 );
1172  mMultiplicityCut[1].push_back( 325 ); mMultiplicityCut[2].push_back( 309 );
1173  mMultiplicityCut[1].push_back( 276 ); mMultiplicityCut[2].push_back( 257 );
1174  mMultiplicityCut[1].push_back( 232 ); mMultiplicityCut[2].push_back( 211 );
1175  mMultiplicityCut[1].push_back( 193 ); mMultiplicityCut[2].push_back( 171 );
1176  mMultiplicityCut[1].push_back( 159 ); mMultiplicityCut[2].push_back( 137 );
1177  mMultiplicityCut[1].push_back( 129 ); mMultiplicityCut[2].push_back( 108 );
1178  mMultiplicityCut[1].push_back( 104 ); mMultiplicityCut[2].push_back( 83 );
1179  mMultiplicityCut[1].push_back( 82 ); mMultiplicityCut[2].push_back( 63 );
1180  mMultiplicityCut[1].push_back( 64 ); mMultiplicityCut[2].push_back( 47 );
1181  mMultiplicityCut[1].push_back( 49 ); mMultiplicityCut[2].push_back( 34 );
1182  mMultiplicityCut[1].push_back( 37 ); mMultiplicityCut[2].push_back( 24 );
1183  mMultiplicityCut[1].push_back( 27 ); mMultiplicityCut[2].push_back( 16 );
1184  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 11 );
1185  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 7 );
1186 
1187  // Set same centrality bins
1188  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1189  for(UInt_t im=1; im<mNMode; im++){
1190  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1191  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1192  }
1193  }
1194 }
1195 
1196 //____________________________________________________________________________________________________
1197 void StCentrality::Init_ZrZr200GeV()
1198 {
1200  // Copy from Cu+Cu 200 GeV
1201  //----------------------------------------------------------------------------------------------------
1202  mNpp = 2.43 ;
1203  mK = 2.00 ;
1204  mX = 0.13 ;
1205  mEfficiency = 0.14 ; // Multiplicity dependent efficiency
1206  mTriggerBias = 1.00 ;
1207 
1208  // Define multiplicity cut from central to peripheral
1209  mMultiplicityCut[0].push_back( 441 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1210  mMultiplicityCut[0].push_back( 375 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1211  mMultiplicityCut[0].push_back( 317 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
1212  mMultiplicityCut[0].push_back( 266 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
1213  mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
1214  mMultiplicityCut[0].push_back( 182 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
1215  mMultiplicityCut[0].push_back( 148 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
1216  mMultiplicityCut[0].push_back( 118 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
1217  mMultiplicityCut[0].push_back( 93 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
1218  mMultiplicityCut[0].push_back( 72 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
1219  mMultiplicityCut[0].push_back( 55 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
1220  mMultiplicityCut[0].push_back( 41 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
1221  mMultiplicityCut[0].push_back( 30 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
1222  mMultiplicityCut[0].push_back( 21 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
1223  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
1224  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
1225 
1226  // -5% +5%
1227  mMultiplicityCut[1].push_back( 445 ); mMultiplicityCut[2].push_back( 438 );
1228  mMultiplicityCut[1].push_back( 382 ); mMultiplicityCut[2].push_back( 369 );
1229  mMultiplicityCut[1].push_back( 325 ); mMultiplicityCut[2].push_back( 309 );
1230  mMultiplicityCut[1].push_back( 276 ); mMultiplicityCut[2].push_back( 257 );
1231  mMultiplicityCut[1].push_back( 232 ); mMultiplicityCut[2].push_back( 211 );
1232  mMultiplicityCut[1].push_back( 193 ); mMultiplicityCut[2].push_back( 171 );
1233  mMultiplicityCut[1].push_back( 159 ); mMultiplicityCut[2].push_back( 137 );
1234  mMultiplicityCut[1].push_back( 129 ); mMultiplicityCut[2].push_back( 108 );
1235  mMultiplicityCut[1].push_back( 104 ); mMultiplicityCut[2].push_back( 83 );
1236  mMultiplicityCut[1].push_back( 82 ); mMultiplicityCut[2].push_back( 63 );
1237  mMultiplicityCut[1].push_back( 64 ); mMultiplicityCut[2].push_back( 47 );
1238  mMultiplicityCut[1].push_back( 49 ); mMultiplicityCut[2].push_back( 34 );
1239  mMultiplicityCut[1].push_back( 37 ); mMultiplicityCut[2].push_back( 24 );
1240  mMultiplicityCut[1].push_back( 27 ); mMultiplicityCut[2].push_back( 16 );
1241  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 11 );
1242  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 7 );
1243 
1244  // Set same centrality bins
1245  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1246  for(UInt_t im=1; im<mNMode; im++){
1247  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1248  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1249  }
1250  }
1251 }
1252 
1253 
1254 //____________________________________________________________________________________________________
1255 void StCentrality::Init_UU200GeV()
1256 {
1258  // Copy from Au+Au 200 GeV
1259  //----------------------------------------------------------------------------------------------------
1260  mNpp = 2.43 ;
1261  mK = 2.00 ;
1262  mX = 0.13 ;
1263  mEfficiency = 0.14 ; // Multiplicity dependent efficiency
1264  mTriggerBias = 1.00 ;
1265 
1266  // Define multiplicity cut from central to peripheral
1267  mMultiplicityCut[0].push_back( 441 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1268  mMultiplicityCut[0].push_back( 375 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1269  mMultiplicityCut[0].push_back( 317 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
1270  mMultiplicityCut[0].push_back( 266 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
1271  mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
1272  mMultiplicityCut[0].push_back( 182 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
1273  mMultiplicityCut[0].push_back( 148 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
1274  mMultiplicityCut[0].push_back( 118 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
1275  mMultiplicityCut[0].push_back( 93 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
1276  mMultiplicityCut[0].push_back( 72 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
1277  mMultiplicityCut[0].push_back( 55 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
1278  mMultiplicityCut[0].push_back( 41 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
1279  mMultiplicityCut[0].push_back( 30 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
1280  mMultiplicityCut[0].push_back( 21 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
1281  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
1282  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
1283 
1284  // -5% +5%
1285  mMultiplicityCut[1].push_back( 445 ); mMultiplicityCut[2].push_back( 438 );
1286  mMultiplicityCut[1].push_back( 382 ); mMultiplicityCut[2].push_back( 369 );
1287  mMultiplicityCut[1].push_back( 325 ); mMultiplicityCut[2].push_back( 309 );
1288  mMultiplicityCut[1].push_back( 276 ); mMultiplicityCut[2].push_back( 257 );
1289  mMultiplicityCut[1].push_back( 232 ); mMultiplicityCut[2].push_back( 211 );
1290  mMultiplicityCut[1].push_back( 193 ); mMultiplicityCut[2].push_back( 171 );
1291  mMultiplicityCut[1].push_back( 159 ); mMultiplicityCut[2].push_back( 137 );
1292  mMultiplicityCut[1].push_back( 129 ); mMultiplicityCut[2].push_back( 108 );
1293  mMultiplicityCut[1].push_back( 104 ); mMultiplicityCut[2].push_back( 83 );
1294  mMultiplicityCut[1].push_back( 82 ); mMultiplicityCut[2].push_back( 63 );
1295  mMultiplicityCut[1].push_back( 64 ); mMultiplicityCut[2].push_back( 47 );
1296  mMultiplicityCut[1].push_back( 49 ); mMultiplicityCut[2].push_back( 34 );
1297  mMultiplicityCut[1].push_back( 37 ); mMultiplicityCut[2].push_back( 24 );
1298  mMultiplicityCut[1].push_back( 27 ); mMultiplicityCut[2].push_back( 16 );
1299  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 11 );
1300  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 7 );
1301 
1302  // Set same centrality bins
1303  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1304  for(UInt_t im=1; im<mNMode; im++){
1305  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1306  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1307  }
1308  }
1309 }
1310 
1311 //____________________________________________________________________________________________________
1312 void StCentrality::Init_PbPb2760GeV()
1313 {
1315  // Copy from Au+Au 200 GeV
1316  //----------------------------------------------------------------------------------------------------
1317  mNpp = 2.43 ;
1318  mK = 2.00 ;
1319  mX = 0.13 ;
1320  mEfficiency = 0.14 ; // Multiplicity dependent efficiency
1321  mTriggerBias = 1.00 ;
1322 
1323  // Define multiplicity cut from central to peripheral
1324  mMultiplicityCut[0].push_back( 441 ); mCentralityMin[0].push_back( 0.0 ); mCentralityMax[0].push_back( 5.0 );
1325  mMultiplicityCut[0].push_back( 375 ); mCentralityMin[0].push_back( 5.0 ); mCentralityMax[0].push_back( 10.0 );
1326  mMultiplicityCut[0].push_back( 317 ); mCentralityMin[0].push_back( 10.0 ); mCentralityMax[0].push_back( 15.0 );
1327  mMultiplicityCut[0].push_back( 266 ); mCentralityMin[0].push_back( 15.0 ); mCentralityMax[0].push_back( 20.0 );
1328  mMultiplicityCut[0].push_back( 221 ); mCentralityMin[0].push_back( 20.0 ); mCentralityMax[0].push_back( 25.0 );
1329  mMultiplicityCut[0].push_back( 182 ); mCentralityMin[0].push_back( 25.0 ); mCentralityMax[0].push_back( 30.0 );
1330  mMultiplicityCut[0].push_back( 148 ); mCentralityMin[0].push_back( 30.0 ); mCentralityMax[0].push_back( 35.0 );
1331  mMultiplicityCut[0].push_back( 118 ); mCentralityMin[0].push_back( 35.0 ); mCentralityMax[0].push_back( 40.0 );
1332  mMultiplicityCut[0].push_back( 93 ); mCentralityMin[0].push_back( 40.0 ); mCentralityMax[0].push_back( 45.0 );
1333  mMultiplicityCut[0].push_back( 72 ); mCentralityMin[0].push_back( 45.0 ); mCentralityMax[0].push_back( 50.0 );
1334  mMultiplicityCut[0].push_back( 55 ); mCentralityMin[0].push_back( 50.0 ); mCentralityMax[0].push_back( 55.0 );
1335  mMultiplicityCut[0].push_back( 41 ); mCentralityMin[0].push_back( 55.0 ); mCentralityMax[0].push_back( 60.0 );
1336  mMultiplicityCut[0].push_back( 30 ); mCentralityMin[0].push_back( 60.0 ); mCentralityMax[0].push_back( 65.0 );
1337  mMultiplicityCut[0].push_back( 21 ); mCentralityMin[0].push_back( 65.0 ); mCentralityMax[0].push_back( 70.0 );
1338  mMultiplicityCut[0].push_back( 15 ); mCentralityMin[0].push_back( 70.0 ); mCentralityMax[0].push_back( 75.0 );
1339  mMultiplicityCut[0].push_back( 10 ); mCentralityMin[0].push_back( 75.0 ); mCentralityMax[0].push_back( 80.0 );
1340 
1341  // -5% +5%
1342  mMultiplicityCut[1].push_back( 445 ); mMultiplicityCut[2].push_back( 438 );
1343  mMultiplicityCut[1].push_back( 382 ); mMultiplicityCut[2].push_back( 369 );
1344  mMultiplicityCut[1].push_back( 325 ); mMultiplicityCut[2].push_back( 309 );
1345  mMultiplicityCut[1].push_back( 276 ); mMultiplicityCut[2].push_back( 257 );
1346  mMultiplicityCut[1].push_back( 232 ); mMultiplicityCut[2].push_back( 211 );
1347  mMultiplicityCut[1].push_back( 193 ); mMultiplicityCut[2].push_back( 171 );
1348  mMultiplicityCut[1].push_back( 159 ); mMultiplicityCut[2].push_back( 137 );
1349  mMultiplicityCut[1].push_back( 129 ); mMultiplicityCut[2].push_back( 108 );
1350  mMultiplicityCut[1].push_back( 104 ); mMultiplicityCut[2].push_back( 83 );
1351  mMultiplicityCut[1].push_back( 82 ); mMultiplicityCut[2].push_back( 63 );
1352  mMultiplicityCut[1].push_back( 64 ); mMultiplicityCut[2].push_back( 47 );
1353  mMultiplicityCut[1].push_back( 49 ); mMultiplicityCut[2].push_back( 34 );
1354  mMultiplicityCut[1].push_back( 37 ); mMultiplicityCut[2].push_back( 24 );
1355  mMultiplicityCut[1].push_back( 27 ); mMultiplicityCut[2].push_back( 16 );
1356  mMultiplicityCut[1].push_back( 19 ); mMultiplicityCut[2].push_back( 11 );
1357  mMultiplicityCut[1].push_back( 13 ); mMultiplicityCut[2].push_back( 7 );
1358 
1359  // Set same centrality bins
1360  for(UInt_t ic=0; ic<mCentralityMin[0].size(); ic++){
1361  for(UInt_t im=1; im<mNMode; im++){
1362  mCentralityMin[im].push_back( mCentralityMin[0][ic] );
1363  mCentralityMax[im].push_back( mCentralityMax[0][ic] );
1364  }
1365  }
1366 }
1367 
1368 //____________________________________________________________________________________________________
1369 Double_t StCentrality::GetReweighting(const UInt_t multiplicity) const
1370 {
1371  // Get re-weighting correction
1372  // parameters depend on the incident energies
1373 
1374  // Check parameters. If all parameters are 0, return 1.0
1375  if( mParReweighting[0] == 0.0 && mParReweighting[1] == 0.0 ){
1376  Warning("StCentrality::GetReweighting", "No re-weighting correction implemented. return 1");
1377  return 1.0 ;
1378  }
1379 
1380  const Double_t x[] = {multiplicity};
1381 
1382  return Reweighting(x, mParReweighting) ;
1383 }
1384 
1385 
Definition: FJcore.h:367
virtual ~StCentrality()
Default constructor.
static void help()
Default destructor.
StCentrality(const TString system="AuAu_200GeV", const TString type="default")
Double_t GetReweighting(const UInt_t multiplicity) const
Get trigger bias.
Double_t GetCentrality(const UInt_t multiplicity, const UInt_t mode=0) const
Print help messages.