ROOT logo


gSystem->Load("libANALYSIS");
gSystem->Load("libSTAT");
gSystem->Load("libTPCcalib");


TFile f("CalibObjects.root");
AliTPCcalibTime *calibTime = (AliTPCcalibTime *)f->Get("TPCCalib")->FindObject("calibTime");


TPair * addPair= calibTime->GetMapDz()->FindObject(" D0SCO ");
THnSparse* addHist=dynamic_cast<THnSparseF*>(addPair->Value());


//
TGraph * gr = AliTPCcalibBase::FitSlices(addHist,2,0,100,100);
gr->SetMarkerColor(2);
gr->Draw("same*");
//Make Fit

AliSplineFit fit;
fit.SetGraph(gr)
fit->SetMinPoints(gr->GetN()+1);
fit->InitKnots(gr,2,0,0.001)
fit.SplineFit(0)
TGraph * grfit = fit.MakeGraph(gr->GetX()[0],gr->GetX()[gr->GetN()-1],50000,0);
gr->SetMarkerStyle(25);
//gr->Draw("alp");
grfit->SetLineColor(2);
grfit->Draw("lu");










/*
  
  Macro to visualize and analyze time dependent variables
  //
  .L $ALICE_ROOT/TPC/CalibMacros/CalibTime.C
  //
  // 1. Init - Load libraries tools 
  Init()
  // 2. Load debug streamers 
  InitChains()

*/


//
// Chain Based analysis
//


TChain * chainLaser=0, *chainDz=0, *chaindEdx=0; 

void Init(){  
  // Load neccesary libraries
  gSystem->Load("libANALYSIS");
  gSystem->Load("libSTAT");
  gSystem->Load("libTPCcalib");
  gROOT->Macro("~/NimStyle.C");
  gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
  gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");
}

void InitChains(){  
  AliXRDPROOFtoolkit tool;   
  //load debug streams
  chainLaser = tool.MakeChain("time.txt","laserInfo",0,10200);
  chainLaser->Lookup();
  // cosmic dZ - drfit velocity part 
  chainDz = tool.MakeChain("time.txt","cosmicDz",0,10200);
  chainDz->Lookup();
  //
  // cosmic dE - drift velocity part 
  chaindEdx = tool.MakeChain("time.txt","cosmicdEdx",0,10200);
  chaindEdx->Lookup();
  //
  // Set Alias
  //
  chaindEdx->SetAlias("side","(-1+(p0.fP[1]>0)*2)");
  chaindEdx->SetAlias("der","side*(dedx0-dedx1)/(dedx0+dedx1)");
  chaindEdx->SetAlias("derIO","side*(dedx0Out-dedx0In)/(dedx0In+dedx0Out)");
  chaindEdx->SetAlias("dr","(1-abs(p0.fP[1]/250))");
  chaindEdx->SetAlias("isOK","dedx0In>0&&dedx0Out>0&&dedx1In>0&&dedx1Out>0");
  chaindEdx->SetAlias("dedxM","(dedx0+dedx1)*0.5");

}


void MakeTglFitCosmic(){
  // Fit the z correction factor
  TStatToolkit toolkit;
  Double_t chi2=0;
  Int_t    npoints=0;
  TVectorD fitParamC,fitParamIO;
  TMatrixD covMatrix;  
  //
  // dedx delta
  // 
  TString fstring="";
  fstring+="side++";
  fstring+="p0.fP[3]++";
  //fstring+="p0.fP[3]*dr++";
  TString *strTheta = toolkit.FitPlane(chaindEdx,"der",fstring->Data(), "isOK", chi2,npoints,fitParamC,covMatrix);
  chaindEdx->SetAlias("derc",strTheta.Data());
  strTheta->Tokenize("+")->Print(); 
  //
  // dedx delta
  // 
  fstring="";
  fstring+="side++";
  fstring+="p0.fP[3]++";
  //fstring+="p0.fP[3]*dr++";
  TString *strTheta = toolkit.FitPlane(chaindEdx,"derIO",fstring->Data(), "isOK", chi2,npoints,fitParamIO,covMatrix);
  chaindEdx->SetAlias("derIOc",strTheta.Data());
  strTheta->Tokenize("+")->Print(); 
  //
  // Make Plot
  //
  chaindEdx->Draw("der:p0.fP[3]>>his(20,-0.5,0.5)","","prof");
  chaindEdx->Draw("der-derc:p0.fP[3]>>hisC(20,-0.5,0.5)","","prof");
  his->SetXTitle("tan(#theta)");
  his->SetYTitle("(Q_{u}-Q_{d})/(Q_{u}+Q_{d})");
  his->Draw("");
  hisC->Draw("same");
}


void MakeTglFitCosmic(){
  //
  //
  //
  TStatToolkit toolkit;
  Double_t chi2=0;
  Int_t    npoints=0;
  TVectorD fitParamC,fitParamIO;
  TMatrixD covMatrix;  
  TString fstring="";
  fstring="";
  fstring+="ppit++";
  fstring+="(trigger==1)++";
  fstring+="(trigger==2)++";
  fstring+="(trigger==4)++";
  fstring+="(trigger==8)++";
  TString *strPress = toolkit.FitPlane(chaindEdx,"(dedx0+dedx1)*0.5",fstring->Data(), "isOK", chi2,npoints,fitParamIO,covMatrix);
  //
  //
  chaindEdx->SetAlias("de",strTheta.Data());
  strTheta->Tokenize("+")->Print(); 


}
 CalibTime.C:1
 CalibTime.C:2
 CalibTime.C:3
 CalibTime.C:4
 CalibTime.C:5
 CalibTime.C:6
 CalibTime.C:7
 CalibTime.C:8
 CalibTime.C:9
 CalibTime.C:10
 CalibTime.C:11
 CalibTime.C:12
 CalibTime.C:13
 CalibTime.C:14
 CalibTime.C:15
 CalibTime.C:16
 CalibTime.C:17
 CalibTime.C:18
 CalibTime.C:19
 CalibTime.C:20
 CalibTime.C:21
 CalibTime.C:22
 CalibTime.C:23
 CalibTime.C:24
 CalibTime.C:25
 CalibTime.C:26
 CalibTime.C:27
 CalibTime.C:28
 CalibTime.C:29
 CalibTime.C:30
 CalibTime.C:31
 CalibTime.C:32
 CalibTime.C:33
 CalibTime.C:34
 CalibTime.C:35
 CalibTime.C:36
 CalibTime.C:37
 CalibTime.C:38
 CalibTime.C:39
 CalibTime.C:40
 CalibTime.C:41
 CalibTime.C:42
 CalibTime.C:43
 CalibTime.C:44
 CalibTime.C:45
 CalibTime.C:46
 CalibTime.C:47
 CalibTime.C:48
 CalibTime.C:49
 CalibTime.C:50
 CalibTime.C:51
 CalibTime.C:52
 CalibTime.C:53
 CalibTime.C:54
 CalibTime.C:55
 CalibTime.C:56
 CalibTime.C:57
 CalibTime.C:58
 CalibTime.C:59
 CalibTime.C:60
 CalibTime.C:61
 CalibTime.C:62
 CalibTime.C:63
 CalibTime.C:64
 CalibTime.C:65
 CalibTime.C:66
 CalibTime.C:67
 CalibTime.C:68
 CalibTime.C:69
 CalibTime.C:70
 CalibTime.C:71
 CalibTime.C:72
 CalibTime.C:73
 CalibTime.C:74
 CalibTime.C:75
 CalibTime.C:76
 CalibTime.C:77
 CalibTime.C:78
 CalibTime.C:79
 CalibTime.C:80
 CalibTime.C:81
 CalibTime.C:82
 CalibTime.C:83
 CalibTime.C:84
 CalibTime.C:85
 CalibTime.C:86
 CalibTime.C:87
 CalibTime.C:88
 CalibTime.C:89
 CalibTime.C:90
 CalibTime.C:91
 CalibTime.C:92
 CalibTime.C:93
 CalibTime.C:94
 CalibTime.C:95
 CalibTime.C:96
 CalibTime.C:97
 CalibTime.C:98
 CalibTime.C:99
 CalibTime.C:100
 CalibTime.C:101
 CalibTime.C:102
 CalibTime.C:103
 CalibTime.C:104
 CalibTime.C:105
 CalibTime.C:106
 CalibTime.C:107
 CalibTime.C:108
 CalibTime.C:109
 CalibTime.C:110
 CalibTime.C:111
 CalibTime.C:112
 CalibTime.C:113
 CalibTime.C:114
 CalibTime.C:115
 CalibTime.C:116
 CalibTime.C:117
 CalibTime.C:118
 CalibTime.C:119
 CalibTime.C:120
 CalibTime.C:121
 CalibTime.C:122
 CalibTime.C:123
 CalibTime.C:124
 CalibTime.C:125
 CalibTime.C:126
 CalibTime.C:127
 CalibTime.C:128
 CalibTime.C:129
 CalibTime.C:130
 CalibTime.C:131
 CalibTime.C:132
 CalibTime.C:133
 CalibTime.C:134
 CalibTime.C:135
 CalibTime.C:136
 CalibTime.C:137
 CalibTime.C:138
 CalibTime.C:139
 CalibTime.C:140
 CalibTime.C:141
 CalibTime.C:142
 CalibTime.C:143
 CalibTime.C:144
 CalibTime.C:145
 CalibTime.C:146
 CalibTime.C:147
 CalibTime.C:148
 CalibTime.C:149
 CalibTime.C:150
 CalibTime.C:151
 CalibTime.C:152
 CalibTime.C:153
 CalibTime.C:154
 CalibTime.C:155
 CalibTime.C:156
 CalibTime.C:157
 CalibTime.C:158
 CalibTime.C:159
 CalibTime.C:160
 CalibTime.C:161