ROOT logo
int MakeTrend(char *infile,int run) {

  //char input_file[300];
  //sprintf(input_file,"Run_%d/AnalysisResults.root",run);
  
  TStopwatch timer;
  timer.Start();
  gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT -I$ALICE_ROOT/TRD");
  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/ConfigOCDB.C");
  
  gSystem->Load("libSTAT");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  gSystem->Load("libANALYSIScalib");
  gSystem->Load("libCORRFW");
  gSystem->Load("libTPCcalib");
  gSystem->Load("libTRDcalib");
  gSystem->Load("libT0calib");
  gSystem->Load("libTOFcalib");
  gSystem->Load("libANALYSISalice.so");
  gSystem->Load("libANALYSIScalib.so");
  gSystem->Load("libTENDER.so");
  gSystem->Load("libPWGPP.so");
                    
  
  /*
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so");
  gSystem->Load("libTENDER.so");
  gSystem->Load("libCORRFW.so");
  gSystem->Load("libPWG0base.so");
  gSystem->Load("libPWG0dep.so");
  gSystem->Load("libPWG0selectors.so");
  gSystem->Load("libPWG1.so");
    gSystem->Load("libPWG2.so");
  gSystem->Load("libPWG4base");
  gSystem->Load("libPWG3muon.so");
  gSystem->Load("libPWG3muondep.so");
  gSystem->Load("libPWG2forward.so");
   gSystem->Load("libPWG4PartCorrBase.so");
   gSystem->Load("libPWG4PartCorrDep.so");
 
  */

  // config OCDB
  //
  
  // ConfigOCDB(run,"local:///lustre/alice/alien/alice/data/2011/OCDB");
  
  char *outfile = "trending.root";
  
  if (!infile) return -1;
  if (!outfile) return -1;
  TFile *f =0;
  f=TFile::Open(infile,"read");
  if (!f) {
    printf("File %s not available\n", infile);
    return -1;
  }

  cout<< "test breakpoint -------------------------------------"<<endl; 
  TList* list = 0;
  list = dynamic_cast<TList*>(f->Get("TPC")); 
  cout<< "test0"<< endl;
  if (!list) { list = dynamic_cast<TList*>(f->Get("TPCQA")); }
  cout<< "test1"<< endl;
  if (!list) { list = dynamic_cast<TList*>(f->Get("TPCQA_v0_c0")); }
  if (!list) { list = dynamic_cast<TList*>(f->Get("TPCQA_v0_c30")); }
  if (!list) { list = dynamic_cast<TList*>(f->Get("TPCQA_v0_c70")); }
  if (!list) { list = dynamic_cast<TList*>(f->Get("TPC_PerformanceQA/TPCQA")); }
  if (!list) { list = dynamic_cast<TList*>(f->Get("TPC_PerformanceQA")); }
  if (!list) { list = dynamic_cast<TList*>(f->Get("ITSTPCMatch")); }
  cout<< "test2"<< endl;
  if (!list) {
    printf("QA %s not available\n", infile);
    return -1;
  } 
  cout<< "test3"<< endl;
  
  AliPerformanceTPC* pTPC = 0;
  AliPerformanceDEdx* pTPCgain = 0; 
  AliPerformanceMatch* pTPCmatch = 0; 
  AliPerformanceMatch* pTPCPull = 0; 
  AliPerformanceMatch* pConstrain = 0; 
  if (list) {  pTPC = dynamic_cast<AliPerformanceTPC*>(list->FindObject("AliPerformanceTPC")); }
  if (list) {  pTPCgain = dynamic_cast<AliPerformanceDEdx*>(list->FindObject("AliPerformanceDEdxTPCInner")); }
  if (list) {  pTPCmatch = dynamic_cast<AliPerformanceMatch*>(list->FindObject("AliPerformanceMatchTPCITS")); }
  if (list) {  pTPCPull = dynamic_cast<AliPerformanceMatch*>(list->FindObject("AliPerformanceMatchITSTPC")); }
  if (list) {  pConstrain = dynamic_cast<AliPerformanceMatch*>(list->FindObject("AliPerformanceMatchTPCConstrain")); }

  
  cout<< "ss "<<pTPC<<pTPCgain<<pTPCmatch <<pTPCPull<<pConstrain<<endl;
  /*
  cout<< ((TH2D*)(pTPC->GetTPCTrackHisto()->Projection(4,5)))->GetEntries()<<endl;
  
  
  TH1* his1D=0;
  //TH2* his2D=0;
  TH3* his3D_0=0;
  
  
  his3D_0 = dynamic_cast<TH3*>(pTPC->GetHistos()->FindObject("h_tpc_track_all_recvertex_0_5_7"));
  his3D_0->GetYaxis()->SetRangeUser(-1,1);
  his3D_0->GetZaxis()->SetRangeUser(0.25,10);
  
  his1D = his3D_0->Project3D("x");
  Double_t meanTPCncl= his1D->GetMean();
  
  cout<< "ss "<< meanTPCncl<<endl;
  */

  Int_t returncode = 0;
  AliTPCPerformanceSummary::WriteToFile(pTPC, pTPCgain, pTPCmatch ,pTPCPull,pConstrain, outfile, run);
  if (f) { delete f; f=0; }
  
  ofstream fout("trend_exist");
  fout<<9<<endl;
  fout.close();
  
  return 9;

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