]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FLOW/macros/extractFlowVZERO.C
additional aliases for EMCAL - test schema
[u/mrichter/AliRoot.git] / PWGCF / FLOW / macros / extractFlowVZERO.C
CommitLineData
587d006a 1extractFlowVZERO(Int_t icentr,Int_t spec,Int_t arm=2,Bool_t isMC=kFALSE){
2 // NUA correction currently are missing
3 char name[100];
d6a1c304 4 snprintf(name,100,"outVZEROv%i.root",arm);
587d006a 5 TFile *fo = new TFile(name);
d6a1c304 6 snprintf(name,100,"contVZEROv%i",arm);
587d006a 7 TList *cont = (TList *) fo->Get(name);
afa8df58 8
587d006a 9 Float_t xMin[5] = {icentr,-1,0,-10,0};
10 Float_t xMax[5] = {icentr,1,1,10,1.5};
afa8df58 11
587d006a 12 cont->ls();
afa8df58 13
587d006a 14 TProfile *p1 = cont->At(2);
15 TProfile *p2 = cont->At(3);
16 TProfile *p3 = cont->At(4);
afa8df58 17
afa8df58 18 Float_t res1=0,res2=0,res3=0;
19 Float_t eres1=0,eres2=0,eres3=0;
20
587d006a 21 Int_t i = icentr;
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);
afa8df58 25 }
587d006a 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);
afa8df58 29 }
587d006a 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);
afa8df58 33 }
587d006a 34
35 res1 /= eres1;
36 res2 /= eres2;
37 res3 /= eres3;
38
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);
43
44
afa8df58 45 Float_t scaling = sqrt(res1*res3/res2);
46 pp->Scale(1./scaling);
587d006a 47
afa8df58 48 printf("resolution V0A = %f\n",scaling);
49 Float_t err1_2 = eres1*eres1/res1/res1/4 +
587d006a 50 eres2*eres2/res2/res2/4 +
51 eres3*eres3/res3/res3/4;
afa8df58 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);
58
587d006a 59 pp->SetName("V0A");
60 pp2->SetName("V0C");
afa8df58 61
587d006a 62 pp->Draw();
63 pp2->Draw("SAME");
afa8df58 64
587d006a 65 if(arm == 2 && isMC){
d6a1c304 66 snprintf(name,100,"outVZEROmc.root");
587d006a 67 fo = new TFile(name);
d6a1c304 68 snprintf(name,100,"contVZEROmc");
587d006a 69 cont = (TList *) fo->Get(name);
70 AliFlowVZEROResults *c = (AliFlowVZEROResults *) cont->At(0);
71 c->GetV2(spec,xMin,xMax)->Draw("SAME");
afa8df58 72 }
afa8df58 73}