1 MultCent(const Char_t *filename, Int_t evMax = kMaxInt)
4 /* include path for ACLic */
5 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
6 gSystem->AddIncludePath("-I$ALICE_ROOT/TOF");
8 gSystem->Load("libANALYSIS");
9 gSystem->Load("libANALYSISalice");
10 /* build analysis task class */
11 gROOT->LoadMacro("AliAnalysisParticle.cxx+g");
12 gROOT->LoadMacro("AliAnalysisEvent.cxx+g");
13 gROOT->LoadMacro("AliAnalysisTrack.cxx+g");
15 /* open file, get tree and connect */
16 TFile *filein = TFile::Open(filename);
17 TTree *treein = (TTree *)filein->Get("aodTree");
18 printf("got \"aodTree\": %d entries\n", treein->GetEntries());
19 AliAnalysisEvent *analysisEvent = new AliAnalysisEvent();
20 TClonesArray *analysisTrackArray = new TClonesArray("AliAnalysisTrack");
21 AliAnalysisTrack *analysisTrack = NULL;
22 treein->SetBranchAddress("AnalysisEvent", &analysisEvent);
23 treein->SetBranchAddress("AnalysisTrack", &analysisTrackArray);
26 TH2F *hMultCent = new TH2F("hMultCent", "", 100, 0., 100., 5000, 0., 5000.);
27 TH2F *hMultCent_T0TOF = new TH2F("hMultCent_T0TOF", "", 100, 0., 100., 5000, 0., 5000.);
29 /* loop over events */
32 for (Int_t iev = 0; iev < treein->GetEntries() && iev < evMax; iev++) {
34 treein->GetEvent(iev);
35 if (iev % 1000 == 0) printf("iev = %d\n", iev);
37 if (!analysisEvent->AcceptVertex()) continue;
38 /* check collision candidate */
39 if (!analysisEvent->IsCollisionCandidate()) continue;
40 /* count tracks for multiplicity */
41 mult = analysisTrackArray->GetEntries();
42 /* check centrality quality */
43 if (analysisEvent->GetCentralityQuality() != 0.) continue;
44 cent = analysisEvent->GetCentralityPercentile(AliAnalysisEvent::kCentEst_V0M);
45 /* check centrality percentile (V0M) */
46 if (cent == 100.) continue;
48 /*** ACCEPTED EVENT ***/
51 hMultCent->Fill(cent, mult);
53 /* check if event has T0-TOF */
54 if (analysisEvent->GetTimeZeroTOFSigma(9) > 150.) continue;
56 hMultCent_T0TOF->Fill(cent, mult);
61 TFile *fileout = new TFile(Form("MultCent.%s", filename), "RECREATE");
63 hMultCent_T0TOF->Write();
68 MultCent_T0TOFeff(const Char_t *filename)
71 TFile *filein = TFile::Open(filename);
72 TH2F *hMultCent = (TH2F *)filein->Get("hMultCent");
73 TH2F *hMultCent_T0TOF = (TH2F *)filein->Get("hMultCent_T0TOF");
76 TH1D *hMultCent_px = hMultCent->ProjectionX();
77 TH1D *hMultCent_T0TOF_px = hMultCent_T0TOF->ProjectionX();
78 TH1D *hMultCent_py = hMultCent->ProjectionY();
79 TH1D *hMultCent_T0TOF_py = hMultCent_T0TOF->ProjectionY();
81 /* efficiency centrality */
82 TH1D *hEfficiency_centrality = new TH1D(*hMultCent_T0TOF_px);
83 hEfficiency_centrality->SetNameTitle("hEfficiency_centrality", ";centrality percentile;T0-TOF efficiency");
84 hEfficiency_centrality->Sumw2();
85 hEfficiency_centrality->Divide(hEfficiency_centrality, hMultCent_px, 1., 1., "B");
87 /* efficiency tracks */
88 TH1D *hEfficiency_tracks = new TH1D(*hMultCent_T0TOF_py);
89 hEfficiency_tracks->SetNameTitle("hEfficiency_tracks", ";N_{tracks};T0-TOF efficiency");
90 hEfficiency_tracks->Sumw2();
91 hEfficiency_tracks->Divide(hEfficiency_tracks, hMultCent_py, 1., 1., "B");
94 TCanvas *cCentrality = new TCanvas("cCentrality");
95 hEfficiency_centrality->DrawCopy();
96 TCanvas *cTracks = new TCanvas("cTracks");
97 hEfficiency_tracks->DrawCopy();
100 TFile *fileout = new TFile(Form("MultCent_T0TOFeff.%s", filename), "RECREATE");
101 hEfficiency_centrality->Write();
102 hEfficiency_tracks->Write();