ROOT logo
/*
 gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/ -I$ALICE_ROOT/include -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TPC -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD -I$ALICE_ROOT/TOF -I$ALICE_ROOT/RAW -I$ALICE_ROOT/STAT");

 */
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "THnSparse.h"
#include "TLatex.h"
#include "TCanvas.h"
#include "TLegend.h"
#include "TSystem.h"
#include "TFile.h"
#include "TChain.h"
#include "TCut.h"
#include "TH3.h"
#include "TH2F.h"
#include "TProfile3D.h"
#include "TMath.h" 
#include "TVectorD.h"
#include "TMatrixD.h"
#include "TStatToolkit.h"
#include "TTreeStream.h"
#include "AliExternalTrackParam.h"
#include "AliESDfriend.h"
#include "AliTPCcalibTime.h"
#include "TROOT.h"
#include "AliXRDPROOFtoolkit.h"
#include "AliTPCCorrection.h"
#include "AliTPCExBTwist.h"
#include "AliTPCGGVoltError.h"
#include "AliTPCComposedCorrection.h"
#include "AliTPCExBConical.h"
#include "TPostScript.h"
#include "TStyle.h"
#include "AliTrackerBase.h"
#include "TGraph.h"
#include "AliCDBManager.h"
#include "AliTPCExBBShape.h"
#include "TRandom.h"
#include "AliGeomManager.h"
#include "AliESDVertex.h"
#include "AliTPCcalibDB.h"
#endif


void AliTPCCorrectionDemo() {

  //
  // This is a Demo function of the general class AliTPCCorrection, which is used for 
  // general space point correction due to different effects.
  // The effects used in this Demo are:
  //   1. ExB twist - general offset of the TPC axis in comparison to the B field axis
  //   2. GG error (Gating Grid volt. error) - not perfectly aligned GG voltage (in terms of voltage)
  //   3. ExBBShape - B field shape correction of the secound order
  //
  // See class descriptions for further details 
  //
  // Authors: Magnus Mager, Stefan Rossegger, Jim Thomas
  //
  //
  // omegaTau (wt) of the langevin equation
  // This is a function of the drift vel., the magnetic and electric field
  // e.g. vd=2.6 cm/usc; Ez=400 V/cm; Bz=0.5 T
  // wt =  -10.0*(Bz*10)*vd/Ez = -0.325 

  Double_t vdrift = 2.6; // [cm/us]   // to be updated: per second (ideally)
  Double_t bzField = -0.5; // [Tesla] // to be updated: per run
  Double_t ezField = 400; // [V/cm]   // to be updated: never (hopefully)
  Double_t wt = -10.0 * (bzField*10) * vdrift / ezField ; 

  // Correction Terms for effective omegaTau; obtained by a laser calibration run
  Double_t T1 = 0.9;
  Double_t T2 = 1.5;

  AliMagF mag("mag","mag");

  AliTPCExBTwist twist;
  twist.SetXTwist(0.001);
  
  AliTPCGGVoltError GGerror;
  GGerror.SetDeltaVGGA(50.);
  GGerror.SetDeltaVGGC(50.);
  GGerror.InitGGVoltErrorDistortion();

  AliTPCExBBShape exb;
  exb.SetBField(&mag);

  TObjArray cs;
  cs.Add(&twist);
  cs.Add(&GGerror);
  cs.Add(&exb);

  AliTPCComposedCorrection cc;
  cc.SetCorrections(&cs);
  cc.SetOmegaTauT1T2(wt,T1,T2);
  //cc.SetMode(1);

  cc.Print("DA"); // Print used correction classes

  TCanvas *c=new TCanvas;  // Plots
  c->Divide(2,2);
  c->cd(1);twist.CreateHistoDRPhiinZR(1.,100,100)->Draw("surf2");
  c->cd(2);GGerror.CreateHistoDRPhiinZR(1.,100,100)->Draw("surf2");
  c->cd(3);exb.CreateHistoDRPhiinZR(1.)->Draw("surf2");
  c->cd(4);cc.CreateHistoDRPhiinZR(1.)->Draw("surf2");
}



void MakeDistortionMap(){
  //
  // make distortiona map example for specific transformation 
  //
  Int_t run=0;
  TTreeSRedirector *pcstream =  new TTreeSRedirector("distort.root");
  Double_t vdrift = 2.6; // [cm/us]   // to be updated: per second (ideally)
  Double_t bzField = -0.5; // [Tesla] // to be updated: per run
  Double_t ezField = 400; // [V/cm]   // to be updated: never (hopefully)
  Double_t wt = -10.0 * (bzField*10) * vdrift / ezField ; 

  // Correction Terms for effective omegaTau; obtained by a laser calibration run
  Double_t T1 = 0.9;
  Double_t T2 = 1.5;
  AliMagF* magF= new AliMagF("Maps","Maps", bzField/0.5, 1.);
  TGeoGlobalMagField::Instance()->SetField(magF);

  AliCDBManager::Instance()->SetDefaultStorage("local:////$ALICE_ROOT/OCDB");
  AliCDBManager::Instance()->SetRun(run);
  AliGeomManager::LoadGeometry();
  AliGeomManager::ApplyAlignObjsFromCDB("GRP ITS TPC");


  AliTPCExBTwist twist;
  twist.SetName("twistX001");
  twist.SetXTwist(0.001);
  
  AliTPCGGVoltError GGerror;
  GGerror.SetDeltaVGGA(50.);
  GGerror.SetDeltaVGGC(50.);
  GGerror.InitGGVoltErrorDistortion();
  GGerror.SetName("ggoffsetA50C50");
  AliTPCExBBShape exb;
  exb.SetBField(magF);
  exb.SetName("ExB");
  TObjArray cs;
  cs.Add(&twist);
  cs.Add(&GGerror);
  cs.Add(&exb);
  
  AliTPCComposedCorrection *cc = new AliTPCComposedCorrection;
  cc->SetCorrections(&cs);
  cc->SetOmegaTauT1T2(wt,T1,T2);
  //cc->SetMode(1);
  cc->SetName("composed");
  Double_t par[5]={0,0,0,0,0};
  Double_t cov[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  for (Double_t theta=-1.; theta<1; theta+=0.1){
    for (Double_t alpha=-3.14; alpha<3.14; alpha+=0.2){
      par[0]=0;
      par[1]=theta*85;
      par[2]=0;
      par[3]=theta;
      par[4]=(gRandom->Rndm()-0.5);
      AliExternalTrackParam trackIn(85,alpha,par,cov);
      //FitDistortedTrack(&trackIn, cc, 85, -1,pcstream);
      twist.FitDistortedTrack(trackIn, 85, -1,pcstream);
      GGerror.FitDistortedTrack(trackIn, 85, -1,pcstream);
      exb.FitDistortedTrack(trackIn, 85, -1,pcstream);
      cc->FitDistortedTrack(trackIn, 85, -1,pcstream);      
    }
  }
  delete pcstream;
}

void DrawDistortionMap(){
  //
  // Example -drawing of distortion maps
  //
  TFile f("distort.root");
  TTree *   fitDistorttwistX001= (TTree*)f.Get("fitDistorttwistX001");
  TTree *   fitDistortggoffsetA50C50=(TTree*)f.Get("fitDistortggoffsetA50C50");
  TTree *   fitDistortExB=(TTree*)f.Get("fitDistortExB");
  TTree *   fitDistortcomposed=(TTree*)f.Get("fitDistortcomposed");
  fitDistortExB->SetMarkerColor(1);
  fitDistorttwistX001->SetMarkerColor(2);
  fitDistortggoffsetA50C50->SetMarkerColor(4);
  fitDistortExB->SetMarkerStyle(20);
  fitDistorttwistX001->SetMarkerStyle(21);
  fitDistortggoffsetA50C50->SetMarkerStyle(22);
  //
  // example draw delta local y/r-phi as function of fi
  Int_t entries=0;

  entries = fitDistortExB->Draw("track1.fP[0]-track0.fP[0]:track0.fAlpha","","");
  TGraph * grY0= new TGraph(entries, fitDistortExB->GetV2(),fitDistortExB->GetV1());
  entries = fitDistortggoffsetA50C50->Draw("track1.fP[0]-track0.fP[0]:track0.fAlpha","","");
  TGraph * grY1= new TGraph(entries, fitDistortggoffsetA50C50->GetV2(),fitDistortggoffsetA50C50->GetV1());
  entries = fitDistorttwistX001->Draw("track1.fP[0]-track0.fP[0]:track0.fAlpha","","");
  TGraph * grY2= new TGraph(entries, fitDistorttwistX001->GetV2(),fitDistorttwistX001->GetV1());
  entries = fitDistortcomposed->Draw("track1.fP[0]-track0.fP[0]:track0.fAlpha","","");
  TGraph * grY3= new TGraph(entries, fitDistortcomposed->GetV2(),fitDistortcomposed->GetV1());
  grY0->SetMinimum(-0.4);
  grY0->SetMaximum(0.4);
  grY0->SetMarkerStyle(20), grY0->SetMarkerColor(1);
  grY1->SetMarkerStyle(21), grY1->SetMarkerColor(2);
  grY2->SetMarkerStyle(22), grY2->SetMarkerColor(4);
  grY3->SetMarkerStyle(24), grY3->SetMarkerColor(5); 
  grY0->Draw("ap");
  grY1->Draw("p");
  grY2->Draw("p");
  grY3->Draw("p");
}


void TestVertex(){
  //
  //
  //  .x ConfigCalibTrain.C(120829)

  AliTPCComposedCorrection * corrC = ( AliTPCComposedCorrection *)AliTPCcalibDB::Instance()->GetTPCComposedCorrection(0.5);
  AliTPCCorrection * corrT = (AliTPCCorrection *)corrC->GetCorrections()->FindObject("exb_twist");
  AliTPCCorrection * corrS = (AliTPCCorrection *)corrC->GetCorrections()->FindObject("ExB");
  
  TTreeSRedirector *pcstream = new TTreeSRedirector("vertexDistort.root");
  TTreeSRedirector *pcstreamS = new TTreeSRedirector("vertexDistortS.root");
  TTreeSRedirector *pcstreamT = new TTreeSRedirector("vertexDistortT.root");
  Double_t orgVertex[3] ;
  AliESDVertex aV,cV,aVO,cVO;
  for (Int_t iv=0; iv<100; iv++){
    printf("%d\n",iv);
    orgVertex[0]=gRandom->Gaus()*0.01;
    orgVertex[1]=gRandom->Gaus()*0.01;
    orgVertex[2]=gRandom->Gaus()*3;
    corrC->FastSimDistortedVertex(orgVertex,100, aV,aVO,cV,cVO,pcstream);
    corrS->FastSimDistortedVertex(orgVertex,100, aV,aVO,cV,cVO,pcstreamS);
    corrT->FastSimDistortedVertex(orgVertex,100, aV,aVO,cV,cVO,pcstreamT);
  }
  delete pcstream;
  delete pcstreamS;
  delete pcstreamT;
  TFile fC("vertexDistortC.root");
  TFile fT("vertexDistortT.root");
  TFile fS("vertexDistortS.root");
  TTree * treeT=(TTree*)fT.Get("vertex"); // twist distrotions
  TTree * treeS=(TTree*)fS.Get("vertex"); // shape distortions
  TCanvas *canvasD=new TCanvas("canvasD","canvasD");
  canvasD->Divide(2,2);
  canvasD->cd(1);
  treeT->SetLineColor(2);
  treeT->Draw("av.fPosition[0]-x>>hisATX(100,-0.2,0.2)","","");
  treeT->SetLineColor(4);
  treeT->Draw("cv.fPosition[0]-x>>hisCTX(100,-0.2,0.2)","","same");
  canvasD->cd(2);
  treeT->SetLineColor(2);
  treeT->Draw("av.fPosition[1]-y>>hisATY(100,-0.2,0.2)","","");
  treeT->SetLineColor(4);
  treeT->Draw("cv.fPosition[1]-y>>hisCTY(100,-0.2,0.2)","","same");
  //
  canvasD->cd(3);
  treeS->SetLineColor(2);
  treeS->Draw("av.fPosition[0]-x>>hisASX(100,-0.2,0.2)","","");
  treeS->SetLineColor(4);
  treeS->Draw("cv.fPosition[0]-x>>hisCSX(100,-0.2,0.2)","","same");
  canvasD->cd(4);
  treeS->SetLineColor(2);
  treeS->Draw("av.fPosition[1]-y>>hisASY(100,-0.2,0.2)","","");
  treeS->SetLineColor(4);
  treeS->Draw("cv.fPosition[1]-y>>hisCSY(100,-0.2,0.2)","","same");
  canvasD->SaveAs("vertexShift.ps");

}
 AliTPCCorrectionDemo.C:1
 AliTPCCorrectionDemo.C:2
 AliTPCCorrectionDemo.C:3
 AliTPCCorrectionDemo.C:4
 AliTPCCorrectionDemo.C:5
 AliTPCCorrectionDemo.C:6
 AliTPCCorrectionDemo.C:7
 AliTPCCorrectionDemo.C:8
 AliTPCCorrectionDemo.C:9
 AliTPCCorrectionDemo.C:10
 AliTPCCorrectionDemo.C:11
 AliTPCCorrectionDemo.C:12
 AliTPCCorrectionDemo.C:13
 AliTPCCorrectionDemo.C:14
 AliTPCCorrectionDemo.C:15
 AliTPCCorrectionDemo.C:16
 AliTPCCorrectionDemo.C:17
 AliTPCCorrectionDemo.C:18
 AliTPCCorrectionDemo.C:19
 AliTPCCorrectionDemo.C:20
 AliTPCCorrectionDemo.C:21
 AliTPCCorrectionDemo.C:22
 AliTPCCorrectionDemo.C:23
 AliTPCCorrectionDemo.C:24
 AliTPCCorrectionDemo.C:25
 AliTPCCorrectionDemo.C:26
 AliTPCCorrectionDemo.C:27
 AliTPCCorrectionDemo.C:28
 AliTPCCorrectionDemo.C:29
 AliTPCCorrectionDemo.C:30
 AliTPCCorrectionDemo.C:31
 AliTPCCorrectionDemo.C:32
 AliTPCCorrectionDemo.C:33
 AliTPCCorrectionDemo.C:34
 AliTPCCorrectionDemo.C:35
 AliTPCCorrectionDemo.C:36
 AliTPCCorrectionDemo.C:37
 AliTPCCorrectionDemo.C:38
 AliTPCCorrectionDemo.C:39
 AliTPCCorrectionDemo.C:40
 AliTPCCorrectionDemo.C:41
 AliTPCCorrectionDemo.C:42
 AliTPCCorrectionDemo.C:43
 AliTPCCorrectionDemo.C:44
 AliTPCCorrectionDemo.C:45
 AliTPCCorrectionDemo.C:46
 AliTPCCorrectionDemo.C:47
 AliTPCCorrectionDemo.C:48
 AliTPCCorrectionDemo.C:49
 AliTPCCorrectionDemo.C:50
 AliTPCCorrectionDemo.C:51
 AliTPCCorrectionDemo.C:52
 AliTPCCorrectionDemo.C:53
 AliTPCCorrectionDemo.C:54
 AliTPCCorrectionDemo.C:55
 AliTPCCorrectionDemo.C:56
 AliTPCCorrectionDemo.C:57
 AliTPCCorrectionDemo.C:58
 AliTPCCorrectionDemo.C:59
 AliTPCCorrectionDemo.C:60
 AliTPCCorrectionDemo.C:61
 AliTPCCorrectionDemo.C:62
 AliTPCCorrectionDemo.C:63
 AliTPCCorrectionDemo.C:64
 AliTPCCorrectionDemo.C:65
 AliTPCCorrectionDemo.C:66
 AliTPCCorrectionDemo.C:67
 AliTPCCorrectionDemo.C:68
 AliTPCCorrectionDemo.C:69
 AliTPCCorrectionDemo.C:70
 AliTPCCorrectionDemo.C:71
 AliTPCCorrectionDemo.C:72
 AliTPCCorrectionDemo.C:73
 AliTPCCorrectionDemo.C:74
 AliTPCCorrectionDemo.C:75
 AliTPCCorrectionDemo.C:76
 AliTPCCorrectionDemo.C:77
 AliTPCCorrectionDemo.C:78
 AliTPCCorrectionDemo.C:79
 AliTPCCorrectionDemo.C:80
 AliTPCCorrectionDemo.C:81
 AliTPCCorrectionDemo.C:82
 AliTPCCorrectionDemo.C:83
 AliTPCCorrectionDemo.C:84
 AliTPCCorrectionDemo.C:85
 AliTPCCorrectionDemo.C:86
 AliTPCCorrectionDemo.C:87
 AliTPCCorrectionDemo.C:88
 AliTPCCorrectionDemo.C:89
 AliTPCCorrectionDemo.C:90
 AliTPCCorrectionDemo.C:91
 AliTPCCorrectionDemo.C:92
 AliTPCCorrectionDemo.C:93
 AliTPCCorrectionDemo.C:94
 AliTPCCorrectionDemo.C:95
 AliTPCCorrectionDemo.C:96
 AliTPCCorrectionDemo.C:97
 AliTPCCorrectionDemo.C:98
 AliTPCCorrectionDemo.C:99
 AliTPCCorrectionDemo.C:100
 AliTPCCorrectionDemo.C:101
 AliTPCCorrectionDemo.C:102
 AliTPCCorrectionDemo.C:103
 AliTPCCorrectionDemo.C:104
 AliTPCCorrectionDemo.C:105
 AliTPCCorrectionDemo.C:106
 AliTPCCorrectionDemo.C:107
 AliTPCCorrectionDemo.C:108
 AliTPCCorrectionDemo.C:109
 AliTPCCorrectionDemo.C:110
 AliTPCCorrectionDemo.C:111
 AliTPCCorrectionDemo.C:112
 AliTPCCorrectionDemo.C:113
 AliTPCCorrectionDemo.C:114
 AliTPCCorrectionDemo.C:115
 AliTPCCorrectionDemo.C:116
 AliTPCCorrectionDemo.C:117
 AliTPCCorrectionDemo.C:118
 AliTPCCorrectionDemo.C:119
 AliTPCCorrectionDemo.C:120
 AliTPCCorrectionDemo.C:121
 AliTPCCorrectionDemo.C:122
 AliTPCCorrectionDemo.C:123
 AliTPCCorrectionDemo.C:124
 AliTPCCorrectionDemo.C:125
 AliTPCCorrectionDemo.C:126
 AliTPCCorrectionDemo.C:127
 AliTPCCorrectionDemo.C:128
 AliTPCCorrectionDemo.C:129
 AliTPCCorrectionDemo.C:130
 AliTPCCorrectionDemo.C:131
 AliTPCCorrectionDemo.C:132
 AliTPCCorrectionDemo.C:133
 AliTPCCorrectionDemo.C:134
 AliTPCCorrectionDemo.C:135
 AliTPCCorrectionDemo.C:136
 AliTPCCorrectionDemo.C:137
 AliTPCCorrectionDemo.C:138
 AliTPCCorrectionDemo.C:139
 AliTPCCorrectionDemo.C:140
 AliTPCCorrectionDemo.C:141
 AliTPCCorrectionDemo.C:142
 AliTPCCorrectionDemo.C:143
 AliTPCCorrectionDemo.C:144
 AliTPCCorrectionDemo.C:145
 AliTPCCorrectionDemo.C:146
 AliTPCCorrectionDemo.C:147
 AliTPCCorrectionDemo.C:148
 AliTPCCorrectionDemo.C:149
 AliTPCCorrectionDemo.C:150
 AliTPCCorrectionDemo.C:151
 AliTPCCorrectionDemo.C:152
 AliTPCCorrectionDemo.C:153
 AliTPCCorrectionDemo.C:154
 AliTPCCorrectionDemo.C:155
 AliTPCCorrectionDemo.C:156
 AliTPCCorrectionDemo.C:157
 AliTPCCorrectionDemo.C:158
 AliTPCCorrectionDemo.C:159
 AliTPCCorrectionDemo.C:160
 AliTPCCorrectionDemo.C:161
 AliTPCCorrectionDemo.C:162
 AliTPCCorrectionDemo.C:163
 AliTPCCorrectionDemo.C:164
 AliTPCCorrectionDemo.C:165
 AliTPCCorrectionDemo.C:166
 AliTPCCorrectionDemo.C:167
 AliTPCCorrectionDemo.C:168
 AliTPCCorrectionDemo.C:169
 AliTPCCorrectionDemo.C:170
 AliTPCCorrectionDemo.C:171
 AliTPCCorrectionDemo.C:172
 AliTPCCorrectionDemo.C:173
 AliTPCCorrectionDemo.C:174
 AliTPCCorrectionDemo.C:175
 AliTPCCorrectionDemo.C:176
 AliTPCCorrectionDemo.C:177
 AliTPCCorrectionDemo.C:178
 AliTPCCorrectionDemo.C:179
 AliTPCCorrectionDemo.C:180
 AliTPCCorrectionDemo.C:181
 AliTPCCorrectionDemo.C:182
 AliTPCCorrectionDemo.C:183
 AliTPCCorrectionDemo.C:184
 AliTPCCorrectionDemo.C:185
 AliTPCCorrectionDemo.C:186
 AliTPCCorrectionDemo.C:187
 AliTPCCorrectionDemo.C:188
 AliTPCCorrectionDemo.C:189
 AliTPCCorrectionDemo.C:190
 AliTPCCorrectionDemo.C:191
 AliTPCCorrectionDemo.C:192
 AliTPCCorrectionDemo.C:193
 AliTPCCorrectionDemo.C:194
 AliTPCCorrectionDemo.C:195
 AliTPCCorrectionDemo.C:196
 AliTPCCorrectionDemo.C:197
 AliTPCCorrectionDemo.C:198
 AliTPCCorrectionDemo.C:199
 AliTPCCorrectionDemo.C:200
 AliTPCCorrectionDemo.C:201
 AliTPCCorrectionDemo.C:202
 AliTPCCorrectionDemo.C:203
 AliTPCCorrectionDemo.C:204
 AliTPCCorrectionDemo.C:205
 AliTPCCorrectionDemo.C:206
 AliTPCCorrectionDemo.C:207
 AliTPCCorrectionDemo.C:208
 AliTPCCorrectionDemo.C:209
 AliTPCCorrectionDemo.C:210
 AliTPCCorrectionDemo.C:211
 AliTPCCorrectionDemo.C:212
 AliTPCCorrectionDemo.C:213
 AliTPCCorrectionDemo.C:214
 AliTPCCorrectionDemo.C:215
 AliTPCCorrectionDemo.C:216
 AliTPCCorrectionDemo.C:217
 AliTPCCorrectionDemo.C:218
 AliTPCCorrectionDemo.C:219
 AliTPCCorrectionDemo.C:220
 AliTPCCorrectionDemo.C:221
 AliTPCCorrectionDemo.C:222
 AliTPCCorrectionDemo.C:223
 AliTPCCorrectionDemo.C:224
 AliTPCCorrectionDemo.C:225
 AliTPCCorrectionDemo.C:226
 AliTPCCorrectionDemo.C:227
 AliTPCCorrectionDemo.C:228
 AliTPCCorrectionDemo.C:229
 AliTPCCorrectionDemo.C:230
 AliTPCCorrectionDemo.C:231
 AliTPCCorrectionDemo.C:232
 AliTPCCorrectionDemo.C:233
 AliTPCCorrectionDemo.C:234
 AliTPCCorrectionDemo.C:235
 AliTPCCorrectionDemo.C:236
 AliTPCCorrectionDemo.C:237
 AliTPCCorrectionDemo.C:238
 AliTPCCorrectionDemo.C:239
 AliTPCCorrectionDemo.C:240
 AliTPCCorrectionDemo.C:241
 AliTPCCorrectionDemo.C:242
 AliTPCCorrectionDemo.C:243
 AliTPCCorrectionDemo.C:244
 AliTPCCorrectionDemo.C:245
 AliTPCCorrectionDemo.C:246
 AliTPCCorrectionDemo.C:247
 AliTPCCorrectionDemo.C:248
 AliTPCCorrectionDemo.C:249
 AliTPCCorrectionDemo.C:250
 AliTPCCorrectionDemo.C:251
 AliTPCCorrectionDemo.C:252
 AliTPCCorrectionDemo.C:253
 AliTPCCorrectionDemo.C:254
 AliTPCCorrectionDemo.C:255
 AliTPCCorrectionDemo.C:256
 AliTPCCorrectionDemo.C:257
 AliTPCCorrectionDemo.C:258
 AliTPCCorrectionDemo.C:259
 AliTPCCorrectionDemo.C:260
 AliTPCCorrectionDemo.C:261
 AliTPCCorrectionDemo.C:262
 AliTPCCorrectionDemo.C:263
 AliTPCCorrectionDemo.C:264
 AliTPCCorrectionDemo.C:265
 AliTPCCorrectionDemo.C:266
 AliTPCCorrectionDemo.C:267
 AliTPCCorrectionDemo.C:268
 AliTPCCorrectionDemo.C:269
 AliTPCCorrectionDemo.C:270
 AliTPCCorrectionDemo.C:271