]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/VZERO/checkThr.C
add missing include
[u/mrichter/AliRoot.git] / PWG1 / VZERO / checkThr.C
CommitLineData
c014f07d 1void checkThr(const char *filename, const char *what="")
2{
3 TFile *f = TFile::Open(filename);
4 TList *list = (TList*)f->Get("coutput");
5
6 TH1F *h3 = (TH1F*)list->FindObject("fV0Percent");
7
8 TH1F *hCent;
9 TH1F *hCentAll;
10 TH1F *hSemiCent;
11 TH1F *hSemiCentAll;
12 Double_t nentCent;
13 Double_t nentCentall;
14 Double_t nentSemiCent;
15 Double_t nentSemiCentall;
16 TF1 *ffCent;
17 TF1 *ffSemiCent;
18
19 hCent = (TH1F*)list->FindObject(Form("fV0Cent%s",what));
20 hCentAll = (TH1F*)list->FindObject(Form("fV0Cent%sAll",what));
21 hSemiCent = (TH1F*)list->FindObject(Form("fV0SemiCent%s",what));
22 hSemiCentAll = (TH1F*)list->FindObject(Form("fV0SemiCent%sAll",what));
23
24 nentCent = hCent->GetEntries();
35d3b2cb 25 Double_t nCentEvts = (Double_t)hCent->Integral(hCent->FindBin(0.0),hCent->FindBin(91.0));
c014f07d 26 nentCentall = hCentAll->GetEntries();
27 nentSemiCent = hSemiCent->GetEntries();
35d3b2cb 28 Double_t nSemiCentEvts = (Double_t)hSemiCent->Integral(hSemiCent->FindBin(0.0),hSemiCent->FindBin(91.0));
c014f07d 29 nentSemiCentall = hSemiCentAll->GetEntries();
30
31 hCent->Sumw2();
32 hCent->Divide(hCent,h3,1,1,"B");
33 hSemiCent->Sumw2();
34 hSemiCent->Divide(hSemiCent,h3,1,1,"B");
35
36 ffCent = new TF1("ffCent","1.-1./(1.+TMath::Exp(-(x-[0])/[1]))",0,100);
37 ffCent->SetLineColor(kBlue);
38 Double_t par0 = hCent->GetBinCenter(hCent->FindLastBinAbove(0.95));
39 ffCent->SetParameter(0,par0);
35d3b2cb 40 ffCent->SetParameter(1,0.3);
c014f07d 41 hCent->Fit(ffCent,"R+");
42 hCent->Fit(ffCent,"R+");
43 hCent->Fit(ffCent,"R+");
44
45 ffSemiCent = new TF1("ffSemiCent","1.-1./(1.+TMath::Exp(-(x-[0])/[1]))",0,100);
46 ffSemiCent->SetLineColor(kRed);
47 par0 = hSemiCent->GetBinCenter(hSemiCent->FindLastBinAbove(0.95));
48 ffSemiCent->SetParameter(0,par0);
35d3b2cb 49 ffSemiCent->SetParameter(1,0.3);
c014f07d 50 hSemiCent->Fit(ffSemiCent,"R+");
51 hSemiCent->Fit(ffSemiCent,"R+");
52 hSemiCent->Fit(ffSemiCent,"R+");
53
54 new TCanvas;
55 hSemiCent->SetLineColor(kBlue);
56 hSemiCent->SetMarkerColor(kBlue);
57 hCent->Draw("e");
58 hSemiCent->SetLineColor(kRed);
59 hSemiCent->SetMarkerColor(kRed);
60 hSemiCent->Draw("e same");
61
62 printf("\n\n\n");
63
64 printf("Purity: Centr %.3f %.3f Cuts ( 0.0-%.1f)%% rate=%.1f Hz\n",
65 ffCent->Integral(0,10)/ffCent->Integral(0,100),
66 ffCent->Integral(0,10)/ffCent->Integral(0,100)*nentCent/nentCentall,
67 ffCent->GetX(0.99),
35d3b2cb 68 30.*10./(ffCent->Integral(0,10)/ffCent->Integral(0,100)*nentCent/nentCentall));
c014f07d 69 printf("Purity: Semi-Centr %.3f %.3f Cuts ( 0.0-%.1f)%% rate=%.1f Hz\n",
70 ffSemiCent->Integral(0,50)/ffSemiCent->Integral(0,100),
71 ffSemiCent->Integral(0,50)/ffSemiCent->Integral(0,100)*nentSemiCent/nentSemiCentall,
72 ffSemiCent->GetX(0.99),
35d3b2cb 73 30.*50./(ffSemiCent->Integral(0,50)/ffSemiCent->Integral(0,100)*nentSemiCent/nentSemiCentall));
c014f07d 74
75 TH1F *hand = (TH1F*)list->FindObject("fV0Percent");
76 TH1F *handall = (TH1F*)list->FindObject("fV0PercentAll");
77 if (handall) {
78 TH1F *hmb63 = (TH1F*)list->FindObject("fV0Percent63");
79 TH1F *hmb63all = (TH1F*)list->FindObject("fV0Percent63All");
80 printf("V0AND: purity=%f %%\n",hand->Integral(0,hand->FindBin(90.))/(Float_t)handall->GetEntries()*100.);
81 printf(" MB63: purity=%f %% eff=%f %%\n",hmb63->Integral(0,hmb63->FindBin(90.))/hmb63all->GetEntries()*100.,hmb63->Integral(0,hmb63->FindBin(90.))/hand->Integral(0,hand->FindBin(90.))*100.);
82 hmb63->Sumw2();
83 hmb63->Divide(hmb63,hand,1,1,"B");
84 new TCanvas;
85 hmb63->SetStats(0);
86 hmb63->SetTitle("MultA+MultC>=63 efficiency as a function of centrality percentile");
87 hmb63->Draw();
88 }
89}