]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TOF/PbPb276/macros/MultCent.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TOF / PbPb276 / macros / MultCent.C
1 MultCent(const Char_t *filename, Int_t evMax = kMaxInt)
2 {
3   
4   /* include path for ACLic */
5   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
6   gSystem->AddIncludePath("-I$ALICE_ROOT/TOF");
7   /* load libraries */
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");
14  
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);
24
25   /* histo */
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.);
28
29   /* loop over events */
30   Int_t mult;
31   Double_t cent;
32   for (Int_t iev = 0; iev < treein->GetEntries() && iev < evMax; iev++) {
33     /* get event */
34     treein->GetEvent(iev);
35     if (iev % 1000 == 0) printf("iev = %d\n", iev);
36     /* check vertex */
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;
47
48     /*** ACCEPTED EVENT ***/
49
50     /* fill histo */
51     hMultCent->Fill(cent, mult);
52
53     /* check if event has T0-TOF */
54     if (analysisEvent->GetTimeZeroTOFSigma(9) > 150.) continue;
55
56     hMultCent_T0TOF->Fill(cent, mult);
57
58   }
59
60   /* output */
61   TFile *fileout = new TFile(Form("MultCent.%s", filename), "RECREATE");
62   hMultCent->Write();
63   hMultCent_T0TOF->Write();
64   fileout->Close();
65
66 }
67
68 MultCent_T0TOFeff(const Char_t *filename)
69 {
70
71   TFile *filein = TFile::Open(filename);
72   TH2F *hMultCent = (TH2F *)filein->Get("hMultCent");
73   TH2F *hMultCent_T0TOF = (TH2F *)filein->Get("hMultCent_T0TOF");
74
75   /* projections */
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();
80
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");
86
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");
92
93   /* draw */
94   TCanvas *cCentrality = new TCanvas("cCentrality");
95   hEfficiency_centrality->DrawCopy();
96   TCanvas *cTracks = new TCanvas("cTracks");
97   hEfficiency_tracks->DrawCopy();
98
99   /* output */
100   TFile *fileout = new TFile(Form("MultCent_T0TOFeff.%s", filename), "RECREATE");
101   hEfficiency_centrality->Write();
102   hEfficiency_tracks->Write();
103   fileout->Close();
104
105
106 }