1 extractFlowVZERO(Int_t icentr,Int_t spec,Int_t arm=2,Bool_t isMC=kFALSE){
2 // NUA correction currently are missing
4 sprintf(name,"outVZEROv%i.root",arm);
5 TFile *fo = new TFile(name);
6 sprintf(name,"contVZEROv%i",arm);
7 TList *cont = (TList *) fo->Get(name);
9 Float_t xMin[5] = {icentr,-1,0,-10,0};
10 Float_t xMax[5] = {icentr,1,1,10,1.5};
14 TProfile *p1 = cont->At(2);
15 TProfile *p2 = cont->At(3);
16 TProfile *p3 = cont->At(4);
18 Float_t res1=0,res2=0,res3=0;
19 Float_t eres1=0,eres2=0,eres3=0;
22 if(p1->GetBinError(i+1)){
23 eres1 += 1./p1->GetBinError(i+1)/p1->GetBinError(i+1);
24 res1 += p1->GetBinContent(i+1)/p1->GetBinError(i+1)/p1->GetBinError(i+1);
26 if(p2->GetBinError(i+1)){
27 eres2 += 1./p2->GetBinError(i+1)/p2->GetBinError(i+1);
28 res2 += p2->GetBinContent(i+1)/p2->GetBinError(i+1)/p2->GetBinError(i+1);
30 if(p3->GetBinError(i+1)){
31 eres3 += 1./p3->GetBinError(i+1)/p3->GetBinError(i+1);
32 res3 += p3->GetBinContent(i+1)/p3->GetBinError(i+1)/p3->GetBinError(i+1);
39 AliFlowVZEROResults *a = (AliFlowVZEROResults *) cont->At(0);
40 AliFlowVZEROResults *b = (AliFlowVZEROResults *) cont->At(1);
41 TProfile *pp = a->GetV2(spec,xMin,xMax);
42 TProfile *pp2 = b->GetV2(spec,xMin,xMax);
45 Float_t scaling = sqrt(res1*res3/res2);
46 pp->Scale(1./scaling);
48 printf("resolution V0A = %f\n",scaling);
49 Float_t err1_2 = eres1*eres1/res1/res1/4 +
50 eres2*eres2/res2/res2/4 +
51 eres3*eres3/res3/res3/4;
52 Float_t err2_2 = err1_2;
53 err1_2 /= scaling*scaling;
54 scaling = sqrt(res2*res3/res1);
55 err2_2 /= scaling*scaling;
56 pp2->Scale(1./scaling);
57 printf("resolution V0C =%f\n",scaling);
66 sprintf(name,"outVZEROmc.root");
68 sprintf(name,"contVZEROmc");
69 cont = (TList *) fo->Get(name);
70 AliFlowVZEROResults *c = (AliFlowVZEROResults *) cont->At(0);
71 c->GetV2(spec,xMin,xMax)->Draw("SAME");