#include "AliForwardFlowWeights.h"
#include <TGraph.h>
#include <TF1.h>
#include <TList.h>
#include <TMath.h>
AliForwardFlowWeights::AliForwardFlowWeights()
: fV22Pt(0),
fV24Pt(0),
fV24AltPt(0),
fV2B(0),
fV2C(0)
{}
AliForwardFlowWeights::AliForwardFlowWeights(const AliForwardFlowWeights& o)
: TObject(o),
fV22Pt(o.fV22Pt),
fV24Pt(o.fV24Pt),
fV24AltPt(o.fV24AltPt),
fV2B(o.fV2B),
fV2C(o.fV2C)
{}
AliForwardFlowWeights&
AliForwardFlowWeights::operator=(const AliForwardFlowWeights& o)
{
if (&o == this) return *this;
fV22Pt = (o.fV22Pt ? static_cast<TGraph*>(o.fV22Pt->Clone()) : 0);
fV24Pt = (o.fV24Pt ? static_cast<TGraph*>(o.fV24Pt->Clone()) : 0);
fV24AltPt = (o.fV24AltPt ? static_cast<TGraph*>(o.fV24AltPt->Clone()) : 0);
fV2B = (o.fV2B ? static_cast<TGraph*>(o.fV2B->Clone()) : 0);
fV2C = (o.fV2C ? static_cast<TGraph*>(o.fV2C->Clone()) : 0);
return *this;
}
AliForwardFlowWeights::~AliForwardFlowWeights()
{
}
namespace {
const char* fgkPt2Name = "v22VsPt";
const char* fgkPt4Name = "v24VsPt";
const char* fgkPt4Alt = "v24AltVsPt";
const char* fgkBName = "v2VsB";
const char* fgkCName = "v2VsC";
}
void
AliForwardFlowWeights::Init(TList* l)
{
Int_t ptN = 19;
const Double_t ptX[] = {0.00, 0.25, 0.350, 0.45,
0.55, 0.650, 0.75, 0.85,
0.950, 1.10, 1.30, 1.500,
1.70, 1.90, 2.250, 2.75,
3.25, 3.750, 4.50};
{
const Double_t y[] = {0.00000, 0.043400, 0.059911, 0.073516,
0.089756, 0.105486, 0.117391, 0.128199,
0.138013, 0.158271, 0.177726, 0.196383,
0.208277, 0.216648, 0.242954, 0.249961,
0.240131, 0.269006, 0.207796};
fV22Pt = new TGraph(ptN, ptX, y);
fV22Pt->SetName(fgkPt2Name);
fV22Pt->SetMarkerStyle(20);
fV22Pt->SetMarkerColor(kRed+1);
l->Add(fV22Pt);
}
{
const Double_t y[] = {0.000000, 0.038646, 0.049824, 0.066662,
0.075856, 0.081583, 0.099778, 0.104674,
0.118545, 0.131874, 0.152959, 0.155348,
0.169751, 0.179052, 0.178532, 0.198851,
0.185737, 0.239901, 0.186098};
fV24Pt = new TGraph(ptN, ptX, y);
fV24Pt->SetName(fgkPt4Name);
fV24Pt->SetMarkerStyle(20);
fV24Pt->SetMarkerColor(kBlue+1);
l->Add(fV24Pt);
}
{
const Double_t y[] = {0.000000, 0.037071, 0.048566, 0.061083,
0.070910, 0.078831, 0.091396, 0.102026,
0.109691, 0.124449, 0.139819, 0.155561,
0.165701, 0.173678, 0.191149, 0.202015,
0.204540, 0.212560, 0.195885};
fV24AltPt = new TGraph(ptN, ptX, y);
fV24AltPt->SetName(fgkPt4Alt);
fV24AltPt->SetMarkerStyle(20);
fV24AltPt->SetMarkerColor(kBlue+1);
l->Add(fV24AltPt);
}
Int_t nb = 8;
const Double_t by[] = {0.017855, 0.032440, 0.055818, 0.073137,
0.083898, 0.086690, 0.082040, 0.077777};
{
const Double_t x[] = {1.75, 4.225, 5.965, 7.765,
9.215, 10.46, 11.565, 12.575};
fV2B = new TGraph(nb, x, by);
fV2B->SetName(fgkBName);
fV2B->SetMarkerStyle(20);
fV2B->SetMarkerColor(kGreen+1);
l->Add(fV2B);
}
{
const Double_t x[] = { 2.5, 7.5, 15, 25, 35, 45, 55, 65};
fV2C = new TGraph(nb, x, by);
fV2C->SetName(fgkCName);
fV2C->SetMarkerStyle(20);
fV2C->SetMarkerColor(kGreen+1);
l->Add(fV2C);
}
}
Double_t
AliForwardFlowWeights::CalcEtaWeight(Double_t eta, Int_t type) const
{
if (type == 0) return 1;
return 0.1 * TMath::Gaus(eta, 0, (type == 2 ? 3. :
type == 3 ? 15 : 9));
}
Double_t
AliForwardFlowWeights::CalcPidWeight(Int_t id, Int_t type) const
{
if (type == 0) return 1;
if (type == 2) return 1.207;
switch (TMath::Abs(id)) {
case 211: return 1.3; break;
case 2212: return 1.0; break;
default: return 0.7; break;
}
return 1;
}
Double_t
AliForwardFlowWeights::CalcPtWeight(Double_t pt, Int_t type) const
{
switch (type) {
case 0: return 1;
case 2: return fV22Pt->Eval(pt);
case 3: return fV24AltPt->Eval(pt);
case 4: return fV24Pt->Eval(pt);
}
return 0.5 * (fV22Pt->Eval(pt) + fV24Pt->Eval(pt));
}
Double_t
AliForwardFlowWeights::CalcBWeight(Double_t b) const
{
return fV2B->Eval(b) / fV2B->Eval(10.46);
}
Double_t
AliForwardFlowWeights::CalcCentWeight(Double_t c) const
{
return fV2C->Eval(c) / fV2C->Eval(45);
}
Double_t
AliForwardFlowWeights::CalcWeight(Double_t eta,
Double_t pt,
Double_t phi,
Int_t id,
Double_t phiR,
Double_t cOrB,
Int_t type,
UShort_t order,
UShort_t what) const
{
Double_t w = 1;
if (what & kEta) w *= CalcEtaWeight(eta, type);
if (what & kPt) w *= CalcPtWeight(pt, type);
if (what & kPID) w *= CalcPidWeight(id, type);
if (what & kCent) w *= CalcCentWeight(cOrB);
else if (what & kB) w *= CalcBWeight(cOrB);
w *= 20 * 2. * TMath::Cos(order * (phi - phiR));
return w;
}
Double_t
AliForwardFlowWeights::CalcWeight(Double_t eta, Double_t pt,
Double_t phi, Int_t id,
Double_t phiR, Double_t b) const
{
return CalcWeight(eta, pt, phi, id, phiR, b, 1, 2, kEta|kPt|kPID|kB);
}
namespace {
TObject* GetListObject(TList* l, const char* name)
{
if (!name || name[0] == '\0') {
Error("GetListObject", "No object name");
return 0;
}
if (!l) {
Error("GetListObject", "No list");
return 0;
}
TObject* o = l->FindObject(name);
if (!o) {
Error("GetListObject", "Object %s not found in list %s",
name, l->GetName());
return 0;
}
return o;
}
}
AliForwardFlowWeights*
AliForwardFlowWeights::FromList(TList* l)
{
TObject* pt2 = GetListObject(l, fgkPt2Name);
TObject* pt4 = GetListObject(l, fgkPt4Name);
TObject* alt = GetListObject(l, fgkPt4Alt);
TObject* b = GetListObject(l, fgkBName);
TObject* c = GetListObject(l, fgkCName);
if (!pt2 || !pt4 || !alt || !b || !c) {
::Error("FromList", "One or more histograms not found");
return 0;
}
AliForwardFlowWeights* ret = new AliForwardFlowWeights;
ret->fV22Pt = static_cast<TGraph*>(pt2);
ret->fV24Pt = static_cast<TGraph*>(pt4);
ret->fV24AltPt = static_cast<TGraph*>(alt);
ret->fV2B = static_cast<TGraph*>(b);
ret->fV2C = static_cast<TGraph*>(c);
return ret;
}
AliForwardFlowWeights.cxx:1 AliForwardFlowWeights.cxx:2 AliForwardFlowWeights.cxx:3 AliForwardFlowWeights.cxx:4 AliForwardFlowWeights.cxx:5 AliForwardFlowWeights.cxx:6 AliForwardFlowWeights.cxx:7 AliForwardFlowWeights.cxx:8 AliForwardFlowWeights.cxx:9 AliForwardFlowWeights.cxx:10 AliForwardFlowWeights.cxx:11 AliForwardFlowWeights.cxx:12 AliForwardFlowWeights.cxx:13 AliForwardFlowWeights.cxx:14 AliForwardFlowWeights.cxx:15 AliForwardFlowWeights.cxx:16 AliForwardFlowWeights.cxx:17 AliForwardFlowWeights.cxx:18 AliForwardFlowWeights.cxx:19 AliForwardFlowWeights.cxx:20 AliForwardFlowWeights.cxx:21 AliForwardFlowWeights.cxx:22 AliForwardFlowWeights.cxx:23 AliForwardFlowWeights.cxx:24 AliForwardFlowWeights.cxx:25 AliForwardFlowWeights.cxx:26 AliForwardFlowWeights.cxx:27 AliForwardFlowWeights.cxx:28 AliForwardFlowWeights.cxx:29 AliForwardFlowWeights.cxx:30 AliForwardFlowWeights.cxx:31 AliForwardFlowWeights.cxx:32 AliForwardFlowWeights.cxx:33 AliForwardFlowWeights.cxx:34 AliForwardFlowWeights.cxx:35 AliForwardFlowWeights.cxx:36 AliForwardFlowWeights.cxx:37 AliForwardFlowWeights.cxx:38 AliForwardFlowWeights.cxx:39 AliForwardFlowWeights.cxx:40 AliForwardFlowWeights.cxx:41 AliForwardFlowWeights.cxx:42 AliForwardFlowWeights.cxx:43 AliForwardFlowWeights.cxx:44 AliForwardFlowWeights.cxx:45 AliForwardFlowWeights.cxx:46 AliForwardFlowWeights.cxx:47 AliForwardFlowWeights.cxx:48 AliForwardFlowWeights.cxx:49 AliForwardFlowWeights.cxx:50 AliForwardFlowWeights.cxx:51 AliForwardFlowWeights.cxx:52 AliForwardFlowWeights.cxx:53 AliForwardFlowWeights.cxx:54 AliForwardFlowWeights.cxx:55 AliForwardFlowWeights.cxx:56 AliForwardFlowWeights.cxx:57 AliForwardFlowWeights.cxx:58 AliForwardFlowWeights.cxx:59 AliForwardFlowWeights.cxx:60 AliForwardFlowWeights.cxx:61 AliForwardFlowWeights.cxx:62 AliForwardFlowWeights.cxx:63 AliForwardFlowWeights.cxx:64 AliForwardFlowWeights.cxx:65 AliForwardFlowWeights.cxx:66 AliForwardFlowWeights.cxx:67 AliForwardFlowWeights.cxx:68 AliForwardFlowWeights.cxx:69 AliForwardFlowWeights.cxx:70 AliForwardFlowWeights.cxx:71 AliForwardFlowWeights.cxx:72 AliForwardFlowWeights.cxx:73 AliForwardFlowWeights.cxx:74 AliForwardFlowWeights.cxx:75 AliForwardFlowWeights.cxx:76 AliForwardFlowWeights.cxx:77 AliForwardFlowWeights.cxx:78 AliForwardFlowWeights.cxx:79 AliForwardFlowWeights.cxx:80 AliForwardFlowWeights.cxx:81 AliForwardFlowWeights.cxx:82 AliForwardFlowWeights.cxx:83 AliForwardFlowWeights.cxx:84 AliForwardFlowWeights.cxx:85 AliForwardFlowWeights.cxx:86 AliForwardFlowWeights.cxx:87 AliForwardFlowWeights.cxx:88 AliForwardFlowWeights.cxx:89 AliForwardFlowWeights.cxx:90 AliForwardFlowWeights.cxx:91 AliForwardFlowWeights.cxx:92 AliForwardFlowWeights.cxx:93 AliForwardFlowWeights.cxx:94 AliForwardFlowWeights.cxx:95 AliForwardFlowWeights.cxx:96 AliForwardFlowWeights.cxx:97 AliForwardFlowWeights.cxx:98 AliForwardFlowWeights.cxx:99 AliForwardFlowWeights.cxx:100 AliForwardFlowWeights.cxx:101 AliForwardFlowWeights.cxx:102 AliForwardFlowWeights.cxx:103 AliForwardFlowWeights.cxx:104 AliForwardFlowWeights.cxx:105 AliForwardFlowWeights.cxx:106 AliForwardFlowWeights.cxx:107 AliForwardFlowWeights.cxx:108 AliForwardFlowWeights.cxx:109 AliForwardFlowWeights.cxx:110 AliForwardFlowWeights.cxx:111 AliForwardFlowWeights.cxx:112 AliForwardFlowWeights.cxx:113 AliForwardFlowWeights.cxx:114 AliForwardFlowWeights.cxx:115 AliForwardFlowWeights.cxx:116 AliForwardFlowWeights.cxx:117 AliForwardFlowWeights.cxx:118 AliForwardFlowWeights.cxx:119 AliForwardFlowWeights.cxx:120 AliForwardFlowWeights.cxx:121 AliForwardFlowWeights.cxx:122 AliForwardFlowWeights.cxx:123 AliForwardFlowWeights.cxx:124 AliForwardFlowWeights.cxx:125 AliForwardFlowWeights.cxx:126 AliForwardFlowWeights.cxx:127 AliForwardFlowWeights.cxx:128 AliForwardFlowWeights.cxx:129 AliForwardFlowWeights.cxx:130 AliForwardFlowWeights.cxx:131 AliForwardFlowWeights.cxx:132 AliForwardFlowWeights.cxx:133 AliForwardFlowWeights.cxx:134 AliForwardFlowWeights.cxx:135 AliForwardFlowWeights.cxx:136 AliForwardFlowWeights.cxx:137 AliForwardFlowWeights.cxx:138 AliForwardFlowWeights.cxx:139 AliForwardFlowWeights.cxx:140 AliForwardFlowWeights.cxx:141 AliForwardFlowWeights.cxx:142 AliForwardFlowWeights.cxx:143 AliForwardFlowWeights.cxx:144 AliForwardFlowWeights.cxx:145 AliForwardFlowWeights.cxx:146 AliForwardFlowWeights.cxx:147 AliForwardFlowWeights.cxx:148 AliForwardFlowWeights.cxx:149 AliForwardFlowWeights.cxx:150 AliForwardFlowWeights.cxx:151 AliForwardFlowWeights.cxx:152 AliForwardFlowWeights.cxx:153 AliForwardFlowWeights.cxx:154 AliForwardFlowWeights.cxx:155 AliForwardFlowWeights.cxx:156 AliForwardFlowWeights.cxx:157 AliForwardFlowWeights.cxx:158 AliForwardFlowWeights.cxx:159 AliForwardFlowWeights.cxx:160 AliForwardFlowWeights.cxx:161 AliForwardFlowWeights.cxx:162 AliForwardFlowWeights.cxx:163 AliForwardFlowWeights.cxx:164 AliForwardFlowWeights.cxx:165 AliForwardFlowWeights.cxx:166 AliForwardFlowWeights.cxx:167 AliForwardFlowWeights.cxx:168 AliForwardFlowWeights.cxx:169 AliForwardFlowWeights.cxx:170 AliForwardFlowWeights.cxx:171 AliForwardFlowWeights.cxx:172 AliForwardFlowWeights.cxx:173 AliForwardFlowWeights.cxx:174 AliForwardFlowWeights.cxx:175 AliForwardFlowWeights.cxx:176 AliForwardFlowWeights.cxx:177 AliForwardFlowWeights.cxx:178 AliForwardFlowWeights.cxx:179 AliForwardFlowWeights.cxx:180 AliForwardFlowWeights.cxx:181 AliForwardFlowWeights.cxx:182 AliForwardFlowWeights.cxx:183 AliForwardFlowWeights.cxx:184 AliForwardFlowWeights.cxx:185 AliForwardFlowWeights.cxx:186 AliForwardFlowWeights.cxx:187 AliForwardFlowWeights.cxx:188 AliForwardFlowWeights.cxx:189 AliForwardFlowWeights.cxx:190 AliForwardFlowWeights.cxx:191 AliForwardFlowWeights.cxx:192 AliForwardFlowWeights.cxx:193 AliForwardFlowWeights.cxx:194 AliForwardFlowWeights.cxx:195 AliForwardFlowWeights.cxx:196 AliForwardFlowWeights.cxx:197 AliForwardFlowWeights.cxx:198 AliForwardFlowWeights.cxx:199 AliForwardFlowWeights.cxx:200 AliForwardFlowWeights.cxx:201 AliForwardFlowWeights.cxx:202 AliForwardFlowWeights.cxx:203 AliForwardFlowWeights.cxx:204 AliForwardFlowWeights.cxx:205 AliForwardFlowWeights.cxx:206 AliForwardFlowWeights.cxx:207 AliForwardFlowWeights.cxx:208 AliForwardFlowWeights.cxx:209 AliForwardFlowWeights.cxx:210 AliForwardFlowWeights.cxx:211 AliForwardFlowWeights.cxx:212 AliForwardFlowWeights.cxx:213 AliForwardFlowWeights.cxx:214 AliForwardFlowWeights.cxx:215 AliForwardFlowWeights.cxx:216 AliForwardFlowWeights.cxx:217 AliForwardFlowWeights.cxx:218 AliForwardFlowWeights.cxx:219 AliForwardFlowWeights.cxx:220 AliForwardFlowWeights.cxx:221 AliForwardFlowWeights.cxx:222 AliForwardFlowWeights.cxx:223 AliForwardFlowWeights.cxx:224 AliForwardFlowWeights.cxx:225 AliForwardFlowWeights.cxx:226 AliForwardFlowWeights.cxx:227 AliForwardFlowWeights.cxx:228 AliForwardFlowWeights.cxx:229 AliForwardFlowWeights.cxx:230 AliForwardFlowWeights.cxx:231 AliForwardFlowWeights.cxx:232 AliForwardFlowWeights.cxx:233 AliForwardFlowWeights.cxx:234 AliForwardFlowWeights.cxx:235 AliForwardFlowWeights.cxx:236 AliForwardFlowWeights.cxx:237 AliForwardFlowWeights.cxx:238 AliForwardFlowWeights.cxx:239 AliForwardFlowWeights.cxx:240 AliForwardFlowWeights.cxx:241 AliForwardFlowWeights.cxx:242 AliForwardFlowWeights.cxx:243 AliForwardFlowWeights.cxx:244 AliForwardFlowWeights.cxx:245 AliForwardFlowWeights.cxx:246 AliForwardFlowWeights.cxx:247 AliForwardFlowWeights.cxx:248 AliForwardFlowWeights.cxx:249 AliForwardFlowWeights.cxx:250 AliForwardFlowWeights.cxx:251 AliForwardFlowWeights.cxx:252 AliForwardFlowWeights.cxx:253 AliForwardFlowWeights.cxx:254 AliForwardFlowWeights.cxx:255 AliForwardFlowWeights.cxx:256 AliForwardFlowWeights.cxx:257 AliForwardFlowWeights.cxx:258 AliForwardFlowWeights.cxx:259