00001 void doBsmdSpreadRatio(char *f_100,char *f_110,char *f_90){
00002
00003 gStyle->SetErrorX(0);
00004
00005 TFile *f_nom=new TFile(f_100,"OPEN");
00006 TH1F *h_effHT2=f_nom->Get("h_effHT2");
00007 TH1F *h_effDHT2=f_nom->Get("h_effDaughtersHT2");
00008 h_effHT2->Divide(h_effDHT2);
00009
00010 TFile *f_plus=new TFile(f_110,"OPEN");
00011 TH1F *h_effHT2_plus=f_plus->Get("h_effHT2");
00012 TH1F *h_effDHT2_plus=f_plus->Get("h_effDaughtersHT2");
00013 h_effHT2_plus->Divide(h_effDHT2_plus);
00014
00015 TFile *f_min=new TFile(f_90,"OPEN");
00016 TH1F *h_effHT2_min=f_min->Get("h_effHT2");
00017 TH1F *h_effDHT2_min=f_min->Get("h_effDaughtersHT2");
00018 h_effHT2_min->Divide(h_effDHT2_min);
00019
00020
00021 h_effHT2_plus->Divide(h_effHT2);
00022 h_effHT2_min->Divide(h_effHT2);
00023
00024
00025 TF1 *sub=new TF1("sub","1.",0.,20.);
00026 h_effHT2_plus->Add(sub,-1.);
00027 h_effHT2_min->Add(sub,-1.);
00028
00029 TGraphErrors *gHT2_plus=new TGraphErrors(h_effHT2_plus);
00030 gHT2_plus->SetName("gHT2_plus");
00031 TGraphErrors *gHT2_min=new TGraphErrors(h_effHT2_min);
00032 gHT2_min->SetName("gHT2_min");
00033
00034 TCanvas *c=new TCanvas("c","c",400,250);
00035 TMultiGraph *m=new TMultiGraph();
00036 TMultiGraph *mm=new TMultiGraph();
00037
00038 gHT2_plus->SetLineColor(2);
00039 gHT2_min->SetLineColor(2);
00040
00041 gHT2_plus->RemovePoint(0);
00042 gHT2_plus->RemovePoint(0);
00043 gHT2_plus->RemovePoint(0);
00044 gHT2_plus->RemovePoint(0);
00045 gHT2_plus->RemovePoint(0);
00046 gHT2_plus->RemovePoint(0);
00047
00048 gHT2_min->RemovePoint(0);
00049 gHT2_min->RemovePoint(0);
00050 gHT2_min->RemovePoint(0);
00051 gHT2_min->RemovePoint(0);
00052 gHT2_min->RemovePoint(0);
00053 gHT2_min->RemovePoint(0);
00054
00055 TF1 *fit=new TF1("fit","[0]",1.,15.);
00056
00057 TF1 *fit2=new TF1("fit2","[0]",1.,15.);
00058
00059
00060
00061 m->Add(gHT2_plus);
00062 m->Fit(fit,"R0");
00063
00064 mm->Add(gHT2_min);
00065 mm->Fit(fit2,"R0");
00066
00067 m->Add(gHT2_min);
00068
00069 m->SetMinimum(-1.);
00070 m->SetMaximum(1.);
00071
00072 m->Draw("ap");
00073 fit->Draw("same");
00074 fit2->Draw("same");
00075
00076 TLegend *leg=new TLegend(0.5,0.5,0.7,0.7);
00077 leg->AddEntry(gHT2_plus,"BSMD gain spread 30%","p");
00078 leg->AddEntry(gHT2_min,"BSMD gain spread 10%","p");
00079 leg->Draw();
00080
00081 c->SaveAs("bsmd_spread_ratio_pp.eps");
00082 c->SaveAs("bsmd_spread_ratio_pp.root");
00083
00084 }