00001 const int mxGr=3;
00002 TGraphErrors * grL[mxGr];
00003
00004 const int nObs=3;
00005 char *obsL[nObs]={ "A_n", "A_s", "A_d"};
00006
00007
00008 compSelection() {
00009 gStyle->SetOptStat(0);
00010 gStyle->SetOptFit(0);
00011
00012 TString wrkDir="final/";
00013 const int nSel=11;
00014 char *selL[nSel]={ "defaultB-H/", "default-H/", "maxEta1.4-H/", "highPol-H/", "nPrim5_20-H/","zVert50-H/", "pT1_3-H/", "posCharge-H/","shiftPatt-H/","swapPatt-H/","randPatt-H/" };
00015
00016 createTgr();
00017
00018 int isel;
00019 for (isel=0;isel<nSel;isel++) {
00020 TString fname=wrkDir+selL[isel]+"endVer1.hist.root";
00021
00022 TFile *inpH=new TFile(fname);
00023 assert(inpH->IsOpen());
00024 inpH->ls();
00025 int io;
00026 for (io=0;io<nObs;io++) {
00027 char name[100];
00028 sprintf(name,"%s*EtaBF",obsL[io]);
00029 TGraphErrors *gr =(TGraphErrors *) inpH->Get(name);
00030 assert(gr);
00031 gr->Print();
00032 sprintf(name,"avr%s*EtaBF",obsL[io]);
00033 TF1 *ff=gr->GetFunction(name);
00034 if(ff==0) continue;
00035 float val=ff->GetParameter(0);
00036 float err=ff->GetParError(0);
00037 printf("pol0= %f +/- %f\n",val,err);
00038 TGraphErrors * grOut=grL[io];
00039 int n=grOut->GetN();
00040 float x=isel+1;
00041 grOut->SetPoint(n,x,val);
00042 grOut->SetPointError(n,0,err);
00043 }
00044 }
00045
00046 grL[0]->Print();
00047
00048
00049 c=new TCanvas("aa","aa" ,800,800);
00050 c->Divide(3,1);
00051 TLine *ln0=new TLine(0,0.,12,0.);
00052
00053 int it;
00054 for (it=0;it<mxGr;it++) {
00055 TGraphErrors * gr=grL[it];
00056 int n=gr->GetN();
00057 printf("\nit=%d name='%s', N=%d\n",it,gr->GetName(),n);
00058
00059 if(n<=0) continue;
00060 c->cd(1+it);
00061 gr->Draw("AP");
00062
00063
00064 TAxis *ax=gr->GetXaxis();
00065 ax->SetTitle("choice of event selection");
00066 ln0->Draw();
00067 ln0->SetLineStyle(3);
00068 }
00069
00070
00071 TString fname=wrkDir+"compCuts.hist.root";
00072 TFile *outH=new TFile(fname,"RECREATE");
00073 assert(outH->IsOpen());
00074 printf("save outH -->%s\n", fname.Data());
00075 outH->cd();
00076 for (it=0;it<mxGr;it++) {
00077 grL[it]->Write();
00078 }
00079
00080 outH->ls();
00081 outH->Write();
00082 }
00083
00084
00085
00086
00087 void createTgr() {
00088 char *obsT[nObs]={ "An", "A#Sigma", "A#Delta"};
00089
00090
00091 int io;
00092 for (io=0;io<nObs;io++) {
00093 char name[100];
00094 sprintf(name,"%s",obsL[io]);
00095
00096 TGraphErrors *gr =new TGraphErrors;
00097 gr->SetName(name);
00098 gr->SetTitle(obsT[io]);
00099
00100 gr->SetMarkerSize(0.8);
00101 gr->SetMarkerStyle(21);
00102 grL[io]=gr;
00103 }
00104 }
00105
00106