00001
00002
00003
00004 void doVogel(int trig)
00005 {
00006 gSystem->Load("gamma/analysis/lib/AnaCuts");
00007
00008 AnaCuts *cuts=new AnaCuts("dAu");
00009
00010 char *gifout;
00011 Int_t nbins;
00012 TArrayD bins;
00013 TH1F *h;
00014
00015 if(trig==1){
00016 nbins=cuts->nPtBinsMB;
00017 bins=cuts->ptBinsMB;
00018 h=new TH1F("h","h",nbins,bins.GetArray());
00019 gifout="mbbincorr.gif";
00020 }
00021 else if(trig==2){
00022 nbins=cuts->nPtBinsHT1;
00023 bins=cuts->ptBinsHT1;
00024 h=new TH1F("h","h",nbins,bins.GetArray());
00025 gifout="ht1bincorr.gif";
00026 }
00027 else if(trig==3){
00028 nbins=cuts->nPtBinsHT2;
00029 bins=cuts->ptBinsHT2;
00030 h=new TH1F("h","h",nbins,bins.GetArray());
00031 gifout="ht2bincorr.gif";
00032 }
00033 else
00034 cout<<"error"<<endl;
00035
00036
00037 for(Int_t b=1;b<=nbins;b++){
00038 Float_t xmin=bins[b-1];
00039 Float_t xmax=bins[b];
00040 Float_t dpT=xmax-xmin;
00041 Float_t pT=xmin + 0.5*dpT;
00042
00043 cout<<xmin<<" "<<xmax<<" "<<dpT<<" "<<pT<<endl;
00044
00045 TF1 *fit=new TF1("fit","[0]*pow(1.+x,[1])*pow(x,[2])",1.,7.);
00046 if(trig==2) fit->SetRange(4.,10.);
00047 if(trig==3) fit->SetRange(8.,15.);
00048 fit->SetParameters(1.,-10.,0.0);
00049 fit->FixParameter(2,0.);
00050
00051 ifstream in("./pQCD.dat");
00052 Float_t x[100];
00053 Float_t y[100];
00054 Int_t i=0;
00055 while(i<28){
00056 if(!in.good()) break;
00057 in >> x[i] >> y[i];
00058 i++;
00059 }
00060
00061 TGraph *g=new TGraph(i,x,y);
00062 g->Fit("fit","QR");
00063 fit->SetRange(0.,15.);
00064 TF1 *N=new TF1(*fit);
00065 N->FixParameter(2,1.);
00066
00067
00068 Float_t ratio=fit->Eval(pT)/(N->Integral(xmin,xmax)/(pT*dpT));
00069 h->Fill(pT,ratio);
00070 }
00071
00072 h->SetBinContent(1,0);
00073 h->SetMaximum(1.2);
00074 h->SetMinimum(.6);
00075 TCanvas *c=new TCanvas("c","c",800,400);
00076 c->Divide(2,1);
00077 c->cd(1);
00078 gPad->SetLogy();
00079 g->SetMaximum(10.e+10);
00080 g->SetMinimum(1.);
00081 g->Draw("ap");
00082 g->SetMarkerStyle(8);
00083 fit->Draw("same");
00084 c->cd(2);
00085 h->Draw();
00086 h->SetLineWidth(2);
00087 c->cd(0);
00088 c->SaveAs("vogelsang.eps");
00089
00090 TCanvas *cc=new TCanvas("cc","cc",300,300);
00091 h->Draw();
00092 cc->SaveAs(gifout);
00093
00094 char *hname;
00095 if(trig==1) hname="h4mb";
00096 else if(trig==2) hname="h4ht1";
00097 else if(trig==3) hname="h4ht2";
00098 else return;
00099 TFile *outf=new TFile("bincorrections.root","UPDATE");
00100 h->Write(hname,2,0);
00101 outf->Close();
00102 }
00103
00104