00001 TCanvas *can=0;
00002
00003
00004 plPubJS( int page=1,int pl=0, char *core0="R10103042", char *iPath="", char *oPath=""){
00005
00006
00007
00008 char *iPath="/star/u/stevens4/wAnalysis/out/verB4.3/enhanceQCD/";
00009
00010
00011 core0="run9setABCD";
00012
00013
00014
00015 if(page==0) {
00016 doAll(pl);
00017 return;
00018 }
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 char *nameA[]={"JSetowEneZ1","JSetowEneZ2","JSetowEneZ3","JSetowEneZ4"};
00029 char *nameB[]={"JSetowHighPostTr","JSetowTotPostTr","JSetowHighPreNear","JSetowTotPreNear"};
00030 char *nameC[]={"JSetowHighPreAway","JSetowTotPreAway"};
00031 char *nameD[]={"JSawayNTow","JSawayNTr"};
00032
00033 char *nameE[]={"JSawayCond1","JSawayCond2"};
00034
00035 gStyle->SetOptFit(1);
00036 TString fullInpName=iPath; fullInpName+=core0;
00037 fullInpName+=".wana.hist.root";
00038 fd=new TFile(fullInpName);
00039 if(! fd->IsOpen()) {
00040 printf("EROR: input histo file not found, quit\n",fullInpName.Data());
00041 return;
00042 } else {
00043 printf("Opened: %s\n",fullInpName.Data());
00044 }
00045
00046 TLine *ln; TList *Lx;
00047
00048 gStyle->SetPalette(1,0);
00049
00050 char padTit[1000];
00051 sprintf(padTit,"%s",core0);
00052
00053 switch (page) {
00054
00055 case 1:{ sprintf(padTit,"ETOW Gain Study I, %s",core0);
00056 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00057 c->Divide(2,2);gStyle->SetOptStat(1);
00058 char **nameX=nameA;
00059 for(int i=0;i<4;i++) {
00060 char txt[100]; int xInt=0;
00061 printf("->%s<\n",nameX[i]);
00062 h=(TH1*)fd->Get(nameX[i]); assert(h);
00063 TAxis* axX=h->GetXaxis(); int nbX=axX->GetNbins();
00064 float entries= h->GetEntries();
00065 for(int j=nbX; j>0; j--){
00066 xInt += h->GetBinContent(j);
00067
00068 if(xInt > 0.0005*entries)
00069 {float bin=j; break;}
00070 }
00071 cout<<i+1<<" 0.01% of counts in energy = "<<bin/10<<" bin"<<endl;
00072 Lx=h->GetListOfFunctions();
00073 ln=new TLine(bin/10,0,bin/10,1.e6); ln->SetLineColor(kRed); Lx->Add(ln);
00074
00075 c->cd(i+1); h->Draw();
00076 c->GetPad(i+1)->SetLogy();
00077 }
00078
00079 } break;
00080
00081 case 2:{ sprintf(padTit,"ETOW Gain Study II, %s",core0);
00082 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00083 gStyle->SetOptStat(0); int entries=0;
00084 leg = new TLegend(0.6,0.7,.9,.9);
00085 leg->SetHeader("Z vertex range (cm)");
00086 char **nameX=nameA;
00087 for(int i=0;i<4;i++) {
00088 char txt[100]; string entry;
00089 printf("->%s<\n",nameX[i]);
00090 h=(TH1*)fd->Get(nameX[i]); assert(h);
00091 h->Rebin(10);
00092 if(i==0) entry="[-100,-50]"; if(i==1) entry="[-50,0]";
00093 if(i==2) {entry="[0,50]"; h->SetLineStyle(2);}
00094 if(i==3) {entry="[50,100]"; h->SetLineStyle(2);}
00095
00096 if(i==0) {h->Draw(); entries=h->GetEntries(); gPad->SetLogy(); h->SetTitle("Normalized Endcap Tower E");}
00097 else { h->SetLineColor(i+1); h->DrawNormalized("same",entries);}
00098 leg->AddEntry(h,Form("%s",entry),"l");
00099 }
00100 leg->Draw();
00101 } break;
00102
00103 case 3:{ sprintf(padTit,"Beam Background I, %s",core0);
00104 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00105 c->Divide(2,2); gStyle->SetOptStat(10);
00106 char **nameX=nameB;
00107 for(int i=0;i<4;i++) {
00108 char txt[100];
00109 printf("->%s<\n",nameX[i]);
00110 h=(TH1*)fd->Get(nameX[i]); assert(h);
00111 c->cd(i+1); h->Draw("colz");
00112 }
00113 } break;
00114
00115 case 4:{ sprintf(padTit,"Beam Background II, %s",core0);
00116 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00117 c->Divide(2,2); gStyle->SetOptStat(10);
00118 char **nameX=nameC;
00119 for(int i=0;i<2;i++) {
00120 char txt[100];
00121 printf("->%s<\n",nameX[i]);
00122 h=(TH1*)fd->Get(nameX[i]); assert(h);
00123 c->cd(i+1); h->Draw("colz");
00124 }
00125 } break;
00126
00127 case 5:{ sprintf(padTit,"Away Side Counters, %s",core0);
00128 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00129 c->Divide(2,1);
00130 char **nameX=nameD;
00131 for(int i=0;i<2;i++) {
00132 char txt[100];
00133 printf("->%s<\n",nameX[i]);
00134 h=(TH1*)fd->Get(nameX[i]); assert(h);
00135 c->cd(i+1); h->Draw();
00136 c->GetPad(i+1)->SetLogy();
00137 }
00138 } break;
00139
00140 case 6:{ sprintf(padTit,"Away Side Conditions, %s",core0);
00141 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00142 c->Divide(2,2);
00143 char **nameX=nameE;
00144 for(int i=0;i<2;i++) {
00145 char txt[100];
00146 printf("->%s<\n",nameX[i]);
00147 h=(TH1*)fd->Get(nameX[i]); assert(h);
00148 c->cd(i+1); h->Draw();
00149 }
00150 } break;
00151
00152
00153
00154 default:
00155 printf("page=%d NOT defined\n",page);
00156 return;
00157 }
00158
00159 char text[100];
00160 sprintf(text,"%s%s_page%03d",oPath,core0,page);
00161 TString tit=text;
00162 can->SetTitle(tit);
00163 can->SetName(tit);
00164
00165
00166 if(pl&1) can->Print(tit+".gif");
00167 if(pl&2) can->Print(tit+".ps");
00168
00169 }
00170
00171
00172 TPad *makeTitle(TCanvas *c,char *core, int page) {
00173
00174 c->Range(0,0,1,1);
00175 TPad *pad0 = new TPad("pad0", "apd0",0.0,0.95,1.,1.);
00176 pad0->Draw();
00177 pad0->cd();
00178
00179 TPaveText *pt = new TPaveText(0,0.,1,1,"br");
00180 pt->Draw();
00181 TDatime dt;
00182 TString txt2=core;
00183 txt2+=", page=";
00184 txt2+=page;
00185 txt2+=", ";
00186 txt2+=dt.AsString();
00187 pt->AddText(txt2);
00188 txt2="--";
00189 pt->AddText(txt2);
00190
00191 c->cd();
00192 pad = new TPad("pad1", "apd1",0.0,0.0,1,.95);
00193 pad->Draw();
00194 return pad;
00195 }
00196
00197
00198 void doAll(int pl){
00199 for(int i=1;i<=4;i++) {
00200
00201 plPubJS(i,pl);
00202 }
00203 }
00204
00205
00206
00207
00208
00209
00210