ROOT logo
/* 
char *storage = "local://OCDBres"
  Int_t RunNumber=0;
  AliCDBManager::Instance()->SetDefaultStorage(storage);
  AliCDBManager::Instance()->SetRun(RunNumber) 
  AliTPCExBFirst * exb = AliTPCcalibDB::Instance()->GetExB();
  //
  // See example macro $ALICE_ROOT/TPC/macros/AliTPCExBdraw.C 
  //
  .L $ALICE_ROOT/TPC/macros/AliTPCExBdraw.C 
  DrawPrim(0)
  DrawLaser(0)
*/


void DrawPrim(Double_t theta,Float_t magf=5){
  //
  // Draw  "primary track distortion"
  //
  //Double_t theta=0.5;

  TF1 *fdrfi_rpi0=new TF1("fdrfi_rpi0",Form("AliTPCExB::GetDrphi(x,0*pi/2,%f*x)",theta),20,250);
  TF1 *fdrfi_rpi1=new TF1("fdrfi_rpi1",Form("AliTPCExB::GetDrphi(x,1*pi/2,%f*x)",theta),20,250);
  TF1 *fdrfi_rpi2=new TF1("fdrfi_rpi2",Form("AliTPCExB::GetDrphi(x,2*pi/2,%f*x)",theta),20,250);
  TF1 *fdrfi_rpi3=new TF1("fdrfi_rpi3",Form("AliTPCExB::GetDrphi(x,3*pi/2,%f*x)",theta),20,250);

  fdrfi_rpi0->GetXaxis()->SetTitle("r (cm)");
  fdrfi_rpi0->GetYaxis()->SetTitle("drd#phi (cm)");
  
  fdrfi_rpi0->SetLineColor(2);
  fdrfi_rpi1->SetLineColor(3);
  fdrfi_rpi2->SetLineColor(4);
  fdrfi_rpi3->SetLineColor(5);
  char leg0[1000];
  char leg1[1000];
  char leg2[1000];
  char leg3[1000];
  Float_t conv= 1/(magf*0.299792458e-3);
  fdrfi_rpi0->GetHistogram()->Fit("pol2","same","",90,250);
  sprintf(leg0,"#phi=0*#pi/2      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*pol2->GetParameter(0),1000*pol2->GetParameter(1), conv*pol2->GetParameter(2));
  fdrfi_rpi1->GetHistogram()->Fit("pol2","same","",90,250);
  sprintf(leg1,"#phi=1*#pi/2      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*pol2->GetParameter(0),1000*pol2->GetParameter(1),conv*pol2->GetParameter(2));
  fdrfi_rpi2->GetHistogram()->Fit("pol2","same","",90,250);
  sprintf(leg2,"#phi=2*#pi/2      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*pol2->GetParameter(0),1000*pol2->GetParameter(1),conv*pol2->GetParameter(2));
  fdrfi_rpi3->GetHistogram()->Fit("pol2","same","",90,250);
  sprintf(leg3,"#phi=3*#pi/2      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*pol2->GetParameter(0),1000*pol2->GetParameter(1),conv*pol2->GetParameter(2));
  fdrfi_rpi0->SetMaximum(fdrfi_rpi0->GetMaximum()*2.0);
  fdrfi_rpi0->Draw();
  fdrfi_rpi1->Draw("same");
  fdrfi_rpi2->Draw("same");
  fdrfi_rpi3->Draw("same");

  TLegend *legend = new TLegend(0.10,0.50,0.8,0.90, Form("ExB distortion along track (tan(#theta)=%f)",theta));
  legend->AddEntry(fdrfi_rpi0, leg0, "l");
  legend->AddEntry(fdrfi_rpi1, leg1, "l");
  legend->AddEntry(fdrfi_rpi2, leg2, "l");
  legend->AddEntry(fdrfi_rpi3, leg3, "l");
  legend->Draw();
}



void DrawLaser(Double_t fipi2,Float_t magf=5){
  //
  // Draw  "primary track distortion"
  //
  //Double_t fipi2=0.5;

  TF2 *fdistout = new TF1("fdistout","[0]+[1]*(x-250)+[2]*(x-250)*(x-250)",90,250);

  TF1 *fdrfi_rpi0=new TF1("fdrfi_rpi0",Form("AliTPCExB::GetDrphi(x,%f*pi/2,250-20)",fipi2),20,250);
  TF1 *fdrfi_rpi1=new TF1("fdrfi_rpi1",Form("AliTPCExB::GetDrphi(x,%f*pi/2,250-90)",fipi2),20,250);
  TF1 *fdrfi_rpi2=new TF1("fdrfi_rpi2",Form("AliTPCExB::GetDrphi(x,%f*pi/2,250-160)",fipi2),20,250);
  TF1 *fdrfi_rpi3=new TF1("fdrfi_rpi3",Form("AliTPCExB::GetDrphi(x,%f*pi/2,250-230)",fipi2),20,250);

  fdrfi_rpi0->GetXaxis()->SetTitle("r (cm)");
  fdrfi_rpi0->GetYaxis()->SetTitle("drd#phi (cm)");
  
  fdrfi_rpi0->SetLineColor(2);
  fdrfi_rpi1->SetLineColor(3);
  fdrfi_rpi2->SetLineColor(4);
  fdrfi_rpi3->SetLineColor(5);
  char leg0[1000];
  char leg1[1000];
  char leg2[1000];
  char leg3[1000];
  Float_t conv= 1/(magf*0.299792458e-3);
  fdrfi_rpi0->GetHistogram()->Fit("fdistout","same","",90,250);
  sprintf(leg0,"laser 0      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*fdistout->GetParameter(0),1000*fdistout->GetParameter(1), conv*fdistout->GetParameter(2));
  fdrfi_rpi1->GetHistogram()->Fit("fdistout","same","",90,250);
  sprintf(leg1,"laser 1      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*fdistout->GetParameter(0),1000*fdistout->GetParameter(1),conv*fdistout->GetParameter(2));
  fdrfi_rpi2->GetHistogram()->Fit("fdistout","same","",90,250);
  sprintf(leg2,"laser 2      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*fdistout->GetParameter(0),1000*fdistout->GetParameter(1),conv*fdistout->GetParameter(2));
  fdrfi_rpi3->GetHistogram()->Fit("fdistout","same","",90,250);
  sprintf(leg3,"laser 3      Track res: dy=%.2f mm d#phi=%.2f mrad dC = %.6f 1/GeV",
	  10*fdistout->GetParameter(0),1000*fdistout->GetParameter(1),conv*fdistout->GetParameter(2));
  fdrfi_rpi0->SetMaximum(fdrfi_rpi3->GetMaximum()*2.0);
  fdrfi_rpi0->Draw();
  fdrfi_rpi1->Draw("same");
  fdrfi_rpi2->Draw("same");
  fdrfi_rpi3->Draw("same");

  TLegend *legend = new TLegend(0.10,0.50,0.8,0.90, Form("ExB distortion along track (fi=%f*#pi/2))",fipi2));
  legend->AddEntry(fdrfi_rpi0, leg0, "l");
  legend->AddEntry(fdrfi_rpi1, leg1, "l");
  legend->AddEntry(fdrfi_rpi2, leg2, "l");
  legend->AddEntry(fdrfi_rpi3, leg3, "l");
  legend->Draw();
}



void DrawDpt(Float_t d1pt, Float_t ptmin, Float_t ptmax){
  //
  //
  //
  
}
 AliTPCExBdraw.C:1
 AliTPCExBdraw.C:2
 AliTPCExBdraw.C:3
 AliTPCExBdraw.C:4
 AliTPCExBdraw.C:5
 AliTPCExBdraw.C:6
 AliTPCExBdraw.C:7
 AliTPCExBdraw.C:8
 AliTPCExBdraw.C:9
 AliTPCExBdraw.C:10
 AliTPCExBdraw.C:11
 AliTPCExBdraw.C:12
 AliTPCExBdraw.C:13
 AliTPCExBdraw.C:14
 AliTPCExBdraw.C:15
 AliTPCExBdraw.C:16
 AliTPCExBdraw.C:17
 AliTPCExBdraw.C:18
 AliTPCExBdraw.C:19
 AliTPCExBdraw.C:20
 AliTPCExBdraw.C:21
 AliTPCExBdraw.C:22
 AliTPCExBdraw.C:23
 AliTPCExBdraw.C:24
 AliTPCExBdraw.C:25
 AliTPCExBdraw.C:26
 AliTPCExBdraw.C:27
 AliTPCExBdraw.C:28
 AliTPCExBdraw.C:29
 AliTPCExBdraw.C:30
 AliTPCExBdraw.C:31
 AliTPCExBdraw.C:32
 AliTPCExBdraw.C:33
 AliTPCExBdraw.C:34
 AliTPCExBdraw.C:35
 AliTPCExBdraw.C:36
 AliTPCExBdraw.C:37
 AliTPCExBdraw.C:38
 AliTPCExBdraw.C:39
 AliTPCExBdraw.C:40
 AliTPCExBdraw.C:41
 AliTPCExBdraw.C:42
 AliTPCExBdraw.C:43
 AliTPCExBdraw.C:44
 AliTPCExBdraw.C:45
 AliTPCExBdraw.C:46
 AliTPCExBdraw.C:47
 AliTPCExBdraw.C:48
 AliTPCExBdraw.C:49
 AliTPCExBdraw.C:50
 AliTPCExBdraw.C:51
 AliTPCExBdraw.C:52
 AliTPCExBdraw.C:53
 AliTPCExBdraw.C:54
 AliTPCExBdraw.C:55
 AliTPCExBdraw.C:56
 AliTPCExBdraw.C:57
 AliTPCExBdraw.C:58
 AliTPCExBdraw.C:59
 AliTPCExBdraw.C:60
 AliTPCExBdraw.C:61
 AliTPCExBdraw.C:62
 AliTPCExBdraw.C:63
 AliTPCExBdraw.C:64
 AliTPCExBdraw.C:65
 AliTPCExBdraw.C:66
 AliTPCExBdraw.C:67
 AliTPCExBdraw.C:68
 AliTPCExBdraw.C:69
 AliTPCExBdraw.C:70
 AliTPCExBdraw.C:71
 AliTPCExBdraw.C:72
 AliTPCExBdraw.C:73
 AliTPCExBdraw.C:74
 AliTPCExBdraw.C:75
 AliTPCExBdraw.C:76
 AliTPCExBdraw.C:77
 AliTPCExBdraw.C:78
 AliTPCExBdraw.C:79
 AliTPCExBdraw.C:80
 AliTPCExBdraw.C:81
 AliTPCExBdraw.C:82
 AliTPCExBdraw.C:83
 AliTPCExBdraw.C:84
 AliTPCExBdraw.C:85
 AliTPCExBdraw.C:86
 AliTPCExBdraw.C:87
 AliTPCExBdraw.C:88
 AliTPCExBdraw.C:89
 AliTPCExBdraw.C:90
 AliTPCExBdraw.C:91
 AliTPCExBdraw.C:92
 AliTPCExBdraw.C:93
 AliTPCExBdraw.C:94
 AliTPCExBdraw.C:95
 AliTPCExBdraw.C:96
 AliTPCExBdraw.C:97
 AliTPCExBdraw.C:98
 AliTPCExBdraw.C:99
 AliTPCExBdraw.C:100
 AliTPCExBdraw.C:101
 AliTPCExBdraw.C:102
 AliTPCExBdraw.C:103
 AliTPCExBdraw.C:104
 AliTPCExBdraw.C:105
 AliTPCExBdraw.C:106
 AliTPCExBdraw.C:107
 AliTPCExBdraw.C:108
 AliTPCExBdraw.C:109
 AliTPCExBdraw.C:110
 AliTPCExBdraw.C:111
 AliTPCExBdraw.C:112
 AliTPCExBdraw.C:113
 AliTPCExBdraw.C:114
 AliTPCExBdraw.C:115
 AliTPCExBdraw.C:116
 AliTPCExBdraw.C:117
 AliTPCExBdraw.C:118
 AliTPCExBdraw.C:119
 AliTPCExBdraw.C:120
 AliTPCExBdraw.C:121
 AliTPCExBdraw.C:122
 AliTPCExBdraw.C:123
 AliTPCExBdraw.C:124
 AliTPCExBdraw.C:125
 AliTPCExBdraw.C:126