ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TCanvas.h>
#include <TClassTable.h>
#include <TGraph.h>
#include <TTree.h>
#include <TH1.h>
#include <TFile.h>
#include <TH2.h>
#include <TInterpreter.h>
#include <TStyle.h>
#include "AliHeader.h"
#include "AliITSdEdxAnalyzer.h"
#include "AliRunLoader.h"
#include "AliESDEvent.h"
#endif

Bool_t MakeITSdEdxAnalysis(TString path=".",Int_t nmombins=16){

  if (gClassTable->GetID("AliRun") < 0) {
    gInterpreter->ExecuteMacro("loadlibs.C");
  }
 
  TString galicefile = path+"/galice.root";
  TString esdfile = path+"/AliESDs.root";

  AliRunLoader* runLoader = AliRunLoader::Open(galicefile.Data());
  if (!runLoader) {
    printf("Error in getting run loader");
    return kFALSE;
  }
  runLoader->LoadHeader();
  runLoader->LoadKinematics();

  TFile* esdFile = TFile::Open(esdfile.Data());
  if (!esdFile || !esdFile->IsOpen()) {
    printf("Error in opening ESD file");
    return kFALSE;
  }

  AliESDEvent * esd = new AliESDEvent;
  TTree* tree = (TTree*) esdFile->Get("esdTree");
  if (!tree) {
    printf("Error: no ESD tree found");
    return kFALSE;
  }
  esd->ReadFromTree(tree);
  AliITSdEdxAnalyzer* enan=new AliITSdEdxAnalyzer(nmombins,0.1,3.1);
  enan->SetMIPdEdx(79.);

  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
    runLoader->GetEvent(iEvent);
    tree->GetEvent(iEvent);
    if (!esd) {
      printf("Error: no ESD object found for event %d", iEvent);
      return kFALSE;
    }
    AliStack* stack = runLoader->Stack();
    enan->ReadEvent(esd,stack);
  }
  enan->WriteHistos();



  TCanvas* c1=new TCanvas("c1","dEdx - pions - layer 4");
  c1->Divide(4,4);
  for(Int_t i=0; i<nmombins;i++){
    TH1F* h=enan->GetSingleLayerdEdxHisto(4,211,i);
    c1->cd(i+1);
    h->Draw();
  }


  TCanvas* c1b=new TCanvas("c1b","dEdx - pions - Truncated mean");
  c1b->Divide(4,4);
  for(Int_t i=0; i<nmombins;i++){
    TH1F* h=enan->GetTruncatedMeandEdxHisto(211,i);
    c1b->cd(i+1);
    h->Draw();
  }

  TCanvas* c2=new TCanvas("c2","Delta dEdx - pions - layer 4");
  c2->Divide(4,4);
  for(Int_t i=0; i<nmombins;i++){
    TH1F* h=enan->GetSingleLayerDeltadEdxHisto(4,211,i);
    c2->cd(i+1);
    h->Draw();
  }

  TCanvas* c2b=new TCanvas("c2b","Delta dEdx - pions - Truncated Mean");
  c2b->Divide(4,4);
  for(Int_t i=0; i<nmombins;i++){
    TH1F* h=enan->GetTruncatedMeanDeltadEdxHisto(211,i);
    c2b->cd(i+1);
    h->Draw();
  }

  gStyle->SetPalette(1);

  TCanvas* c3=0;
  c3=new TCanvas("c3","dEdx vs. p - pions - layer 4");
  TH2F* h2=enan->GetSingleLayerdEdxVsPHisto(4,211);
  h2->Draw("colz");
  enan->SetUseBBFromAliExternalTrackParam();
  TGraph* gpion1=enan->GetBetheBlochGraph(211);
  gpion1->Draw("LSAME");
  enan->SetUseBBFromAliITSpidESD();
  TGraph* gpion2=enan->GetBetheBlochGraph(211);
  gpion2->SetLineColor(2);
  gpion2->Draw("LSAME");

  TCanvas* c3b=0;
  c3b=new TCanvas("c3b","dEdx vs. p - pions - Truncated Mean");
  TH2F* h2b=enan->GetTruncatedMeandEdxVsPHisto(211);
  h2b->Draw("colz");
  gpion1->Draw("LSAME");
  gpion2->Draw("LSAME");

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