ROOT logo
#include "CommonDefs.C"

MultCent(const Char_t *filename = "data.root", Int_t evMax = kMaxInt)
{
  
  /* include path for ACLic */
  gSystem->AddIncludePath("-I$ALICE_ROOT/include");
  gSystem->AddIncludePath("-I$ALICE_ROOT/TOF");
  /* load libraries */
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  /* build analysis task class */
  gROOT->LoadMacro("AliAnalysisParticle.cxx+g");
  gROOT->LoadMacro("AliAnalysisEvent.cxx+g");
  gROOT->LoadMacro("AliAnalysisTrack.cxx+g");
 
  /* open file, get tree and connect */
  TFile *filein = TFile::Open(filename);
  TTree *treein = (TTree *)filein->Get("aodTree");
  printf("got \"aodTree\": %d entries\n", treein->GetEntries());
  AliAnalysisEvent *analysisEvent = new AliAnalysisEvent();
  TClonesArray *analysisTrackArray = new TClonesArray("AliAnalysisTrack");
  AliAnalysisTrack *analysisTrack = NULL;
  treein->SetBranchAddress("AnalysisEvent", &analysisEvent);
  treein->SetBranchAddress("AnalysisTrack", &analysisTrackArray);

  /* histo */
  TH2F *hMultCent = new TH2F("hMultCent", "", 120, -10., 110., 5000, 0., 5000.);
  TH2F *hRefMultCent = new TH2F("hRefMultCent", "", 120, -10., 110., 5000, 0., 5000.);
  TH2F *hMultTOFCent = new TH2F("hMultTOFCent", "", 100, 0., 100., 5000, 0., 5000.);
  TH2F *hMultCent_T0TOF = new TH2F("hMultCent_T0TOF", "", 100, 0., 100., 5000, 0., 5000.);

  /* loop over events */
  Int_t mult;
  Double_t cent, refmult;
  for (Int_t iev = 0; iev < treein->GetEntries() && iev < evMax; iev++) {
    /* get event */
    treein->GetEvent(iev);
    if (iev % 100000 == 0) printf("iev = %d\n", iev);

    /* check accept event */
    if (!analysisEvent->AcceptEvent(acceptEventType)) continue;

    /* count tracks for multiplicity */
    mult = analysisTrackArray->GetEntries();
    cent = analysisEvent->GetCentralityPercentile(centralityEstimator);
    refmult = analysisEvent->GetCentralityPercentile(999);
    /* check centrality percentile (V0M) */
    //    if (cent == 100.) continue;

    /*** ACCEPTED EVENT ***/

    /* fill histo */
    hMultCent->Fill(cent, mult);
    hRefMultCent->Fill(cent, refmult);

    /* check if event has T0-TOF */
    if (analysisEvent->GetTimeZeroTOFSigma(9) > 150.) continue;

    hMultCent_T0TOF->Fill(cent, mult);

    Int_t nTOFtrk = 0, ntrk = 0;
    AliAnalysisTrack *analysisTrack = NULL;
    for (Int_t itrk = 0; itrk < mult; itrk++) {
      analysisTrack = (AliAnalysisTrack *)analysisTrackArray->At(itrk);
      if (!analysisTrack->AcceptTrack()) continue;
      ntrk++;
      if (analysisTrack->HasTOFMatch()) nTOFtrk++;
      
    }

    hMultTOFCent->Fill(cent, nTOFtrk);

  }

  /* output */
  TFile *fileout = new TFile(Form("MultCent.%s", filename), "RECREATE");
  hMultCent->Write();
  hRefMultCent->Write();
  hMultCent_T0TOF->Write();
  hMultTOFCent->Write();
  fileout->Close();

}

MultCent_T0TOFeff(const Char_t *filename)
{

  TFile *filein = TFile::Open(filename);
  TH2F *hMultCent = (TH2F *)filein->Get("hMultCent");
  TH2F *hMultCent_T0TOF = (TH2F *)filein->Get("hMultCent_T0TOF");

  /* projections */
  TH1D *hMultCent_px = hMultCent->ProjectionX();
  TH1D *hMultCent_T0TOF_px = hMultCent_T0TOF->ProjectionX();
  TH1D *hMultCent_py = hMultCent->ProjectionY();
  TH1D *hMultCent_T0TOF_py = hMultCent_T0TOF->ProjectionY();

  /* efficiency centrality */
  TH1D *hEfficiency_centrality = new TH1D(*hMultCent_T0TOF_px);
  hEfficiency_centrality->SetNameTitle("hEfficiency_centrality", ";centrality percentile;T0-TOF efficiency");
  hEfficiency_centrality->Sumw2();
  hEfficiency_centrality->Divide(hEfficiency_centrality, hMultCent_px, 1., 1., "B");

  /* efficiency tracks */
  TH1D *hEfficiency_tracks = new TH1D(*hMultCent_T0TOF_py);
  hEfficiency_tracks->SetNameTitle("hEfficiency_tracks", ";N_{tracks};T0-TOF efficiency");
  hEfficiency_tracks->Sumw2();
  hEfficiency_tracks->Divide(hEfficiency_tracks, hMultCent_py, 1., 1., "B");

  /* draw */
  TCanvas *cCentrality = new TCanvas("cCentrality");
  hEfficiency_centrality->DrawCopy();
  TCanvas *cTracks = new TCanvas("cTracks");
  hEfficiency_tracks->DrawCopy();

  /* output */
  TFile *fileout = new TFile(Form("MultCent_T0TOFeff.%s", filename), "RECREATE");
  hEfficiency_centrality->Write();
  hEfficiency_tracks->Write();
  fileout->Close();


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