33 if (&o ==
this)
return *
this;
49 const char* fgkPt2Name =
"v22VsPt";
50 const char* fgkPt4Name =
"v24VsPt";
51 const char* fgkPt4Alt =
"v24AltVsPt";
52 const char* fgkBName =
"v2VsB";
53 const char* fgkCName =
"v2VsC";
61 const Double_t ptX[] = {0.00, 0.25, 0.350, 0.45,
62 0.55, 0.650, 0.75, 0.85,
63 0.950, 1.10, 1.30, 1.500,
64 1.70, 1.90, 2.250, 2.75,
68 const Double_t y[] = {0.00000, 0.043400, 0.059911, 0.073516,
69 0.089756, 0.105486, 0.117391, 0.128199,
70 0.138013, 0.158271, 0.177726, 0.196383,
71 0.208277, 0.216648, 0.242954, 0.249961,
72 0.240131, 0.269006, 0.207796};
75 fV22Pt->SetName(fgkPt2Name);
76 fV22Pt->SetMarkerStyle(20);
77 fV22Pt->SetMarkerColor(kRed+1);
82 const Double_t y[] = {0.000000, 0.038646, 0.049824, 0.066662,
83 0.075856, 0.081583, 0.099778, 0.104674,
84 0.118545, 0.131874, 0.152959, 0.155348,
85 0.169751, 0.179052, 0.178532, 0.198851,
86 0.185737, 0.239901, 0.186098};
90 fV24Pt->SetName(fgkPt4Name);
91 fV24Pt->SetMarkerStyle(20);
92 fV24Pt->SetMarkerColor(kBlue+1);
97 const Double_t y[] = {0.000000, 0.037071, 0.048566, 0.061083,
98 0.070910, 0.078831, 0.091396, 0.102026,
99 0.109691, 0.124449, 0.139819, 0.155561,
100 0.165701, 0.173678, 0.191149, 0.202015,
101 0.204540, 0.212560, 0.195885};
110 const Double_t by[] = {0.017855, 0.032440, 0.055818, 0.073137,
111 0.083898, 0.086690, 0.082040, 0.077777};
114 const Double_t x[] = {1.75, 4.225, 5.965, 7.765,
115 9.215, 10.46, 11.565, 12.575};
117 fV2B->SetName(fgkBName);
118 fV2B->SetMarkerStyle(20);
119 fV2B->SetMarkerColor(kGreen+1);
124 const Double_t x[] = { 2.5, 7.5, 15, 25, 35, 45, 55, 65};
126 fV2C->SetName(fgkCName);
127 fV2C->SetMarkerStyle(20);
128 fV2C->SetMarkerColor(kGreen+1);
137 if (type == 0)
return 1;
138 return 0.1 * TMath::Gaus(eta, 0, (type == 2 ? 3. :
139 type == 3 ? 15 : 9));
145 if (type == 0)
return 1;
146 if (type == 2)
return 1.207;
147 switch (TMath::Abs(
id)) {
148 case 211:
return 1.3;
break;
149 case 2212:
return 1.0;
break;
160 case 2:
return fV22Pt->Eval(pt);
162 case 4:
return fV24Pt->Eval(pt);
171 return fV2B->Eval(b) /
fV2B->Eval(10.46);
178 return fV2C->Eval(c) /
fV2C->Eval(45);
200 w *= 20 * 2. * TMath::Cos(order * (phi - phiR));
218 if (!name || name[0] ==
'\0') {
219 Error(
"GetListObject",
"No object name");
223 Error(
"GetListObject",
"No list");
226 TObject* o = l->FindObject(name);
228 Error(
"GetListObject",
"Object %s not found in list %s",
239 TObject* pt2 = GetListObject(l, fgkPt2Name);
240 TObject* pt4 = GetListObject(l, fgkPt4Name);
241 TObject* alt = GetListObject(l, fgkPt4Alt);
242 TObject* b = GetListObject(l, fgkBName);
243 TObject*
c = GetListObject(l, fgkCName);
245 if (!pt2 || !pt4 || !alt || !b || !c) {
246 ::Error(
"FromList",
"One or more histograms not found");
259 #define PF(N,V,...) \ 260 AliForwardUtil::PrintField(N,V, ## __VA_ARGS__) 261 #define PFB(N,FLAG) \ 263 AliForwardUtil::PrintName(N); \ 264 std::cout << std::boolalpha << (FLAG) << std::noboolalpha << std::endl; \ 266 #define PFV(N,VALUE) \ 268 AliForwardUtil::PrintName(N); \ 269 std::cout << (VALUE) << std::endl; } while(false) 274 PFV(
"MC Weights",
"For flow");
275 gROOT->IncreaseDirLevel();
276 gROOT->DecreaseDirLevel();
static AliForwardFlowWeights * FromList(TList *l)
virtual void Init(TList *l)
virtual ~AliForwardFlowWeights()
Double_t CalcPtWeight(Double_t pt, Int_t type) const
Double_t CalcBWeight(Double_t b) const
Various utilities used in PWGLF/FORWARD.
Double_t CalcEtaWeight(Double_t eta, Int_t type) const
virtual void Print(Option_t *option="") const
AliForwardFlowWeights & operator=(const AliForwardFlowWeights &o)
Double_t CalcWeight(Double_t eta, Double_t pt, Double_t phi, Int_t id, Double_t phiR, Double_t bOrC, Int_t type, UShort_t order, UShort_t what) const
Double_t CalcCentWeight(Double_t c) const
Double_t CalcPidWeight(Int_t id, Int_t type) const