source: huonglan/ANA2011/getrejS.C

Last change on this file was 6, checked in by huonglan, 13 years ago

first full version of 2011 analysis

File size: 3.8 KB
Line 
1{
2  TFile *f = TFile::Open("res.root");
3  TH1F *hl = (TH1F*)f->Get("sv0L");
4  TH1F *hb = (TH1F*)f->Get("sv0B");
5
6  TH1F *hipl = (TH1F*)f->Get("ip3dsv1L");
7  TH1F *hipb = (TH1F*)f->Get("ip3dsv1B");
8
9  int nb   = hl->GetNbinsX();
10  int bi50 = hl->FindBin(5.85);
11  cout << "Cut Bin " << bi50 << endl;
12  cout << "epsilon_b = " << hb->Integral(bi50,nb+1)/hb->Integral(0,nb+1) << endl;
13  cout << "R_light   = " << hl->Integral(0,nb+1)/hl->Integral(bi50,nb+1) << endl;
14  double effsv[nb],eeffsv[nb];
15  double R_lightsv[nb], eRsv[nb];
16  double nblabelsv = hb->Integral(0,nb+1);
17  double nllabelsv = hl->Integral(0,nb+1);
18
19  for (int i = 1; i <= nb; i++) {
20    effsv[i-1] = hb->Integral(i,nb+1)/nblabelsv;
21    eeffsv[i-1] = 0;
22    double intl = hl->Integral(i,nb+1);
23    if (intl != 0) {
24      R_lightsv[i-1] = nllabelsv/intl;
25      eRsv[i-1] = R_lightsv[i-1]*sqrt((R_lightsv[i-1]-1)/nllabelsv);
26    }
27    else {
28      R_lightsv[i-1] = 60000.;
29      eRsv[i-1] = 0;
30    }
31  }
32
33  TGraphErrors *heffbsv = new TGraphErrors(nb, effsv, R_lightsv, eeffsv, eRsv);
34
35  int nbip = hipl->GetNbinsX();
36  double nblabel = hipb->Integral(0,nbip+1);
37  double nllabel = hipl->Integral(0,nbip+1);
38
39  double eff[nbip],eeff[nbip];
40  double R_light[nbip], eR[nbip];
41  int bi50 = 0, bi57 = 0, bi60 = 0, bi70 = 0, bi01 = 0;
42  for (int i = 1; i <= nbip; i++) {
43    eff[i-1] = hipb->Integral(i,nbip+1)/nblabel;
44    eeff[i-1] = 0;
45    double intl = hipl->Integral(i,nbip+1);
46    if (intl != 0) {
47      R_light[i-1] = nllabel/intl;
48      eR[i-1] = R_light[i-1]*sqrt((R_light[i-1]-1)/nllabel);
49    }
50    else {
51      R_light[i-1] = 60000.;
52      eR[i-1] = 0;
53    }
54    if (i > 1) {
55      if (eff[i-1] <= 0.5 && eff[i-2] >= 0.5)   {bi50 = i-1;}
56      if (eff[i-1] <= 0.57 && eff[i-2] >= 0.57) {bi57 = i-1;}
57      if (eff[i-1] <= 0.6 && eff[i-2] >= 0.6)   {bi60 = i-1;}
58      if (eff[i-1] <= 0.7 && eff[i-2] >= 0.7)   {bi70 = i-1;}
59      if (1/R_light[i-1] <= 0.01 && 1/R_light[i-2] >= 0.01) {bi01 = i-1;} 
60    }
61  }
62
63  double ru50  = (R_light[bi50]*(eff[bi50-1]-0.5)+R_light[bi50-1]*(0.5-eff[bi50]))/(eff[bi50-1]-eff[bi50]);
64  double ru57  = (R_light[bi57]*(eff[bi57-1]-0.57)+R_light[bi57-1]*(0.57-eff[bi57]))/(eff[bi57-1]-eff[bi57]);
65  double ru60  = (R_light[bi60]*(eff[bi60-1]-0.6)+R_light[bi60-1]*(0.6-eff[bi60]))/(eff[bi60-1]-eff[bi60]);
66  double ru70  = (R_light[bi70]*(eff[bi70-1]-0.7)+R_light[bi70-1]*(0.7-eff[bi70]))/(eff[bi70-1]-eff[bi70]);
67  double eru50 = (eR[bi50]*(eff[bi50-1]-0.5)+eR[bi50-1]*(0.5-eff[bi50]))/(eff[bi50-1]-eff[bi50]);
68  double eru57 = (eR[bi57]*(eff[bi57-1]-0.57)+eR[bi57-1]*(0.57-eff[bi57]))/(eff[bi57-1]-eff[bi57]);
69  double eru60 = (eR[bi60]*(eff[bi60-1]-0.6)+eR[bi60-1]*(0.6-eff[bi60]))/(eff[bi60-1]-eff[bi60]);
70  double eru70 = (eR[bi70]*(eff[bi70-1]-0.7)+eR[bi70-1]*(0.7-eff[bi70]))/(eff[bi70-1]-eff[bi70]);
71  cout <<" Ru(50%) = "<<ru50<<" +- "<<eru50<<" cut at "<<hipb->GetXaxis()->GetBinCenter(bi50)<<" "<<bi50<<endl;
72  cout <<" Ru(57%) = "<<ru57<<" +- "<<eru57<<" cut at "<<hipb->GetXaxis()->GetBinCenter(bi57)<<" "<<bi57<<endl;
73  cout <<" Ru(60%) = "<<ru60<<" +- "<<eru60<<" cut at "<<hipb->GetXaxis()->GetBinCenter(bi60)<<" "<<bi60<<endl;
74  cout <<" Ru(70%) = "<<ru70<<" +- "<<eru70<<" cut at "<<hipb->GetXaxis()->GetBinCenter(bi70)<<" "<<bi70<<endl;
75  //
76  double epsb01  = (eff[bi01]*(1./R_light[bi01-1]-0.01)+eff[bi01-1]*(0.01-1./R_light[bi01]))/(1./R_light[bi01-1]-1./R_light[bi01]);
77  double eepsb01 = (eeff[bi01]*(1./R_light[bi01-1]-0.01)+eeff[bi01-1]*(0.01-1./R_light[bi01]))/(1./R_light[bi01-1]-1./R_light[bi01]);
78  cout <<" epsilon_b(Ru=100) = "<<epsb01<<" +- "<<eepsb01<<" for a cut at (center) "<<hb->GetXaxis()->GetBinCenter(bi01)<<endl;
79
80
81  TGraphErrors *heffb = new TGraphErrors(nbip, eff, R_light, eeff, eR);
82  heffb->SetMarkerStyle(20);
83  heffb->SetMarkerColor(2);
84  heffb->SetMarkerSize(0.5);
85  heffb->Draw("LAP");
86
87  heffbsv->Draw("LP");
88}
Note: See TracBrowser for help on using the repository browser.