00001 TCanvas *can=0;
00002 TString ver='B';
00003
00004
00005 plWjj( int page=2,int pl=0, char *core0="R10096140", char *iPath="", char *oPath=""){
00006 iPath="./";
00007
00008 core0="sumRun9_may1";
00009
00010 core0="rcn10017_10_500evts";
00011
00012
00013
00014
00015 if(page==0) {
00016 doAll();
00017 return;
00018 }
00019
00020
00021 char *nameA[]={"WjjStatEve"};
00022 char *nameB[]={"Wjj_J1","Wjj_J2","Wjj_K1","Wjj_K6","Wjj_K5","Wjj_K3"};
00023 char *nameC[]={"Wjj_3J","Wjj_K4","Wjj_K2","Wjjphi12"};
00024 char *nameD[]={"Wjj_K1","Wjj_P1","Wjj_P2","Wjj_P4","Wjj_P3"};
00025
00026
00027
00028
00029
00030 gStyle->SetOptFit(1);
00031 TString fullInpName=iPath; fullInpName+=core0;
00032 fullInpName+=".wana.hist.root";
00033 fd=new TFile(fullInpName);
00034 if(! fd->IsOpen()) {
00035 printf("EROR: input histo file not found, quit\n",fullInpName.Data());
00036 return;
00037 } else {
00038 printf("Opened: %s\n",fullInpName.Data());
00039 }
00040 if(page==1){
00041 fd->ls();
00042 h0=(TH1*)fd->Get(ver+"WjjStatEve"); assert(h0);
00043 printf("%s: ",h0->GetName());
00044 for(int k=1;k<=h0->GetXaxis()->GetNbins();k++) printf("%.0f, ",h0->GetBinContent(k));
00045 printf("\n");
00046 }
00047 gStyle->SetPalette(1,0);
00048 gStyle->SetOptStat(0);
00049 char padTit[1000];
00050 sprintf(padTit,"%s %s",ver.Data(),core0);
00051
00052 switch (page) {
00053
00054 case 1:{
00055 can=new TCanvas("aa","aa",800,400); TPad *c=makeTitle(can,padTit,page);
00056 c->Divide(1,1);gStyle->SetOptStat(0);
00057 char **nameX=nameA;
00058 for(int i=0;i<1;i++) {
00059 printf("->%s<\n",nameX[i]);
00060 h=(TH1*)fd->Get(ver+nameX[i]); assert(h);
00061 c->cd(i+1); h->Draw(); gPad->SetTopMargin(0.2);
00062 if(i==0) h->Draw("h text");
00063 }
00064 c->GetPad(1)->SetLogy();
00065
00066 } break;
00067
00068 case 2:{
00069 can=new TCanvas("aa","aa",900,600); TPad *c=makeTitle(can,padTit,page);
00070 c->Divide(3,2);gStyle->SetOptStat(1110);
00071 char **nameX=nameB;
00072 for(int i=0;i<6;i++) {
00073 printf("->%s<\n",nameX[i]);
00074 h=(TH1*)fd->Get(ver+nameX[i]); assert(h);
00075 c->cd(i+1); h->Draw("colz");
00076 if(i==2) h->Draw();
00077 if(i==2){ h->SetAxisRange(0,180); h->SetMinimum(0.9);}
00078 if(i>=4) ((TH2F*)h)->Rebin2D();
00079 c->GetPad(i+1)->SetRightMargin(0.15);
00080 }
00081
00082 if(strstr(core0,"sumR")) c->GetPad(3)->SetLogy();
00083
00084 } break;
00085
00086
00087 case 3:{
00088 can=new TCanvas("aa","aa",700,500); TPad *c=makeTitle(can,padTit,page);
00089 c->Divide(3,2);gStyle->SetOptStat(1110);
00090 char **nameX=nameC;
00091 for(int i=0;i<4;i++) {
00092 printf("->%s<\n",nameX[i]);
00093 h=(TH1*)fd->Get(ver+nameX[i]); assert(h);
00094 c->cd(i+1);
00095 h->Draw("colz");
00096 if(i==3) h->Draw();
00097 }
00098 } break;
00099
00100 case 4:{
00101 can=new TCanvas("aa","aa",700,500); TPad *c=makeTitle(can,padTit,page);
00102 c->Divide(3,2);gStyle->SetOptStat(1110);
00103 char **nameX=nameD;
00104 for(int i=0;i<5;i++) {
00105 printf("->%s<\n",nameX[i]);
00106 h=(TH1*)fd->Get(ver+nameX[i]); assert(h);
00107 c->cd(i+1);
00108 h->Draw();
00109 if(i==3) h->Draw("colz");
00110 }
00111 } break;
00112
00113
00114
00115
00116 default:
00117 printf("page=%d NOT defined\n",page);
00118
00119 }
00120
00121 char text[100];
00122 sprintf(text,"%s%s_page%03d_%s",oPath,core0,page,ver.Data());
00123 TString tit=text;
00124 can->SetTitle(tit);
00125 can->SetName(tit);
00126
00127
00128 if(pl&1) can->Print(tit+".gif");
00129 if(pl&2) can->Print(tit+".ps");
00130
00131 }
00132
00133
00134 TPad *makeTitle(TCanvas *c,char *core, int page) {
00135 c->Range(0,0,1,1);
00136 TPad *pad0 = new TPad("pad0", "apd0",0.0,0.95,1.,1.);
00137 pad0->Draw();
00138 pad0->cd();
00139
00140 TPaveText *pt = new TPaveText(0,0.,1,1,"br");
00141 pt->Draw();
00142 TDatime dt;
00143 TString txt2=core;
00144 txt2+=", page=";
00145 txt2+=page;
00146 txt2+=", ";
00147 txt2+=dt.AsString();
00148 pt->AddText(txt2);
00149 txt2="--";
00150 pt->AddText(txt2);
00151
00152 c->cd();
00153 pad = new TPad("pad1", "apd1",0.0,0.0,1,.95);
00154 pad->Draw();
00155 return pad;
00156 }
00157
00158
00159 void doAll(){
00160 for(int i=1;i<=4;i++) {
00161 plZana(i,2);
00162 }
00163 }
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
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