00001 TCanvas *can=0;
00002
00003
00004 plZana( int page=3,int pl=0, char *core0="R10096140", char *iPath="", char *oPath=""){
00005 iPath="./";
00006 iPath="/star/data05/scratch/balewski/2009-Wana-SL09g-feb24/data/";
00007
00008 core0="run9setP1234";
00009
00010
00011
00012
00013
00014 if(page==0) {
00015 doAll();
00016 return;
00017 }
00018
00019
00020 char *nameA[]={"_Z_EventType"};
00021 char *nameB[]={"_Z_et1iso","_Z_et1val","_Z_et1frac","_Z_et2iso","_Z_et2val","_Z_et2frac"};
00022 char *nameC[]={"_Z_phi12","_Z_ZmassLike","_Z_chRecPNp","_Z_ZmassUnlike"};
00023 char *nameD[]={"muEne_Deta","_Z_Ene_Deta"};
00024
00025 gStyle->SetOptFit(1);
00026 TString fullInpName=iPath; fullInpName+=core0;
00027 fullInpName+=".wana.hist.root";
00028 fd=new TFile(fullInpName);
00029 if(! fd->IsOpen()) {
00030 printf("EROR: input histo file not found, quit\n",fullInpName.Data());
00031 return;
00032 } else {
00033 printf("Opened: %s\n",fullInpName.Data());
00034 }
00035 if(page==1){
00036 fd->ls();
00037 h0=(TH1*)fd->Get("_Z_EventType"); assert(h0);
00038 printf("%s: ",h0->GetName());
00039 for(int k=1;k<=14;k++) printf("%.0f, ",h0->GetBinContent(k));
00040 printf("\n");
00041 }
00042 gStyle->SetPalette(1,0);
00043 gStyle->SetOptStat(0);
00044 char padTit[1000];
00045 sprintf(padTit,"%s",core0);
00046
00047 switch (page) {
00048
00049 case 1:{
00050 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00051 c->Divide(1,1);gStyle->SetOptStat(0);
00052 char **nameX=nameA;
00053 for(int i=0;i<1;i++) {
00054 char txt[100];
00055 printf("->%s<\n",nameX[i]);
00056 h=(TH1*)fd->Get(nameX[i]); assert(h);
00057 c->cd(i+1); h->Draw();
00058 if(i==0) h->Draw("h text");
00059 }
00060 c->GetPad(1)->SetLogy();
00061
00062 } break;
00063
00064 case 2:{
00065 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00066 c->Divide(3,2);gStyle->SetOptStat(1110);
00067 char **nameX=nameB;
00068 for(int i=0;i<6;i++) {
00069 char txt[100];
00070 printf("->%s<\n",nameX[i]);
00071 h=(TH1*)fd->Get(nameX[i]); assert(h);
00072 c->cd(i+1); h->Draw();
00073 }
00074 c->GetPad(2)->SetLogy();
00075
00076 } break;
00077
00078
00079 case 3:{
00080 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00081
00082 c->Divide(2,2);gStyle->SetOptStat(10);
00083 char **nameX=nameC;
00084 for(int i=0;i<4;i++) {
00085 char txt[100];
00086 printf("->%s<\n",nameX[i]);
00087 h=(TH1*)fd->Get(nameX[i]); assert(h);
00088 c->cd(i+1); h->Draw();
00089 if(i==2) {
00090 h2=(TH2F*) h;
00091 h2->Rebin2D(2,2);h2->SetMaximum(3);
00092 h2->Draw("box"); h2->SetFillColor(kBlack);
00093 h3=(TH2F*)pubchRecPNp; h3->Rebin2D(2,2);
00094 h3->Draw("colz same");
00095 h2->Draw("box same");
00096 }
00097 if(i==3) {
00098
00099 h->SetAxisRange(0,130);
00100 h->Fit("gaus","","RH",75.,115.);
00101 }
00102 }
00103
00104
00105 } break;
00106
00107 case 4:{
00108 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00109 c->Divide(1,2);gStyle->SetOptStat(1110);
00110 char **nameX=nameD;
00111 for(int i=0;i<2;i++) {
00112 char txt[100];
00113 printf("->%s<\n",nameX[i]);
00114 h2=(TH2F*)fd->Get(nameX[i]); assert(h2);
00115 h2->Rebin2D(2,2);
00116 c->cd(i+1); h2->Draw("colz");
00117 }
00118
00119
00120 } break;
00121
00122 default:
00123 printf("page=%d NOT defined\n",page);
00124
00125 }
00126
00127 char text[100];
00128 sprintf(text,"%s%s_page%03d",oPath,core0,page);
00129 TString tit=text;
00130 can->SetTitle(tit);
00131 can->SetName(tit);
00132
00133
00134 if(pl&1) can->Print(tit+".gif");
00135 if(pl&2) can->Print(tit+".ps");
00136
00137 }
00138
00139
00140 void splitPadX(float x, TPad **cL, TPad **cR) {
00141 (*cL) = new TPad("padL", "apdL",0.0,0.,x,0.95);
00142 (*cL)->Draw();
00143 (*cR) = new TPad("padL", "apdL",x+0.005,0.,1.0,0.95);
00144 (*cR)->Draw();
00145 }
00146
00147
00148 TPad *makeTitle(TCanvas *c,char *core, int page) {
00149 c->Range(0,0,1,1);
00150 TPad *pad0 = new TPad("pad0", "apd0",0.0,0.95,1.,1.);
00151 pad0->Draw();
00152 pad0->cd();
00153
00154 TPaveText *pt = new TPaveText(0,0.,1,1,"br");
00155 pt->Draw();
00156 TDatime dt;
00157 TString txt2=core;
00158 txt2+=", page=";
00159 txt2+=page;
00160 txt2+=", ";
00161 txt2+=dt.AsString();
00162 pt->AddText(txt2);
00163 txt2="--";
00164 pt->AddText(txt2);
00165
00166 c->cd();
00167 pad = new TPad("pad1", "apd1",0.0,0.0,1,.95);
00168 pad->Draw();
00169 return pad;
00170 }
00171
00172
00173 void doAll(){
00174 for(int i=1;i<=4;i++) {
00175 plZana(i,2);
00176 }
00177 }
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215