00001 TCanvas *can=0;
00002 const float PI=2*acos(0);
00003 TString spinPre='A';
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 plEana( int page=0,int pl=0, char *core0="", char *iPath="", char *oPath=""){
00014
00015 if(page==0) {
00016 doAll(core0,iPath);
00017 return;
00018 }
00019 if(page==-1) {
00020 doAllMC();
00021 return;
00022 }
00023
00024
00025
00026
00027
00028
00029 char *nameA[]={"muEStatEve","muEStatTrk"};
00030 char *nameB[]={"muEVRf","muEZv","muENV","muEbX48"};
00031 char *nameC[]={"muEbX7","muEbX7v"};
00032 char *nameD[]={"muEDsm1","muEDsm2","muEDsm3","muEDsm4"};
00033 char *nameE[]={"muETrNfit","muETrFitFrac","muETrch2","muETrRxyIn","muETrRxyOut","muETrch2b"};
00034 char *nameF[]={"muETr2D1","muETrPt1","muETrPt1N","muETrPt1Pr","muETrPt1NPr"};
00035 char *nameG[]={"muEeXY","muEmaxAdc","muEtotAdc","muEclAdcPt","muEclET"};
00036 char *nameH[]={"muEclET24","muEclE242D","muEclET24R"};
00037
00038 char *nameJ[]={"muEdist1","muEdist2","muEdist3","muEdist4"};
00039 char *nameK[]={"muETEMCjetETR","muETjetEMCjet2D","muETEMCjetET"};
00040 char *nameL[]={"muEEMCjetET","muEclEMCjetE2D","muETjetET"};
00041 char *nameM[]={"muETwayET","muEBwayET","muEEclETPt","muEEwayET"};
00042
00043 char *nameW[]={"muETotwayET2D","muEsPtBalance_clust","muE_WET","muE_W2D1"};
00044 char *namePB[]={"muEsPtBalance_clust", "muEsPtBalance_awayTot","muE_Weta","muE_WXY"};
00045
00046 char *nameN[]={"muETrdEdX","muE_Wdedx"};
00047 char *nameO[]={"muE_WglDca","muE_WglDcaSP","muE_WglDcaSN"};
00048
00049 char *nameP[]={"muE_ETlive0","muE_ETlive1","muE_ETlive2","muE_ETlive3","muE_Wcar1","muE_Wcar2","muE_Wcar3"};
00050
00051
00052
00053 char *nameS1[]={"spinStatEve","spins4mon","spinbX48","spinbX7","spinbX48c","spinbX7c"};
00054 char *nameS5[]={"spinET_P","spinET_N","spinQpT","spinQpT2"};
00055 char *nameS2[]={"spinY0","spinY1","spinY2_P","spinY2_N"};
00056 char *nameS3[]={,"spinY3_P","spinY3_N","spinY4_P","spinY4_N"};
00057 char *nameS4[]={"spinY5_P","spinY5_N","spinLepEta"};
00058
00059 char *nameEsmd1[]={"muWEsmdNhitUV","muBEsmdNhitUV","muWEsmdEUV","muBEsmdEUV","muWEsmdSumE_clET","muBEsmdSumE_clET"};
00060 char *nameEsmd2[]={"muWEsmdE41_7U","muBEsmdE41_7U","muWEsmdE41_7V","muBEsmdE41_7V","muWEsmdEUVratio_clET","muBEsmdEUVratio_clET"};
00061 char *nameEprs[]={"muWEpre2_clET","muBEpre2_clET","muWEpost_clET","muBEpost_clET","muWEpreSum_smdSumE","muBEpreSum_smdSumE"};
00062
00063
00064
00065 gStyle->SetOptFit(1);
00066 TString fullInpName=iPath; fullInpName+=core0;
00067 fullInpName+=".wana.hist.root";
00068 fd=new TFile(fullInpName);
00069 if(! fd->IsOpen()) {
00070 printf("EROR: input histo file not found, quit\n",fullInpName.Data());
00071 return;
00072 } else {
00073 printf("Opened: %s\n",fullInpName.Data());
00074 }
00075 if(page==1){
00076
00077 h0=(TH1*)fd->Get("muStatEve"); assert(h0);
00078 printf("%s: ",h0->GetName());
00079 for(int k=1;k<=10;k++) printf("%.0f, ",h0->GetBinContent(k));
00080 printf("\n");
00081 }
00082 if(page>=23 && page<=25 && fd->Get("AspinStatEve")==0) return;
00083
00084 gStyle->SetPalette(1,0);
00085 gStyle->SetOptStat(0);
00086 char padTit[1000];
00087 sprintf(padTit,"%s",core0);
00088
00089 switch (page) {
00090
00091 case 1:{
00092 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00093 c->Divide(1,2);gStyle->SetOptStat(0);
00094 char **nameX=nameA;
00095 for(int i=0;i<2;i++) {
00096 printf("->%s<\n",nameX[i]);
00097 h=(TH1*)fd->Get(nameX[i]); assert(h);
00098 c->cd(i+1); h->Draw();
00099 if(i==0) h->Draw("h text");
00100 }
00101 c->GetPad(1)->SetLogy();
00102 c->GetPad(2)->SetLogy();
00103 } break;
00104
00105 case 2:{
00106 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00107 c->Divide(2,2);gStyle->SetOptStat(1110);
00108 char **nameX=nameB;
00109 for(int i=0;i<4;i++) {
00110 printf("->%s<\n",nameX[i]);
00111 h=(TH1*)fd->Get(nameX[i]); assert(h);
00112 c->cd(i+1); h->Draw();
00113 if(i==1) h->Fit("gaus","","hR",-50,50);
00114 }
00115 c->GetPad(1)->SetLogy();
00116 c->GetPad(3)->SetLogy();
00117 } break;
00118
00119
00120 case 3:{
00121 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00122 c->Divide(1,2);gStyle->SetOptStat(10);
00123 char **nameX=nameC;
00124 TH1F *hA[2];
00125 c->cd(1);
00126 for(int i=0;i<2;i++) {
00127 printf("->%s<\n",nameX[i]);
00128 hA[i]=(TH1F*)fd->Get(nameX[i]); assert(hA[i]);
00129 if(i==0) hA[i]->Draw();
00130 else hA[i]->Draw("same");
00131
00132 }
00133
00134
00135 hA[0]->SetFillColor(0);
00136
00137 TH1 *hEf=(TH1F*) hA[1]->Clone();
00138 hEf->SetTitle("Vertex effi vs. bXing");
00139 hEf->SetName("muVefbx");
00140 hEf->SetFillColor(0); hEf->SetLineColor(kMagenta);
00141 hEf->Divide(hA[0]);
00142 c->cd(2);
00143 hEf->Draw(); hEf->SetMaximum(1.1);
00144 hEf->Fit("pol0","","Rh",50,100);
00145
00146 } break;
00147
00148 case 4:{
00149 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00150 c->Divide(2,2);gStyle->SetOptStat(1001111);
00151 char **nameX=nameD;
00152 for(int i=0;i<4;i++) {
00153 printf("->%s<\n",nameX[i]);
00154 h=(TH1*)fd->Get(nameX[i]); assert(h);
00155 c->cd(i+1); h->Draw();
00156 if(i==3) {
00157 h->SetFillColor(kBlue);
00158 c->cd(3);
00159 h->Draw("same");
00160 }
00161 }
00162 c->GetPad(1)->SetLogy();
00163 c->GetPad(2)->SetLogy();
00164 c->GetPad(3)->SetLogy();
00165 } break;
00166
00167 case 5:{ sprintf(padTit,"Track selection cuts, %s",core0);
00168 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00169 c->Divide(3,2);gStyle->SetOptStat(110);
00170 char **nameX=nameE;
00171 for(int i=0;i<6;i++) {
00172 printf("->%s<\n",nameX[i]);
00173 h=(TH1*)fd->Get(nameX[i]); assert(h);
00174 c->cd(i+1); h->Draw();
00175 if(i==5) h->Draw("colz");
00176 }
00177
00178 } break;
00179
00180
00181
00182
00183 case 6:{ sprintf(padTit,"Selected high PT tracks, %s",core0);
00184 can=new TCanvas("aa","aa",800,600); TPad *c0=makeTitle(can,padTit,page);
00185 TPad *cL,*cR; splitPadX(0.4,&cL,&cR);
00186 cR->cd();
00187 cR->Divide(2,2);gStyle->SetOptStat(10);
00188 char **nameX=nameF;
00189 TH1F *h1,*h2;
00190 for(int i=0;i<5;i++) {
00191 printf("->%s<\n",nameX[i]);
00192 h=(TH1*)fd->Get(nameX[i]); assert(h);
00193 if(i==0) { cL->cd();
00194 h->Draw("colz");
00195 for( float eta=-0.8; eta<.6; eta+=1.4)
00196 for(float x=-PI-.1; x<PI; x+=PI/6) {
00197 int sec=tpcSec(x, eta);;
00198 char txt[100];
00199 sprintf(txt,"sec %d",sec);
00200 tx=new TText(eta,x,txt); tx->Draw();
00201 }
00202 }
00203
00204 if(i==1 || i==3) {cR->cd(1+i/2); h1=h; h->Draw(); h->SetMinimum(.1);}
00205 if(i==4) h->SetFillColor(9);
00206 if(i==2 || i==4) { h2=h; h->Draw("same"); cR->cd(2+i/2);
00207 h=(TH1F*) h2->Clone(); h->SetTitle("Ratio Negtive/all");h->Divide(h1); h->Draw();
00208 h->SetMinimum(0.2); h->SetMaximum(0.7);
00209 }
00210 if(i>0) h->SetAxisRange(0,50);
00211 }
00212 cR->GetPad(1)->SetLogy();
00213 cR->GetPad(2)->SetLogy();
00214 } break;
00215
00216 case 7:{ sprintf(padTit,"ETOW response, %s",core0);
00217 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00218 c->Divide(3,2);gStyle->SetOptStat(1000110);
00219 char **nameX=nameG;
00220 for(int i=0;i<5;i++) {
00221 printf("->%s<\n",nameX[i]);
00222 h=(TH1*)fd->Get(nameX[i]); assert(h);
00223 c->cd(i+1); h->Draw();
00224 if(i==3 || i==0) h->Draw("colz");
00225 if(i==3) h->SetMaximum(0.6* h->GetMaximum());
00226 }
00227 c->GetPad(2)->SetLogy();
00228 c->GetPad(3)->SetLogy();
00229
00230 c->GetPad(5)->SetLogy();
00231 } break;
00232
00233 case 8:{ sprintf(padTit,"2x1 / 4x4 cluster isolation cut, %s",core0);
00234 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00235 c->Divide(2,2);gStyle->SetOptStat(10);
00236 char **nameX=nameH;
00237 for(int i=0;i<3;i++) {
00238 printf("->%s<\n",nameX[i]);
00239 h=(TH1*)fd->Get(nameX[i]); assert(h);
00240 c->cd(i+1); h->Draw();
00241 if(i==1 ) h->Draw("colz");
00242 }
00243 c->GetPad(1)->SetLogy();
00244 c->GetPad(2)->SetLogz();
00245 } break;
00246
00247 case 9:{ sprintf(padTit,"3D distance between track & cluster, %s",core0);
00248 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00249 c->Divide(2,2);gStyle->SetOptStat(10);
00250 char **nameX=nameJ;
00251 for(int i=0;i<4;i++) {
00252 printf("->%s<\n",nameX[i]);
00253 h=(TH1*)fd->Get(nameX[i]); assert(h);
00254 c->cd(i+1);
00255 if(i==3) h->Draw();
00256 else h->Draw("colz");
00257 }
00258 } break;
00259
00260 case 10:{ sprintf(padTit,"separted near jet in BOW & TPC, %s",core0);
00261 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00262 c->Divide(2,2);gStyle->SetOptStat(10);
00263 char **nameX=nameL;
00264 for(int i=0;i<3;i++) {
00265 printf("->%s<\n",nameX[i]);
00266 h=(TH1*)fd->Get(nameX[i]); assert(h);
00267 c->cd(i+1); h->Draw();
00268 if(i==1 ) h->Draw("colz");
00269 }
00270 c->GetPad(1)->SetLogy();
00271 c->GetPad(2)->SetLogz();
00272 c->GetPad(3)->SetLogy();
00273 } break;
00274
00275
00276 case 11:{ sprintf(padTit,"TPC+BTOW near jet ET, %s",core0);
00277 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00278 c->Divide(2,2);gStyle->SetOptStat(10);
00279 char **nameX=nameK;
00280 for(int i=0;i<3;i++) {
00281 printf("->%s<\n",nameX[i]);
00282 h=(TH1*)fd->Get(nameX[i]); assert(h);
00283 c->cd(i+1); h->Draw();
00284 if(i==1 ) h->Draw("colz");
00285 }
00286
00287 c->GetPad(2)->SetLogz();
00288
00289 } break;
00290
00291 case 12:{ sprintf(padTit,"away ET veto, %s",core0);
00292 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00293 c->Divide(2,2);gStyle->SetOptStat(10);
00294 char **nameX=nameM;
00295 for(int i=0;i<4;i++) {
00296 printf("->%s<\n",nameX[i]);
00297 h=(TH1*)fd->Get(nameX[i]); assert(h);
00298 c->cd(i+1); h->Draw();
00299 if(i==2) h->SetAxisRange(0,60);
00300 if(i==2 ){
00301 h->Draw("colz");
00302 }
00303 }
00304 c->GetPad(1)->SetLogy();
00305 c->GetPad(2)->SetLogy();
00306 c->GetPad(4)->SetLogy();
00307
00308 } break;
00309
00310
00311 case 13:{ sprintf(padTit,"best W selection, %s",core0);
00312 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00313 c->Divide(2,2);gStyle->SetOptStat(10);
00314 char **nameX=nameW;
00315 for(int i=0;i<4;i++) {
00316 char txt[100];
00317 printf("->%s<\n",nameX[i]);
00318 h=(TH1*)fd->Get(nameX[i]); assert(h);
00319 if(i==3) {
00320 float sum=h->GetEntries();
00321 sprintf(txt,"%.0f eve >thres",sum);
00322 tx=new TText(30,55,txt); tx->Draw();
00323 }
00324
00325 c->cd(i+1); h->Draw();
00326 if(i<3) h->SetAxisRange(0,60);
00327 if(i!=2 ) h->Draw("colz");
00328 if(i==0 ) h->SetAxisRange(0,60,"y");
00329 if(i==1 ) {h->SetAxisRange(0,60,"x");h->SetAxisRange(-40,60,"y");}
00330 if(i==2 ) {
00331 h->Draw("eh"); h->SetAxisRange(0,60);
00332
00333 }
00334 }
00335
00336 } break;
00337
00338 case 14: { sprintf(padTit,"pT-Balance plots (out of order) %s",core0);
00339 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00340 c->Divide(2,2);gStyle->SetOptStat(10);
00341 char **nameX=namePB;
00342 for(int i=0;i<4;i++) {
00343 printf("->%s<\n",nameX[i]);
00344 h=(TH1*)fd->Get(nameX[i]); assert(h);
00345 c->cd(i+1);
00346 if(i<2) h->Draw("colz");
00347 else h->Draw();
00348 if(i==2) h->Rebin(4);
00349 if(i==3) h->Draw("colz");
00350 }
00351
00352 } break;
00353
00354
00355 case 15:{ sprintf(padTit,"BSMD raw spectra, %s",core0);
00356 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00357 c->Divide(1,2);gStyle->SetOptStat(10);
00358 char **nameX=nameB1;
00359 for(int i=0;i<2;i++) {
00360 printf("->%s<\n",nameX[i]);
00361 h=(TH1*)fd->Get(nameX[i]); assert(h);
00362 c->cd(i+1); h->Draw();
00363 }
00364 c->GetPad(1)->SetLogy();
00365 c->GetPad(2)->SetLogy();
00366
00367 } break;
00368
00369 case 16:{ sprintf(padTit,"TPC dEdx for all & W tracks, %s",core0);
00370 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00371 c->Divide(2,1);gStyle->SetOptStat(10);
00372 char **nameX=nameN;
00373 for(int i=0;i<2;i++) {
00374 printf("->%s<\n",nameX[i]);
00375 h=(TH1*)fd->Get(nameX[i]); assert(h);
00376 c->cd(i+1); h->Draw("colz");
00377 }
00378 c->GetPad(1)->SetLogz();
00379 } break;
00380
00381 case 17:{ sprintf(padTit,"TPC global DCA to Vertex for W tracks, %s",core0);
00382 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00383 c->Divide(2,2);gStyle->SetOptStat(10);
00384 char **nameX=nameO;
00385 for(int i=0;i<3;i++) {
00386 printf("->%s<\n",nameX[i]);
00387 h=(TH1*)fd->Get(nameX[i]); assert(h);
00388 c->cd(i+1); h->Draw("colz");
00389 h->SetAxisRange(0,60); h->SetAxisRange(-2.,2.,"y");
00390 }
00391 } break;
00392
00393
00394
00395 case 18:{ sprintf(padTit,"electron candidate ET vs. condition, %s",core0);
00396 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00397 gStyle->SetOptStat(10);
00398 char **nameX=nameP;
00399 c->cd(); TPad *cL,*cR; splitPadX(0.5,&cL,&cR);
00400 cL->cd(); cR->Divide(1,3);
00401 for(int i=0;i<7;i++) {
00402 printf("->%s<\n",nameX[i]);
00403 h=(TH1*)fd->Get(nameX[i]); assert(h);
00404 if(i==0) { h->Draw(); h->SetAxisRange(0,60);}
00405 if(i>0 && i<4) h->Draw("same");
00406 if(i==1) h->SetFillColor(kBlue);
00407 if(i==2) h->SetFillColor(8);
00408 if(i==3) h->SetFillColor(kRed);
00409 if(i==4) { cR->cd(1); h->Draw(); h->SetAxisRange(0,5); }
00410 if(i==5) { cR->cd(2); h->Draw();}
00411 if(i==6) { cR->cd(3); h->Draw(); h->Fit("gaus","","Rh",-100,80); h->GetXaxis()->SetTitle("Z (cm)");}
00412 if(i>3) {
00413 h->GetXaxis()->SetTitleOffset(0.9);
00414 h->GetXaxis()->SetLabelSize(0.06); h->GetXaxis()->SetTitleSize(0.05); h->SetMinimum(0.8);}
00415
00416 }
00417 cL->GetPad(0)->SetLogy();
00418 cR->GetPad(1)->SetLogy();
00419
00420 } break;
00421
00422 case 19:{ sprintf(padTit,"Background study for Joe, %s",core0);
00423 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00424 c->Divide(3,3);gStyle->SetOptStat(10);
00425 char **nameX=nameQ;
00426 for(int i=0;i<8;i++) {
00427 printf("->%s<\n",nameX[i]);
00428 h=(TH1*)fd->Get(nameX[i]); assert(h);
00429 c->cd(i+1); h->Draw();
00430 h->SetFillColor(30+i*5);
00431 if(i==7) h->Draw("colz");
00432 }
00433 c->GetPad(1)->SetLogy();
00434 } break;
00435
00436
00437 case 20:{ sprintf(padTit,"pub-maker misc, %s",core0);
00438 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00439 c->Divide(2,2);gStyle->SetOptStat(10);
00440 char **nameX=nameR1;
00441 for(int i=0;i<3;i++) {
00442 printf("->%s<\n",nameX[i]);
00443 h=(TH1*)fd->Get(nameX[i]); assert(h);
00444 if(i==4) {
00445 h->Draw("same e");
00446 break;
00447 }
00448 c->cd(i+1); h->Draw();
00449 if(i==1) h->Draw("colz");
00450 if(i==0) h->Draw("h text");
00451 }
00452 c->GetPad(2)->SetLogz();
00453 c->GetPad(1)->SetLogy();
00454 } break;
00455
00456
00457 case 21:{ sprintf(padTit,"charge separation, %s",core0);
00458 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00459 c->Divide(2,1);gStyle->SetOptStat(10);
00460 char **nameX=nameR2;
00461 for(int i=0;i<2;i++) {
00462 printf("->%s<\n",nameX[i]);
00463 h=(TH1*)fd->Get(nameX[i]); assert(h);
00464 c->cd(i+1); h->Draw("colz");
00465 }
00466 } break;
00467
00468
00469 case 22:{ sprintf(padTit,"charge separation, %s",core0);
00470 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00471 c->Divide(3,2);gStyle->SetOptStat(10);
00472 char **nameX=nameR3;
00473 for(int i=0;i<6;i++) {
00474 printf("->%s<\n",nameX[i]);
00475 h=(TH1*)fd->Get(nameX[i]); assert(h);
00476 c->cd(i+1); h->Draw();
00477 }
00478 } break;
00479
00480
00481
00482 case 23:{ sprintf(padTit,"bXing & spin QA, %s",core0);
00483 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,spinPre+padTit,page);
00484 c->Divide(2,3);gStyle->SetOptStat(1000010);
00485 char **nameX=nameS1;
00486 for(int i=0;i<6;i++) {
00487 printf("->%s<\n",nameX[i]);
00488 h=(TH1*)fd->Get(spinPre+nameX[i]); assert(h);
00489 c->cd(i+1); h->Draw();
00490 if(i==1) { h->Draw("colz");}
00491 }
00492 c->GetPad(1)->SetLogy();
00493
00494 } break;
00495
00496
00497 case 24:{ sprintf(padTit,"Final Ws for spin analysis, %s",core0);
00498 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,spinPre+padTit,page);
00499 c->Divide(2,2);gStyle->SetOptStat(10);
00500 char **nameX=nameS5;
00501 for(int i=0;i<4;i++) {
00502 printf("->%s<\n",nameX[i]);
00503 h=(TH1*)fd->Get(spinPre+nameX[i]); assert(h);
00504 c->cd(i+1); h->Draw();
00505 if(i==2) { hx=(TH1*) h->Clone(); h->SetFillColor(9); hx->SetFillColor(46);
00506 hx->SetAxisRange(0,1); hx->Draw("same");
00507 }
00508
00509 if(i==3) { h->Draw("colz"); ((TH2F*)h)->Rebin2D(1,2);}
00510 if(i<2) h->Rebin();
00511 if(i<2||i==3) h->SetAxisRange(0,70);
00512 gPad->SetGrid(0,0);
00513 }
00514 } break;
00515
00516
00517 #if 0
00518
00519 case 25:
00520 case 26:
00521 { sprintf(padTit,"spin sorting: lumi & Ws, %s",core0);
00522 char **nameX=nameS2;
00523 if(page==26) { nameX=nameS3;sprintf(padTit,"spin sorting: QCD background, %s",core0);}
00524 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,spinPre+padTit,page);
00525 c->Divide(2,2);gStyle->SetOptStat(1000010);
00526
00527 for(int i=0;i<4;i++) {
00528 printf("->%s<\n",nameX[i]);
00529 h=(TH1*)fd->Get(spinPre+nameX[i]); assert(h);
00530 c->cd(i+1); h->Draw("h text");
00531 }
00532 } break;
00533
00534 case 27:{ sprintf(padTit,"charge & ET vs. spin state, %s",core0);
00535 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,spinPre+padTit,page);
00536 c->Divide(2,2);gStyle->SetOptStat(10);
00537 char **nameX=nameS4;
00538 for(int i=0;i<3;i++) {
00539 printf("->%s<\n",nameX[i]);
00540 h=(TH1*)fd->Get(spinPre+nameX[i]); assert(h);
00541 c->cd(i+1); h->Draw("colz");
00542 if(i==2) h->Draw();
00543 }
00544 } break;
00545 #endif
00546
00547 case 27:{ sprintf(padTit,"ESMD 1, %s",core0);
00548 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00549 c->Divide(2,3);gStyle->SetOptStat(10);
00550 char **nameX=nameEsmd1;
00551 for(int i=0;i<6;i++) {
00552 printf("->%s<\n",nameX[i]);
00553 h=(TH2F*)fd->Get(nameX[i]); assert(h);
00554 c->cd(i+1); h->Draw("colz");
00555 }
00556 } break;
00557
00558 case 28:{ sprintf(padTit,"ESMD 2, %s",core0);
00559 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00560 c->Divide(2,3);gStyle->SetOptStat(10);
00561 char **nameX=nameEsmd2;
00562 for(int i=0;i<6;i++) {
00563 printf("->%s<\n",nameX[i]);
00564 h=(TH2F*)fd->Get(nameX[i]); assert(h);
00565 c->cd(i+1); h->Draw("colz");
00566 }
00567 } break;
00568
00569 case 29:{ sprintf(padTit,"EPRS, %s",core0);
00570 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00571 c->Divide(2,3);gStyle->SetOptStat(10);
00572 char **nameX=nameEprs;
00573 for(int i=0;i<6;i++) {
00574 printf("->%s<\n",nameX[i]);
00575 h=(TH2F*)fd->Get(nameX[i]); assert(h);
00576 c->cd(i+1); h->Draw("colz");
00577 }
00578 } break;
00579
00580
00581
00582 case 30:
00583 case 31:
00584 case 32:
00585 case 33:
00586 case 34:
00587 case 35:
00588 case 36:
00589 case 37:
00590 case 38:
00591 case 39:
00592 case 40:
00593 case 41:
00594 {
00595 int iew=(page-30)%2;
00596 int iCut=(page-30)/2;
00597 int sec1=1, sec2=12; if(iew) sec1=13, sec2=24;
00598 char *titA[]={"stats","nFitPoints", " nFit/nPossible","1st hit Rxy","last hit Rxy","dE/dX"};
00599 char *titB[]={"Stat","TrNfit","TrFitFrac","TrRxyIn","TrRxyOut","TrdEdX"};
00600 sprintf(padTit,"TPC %s sectors[%d,%d], %s",titA[iCut],sec1,sec2,core0);
00601 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00602 c->Divide(4,3);gStyle->SetOptStat(10);
00603 for(int i=0;i<12;i++) {
00604 char name[100];
00605 sprintf(name,"secEemcTr%d_%s",i+sec1,titB[iCut]);
00606 printf("->%s<\n",name);
00607 h=(TH1*)fd->Get(name); assert(h);
00608 c->cd(i+1);
00609 if(iCut==5)
00610 h->Draw("colz");
00611 else
00612 h->Draw();
00613 int col=30+i+sec1;
00614 h->SetFillColor(col);
00615
00616
00617 }
00618 } break;
00619
00620 case 42:{ sprintf(padTit,"TPC accepted tracks, %s",core0);
00621 can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
00622 c->Divide(2,1);gStyle->SetOptStat(10);
00623 h2=muETr2D1;
00624 c->cd(1); h2->Draw("colz");
00625 c->cd(2);
00626
00627 for(int i=0;i<24;i++) {
00628 char name[100];
00629 sprintf(name,"secEemcTr%d_Tr2D1",i+1);
00630 printf("->%s<\n",name);
00631 h=(TH1*)fd->Get(name); assert(h); h->SetLineColor(30+i);
00632 if(i==0) h->Draw("box");
00633 else h->Draw("box same");
00634 }
00635
00636 } break;
00637
00638 default:
00639 printf("page=%d NOT defined\n",page);
00640 return;
00641 }
00642
00643 char text[100];
00644 sprintf(text,"%s%s_page%03d",oPath,core0,page);
00645 TString tit=text;
00646 can->SetTitle(tit);
00647 can->SetName(tit);
00648
00649
00650 if(pl&1) can->Print(tit+".gif");
00651 if(pl&2) can->Print(tit+spinPre+".ps");
00652
00653 }
00654
00655
00656 void splitPadX(float x, TPad **cL, TPad **cR) {
00657 (*cL) = new TPad("padL", "apdL",0.0,0.,x,0.95);
00658 (*cL)->Draw();
00659 (*cR) = new TPad("padL", "apdL",x+0.005,0.,1.0,0.95);
00660 (*cR)->Draw();
00661 }
00662
00663
00664 void splitPadY(float y, TPad **cU, TPad **cD) {
00665 (*cU) = new TPad("padD", "apdD",0,y+0.005,1.0,1.);
00666 (*cU)->Draw();
00667 (*cD) = new TPad("padU", "apdU",0.0,0.,1.,y);
00668 (*cD)->Draw();
00669
00670
00671
00672
00673 }
00674
00675
00676
00677 int tpcSec(float phiRad, float etaDet){
00678 int sec=0;
00679 float phi=phiRad/PI*180;
00680 if (etaDet>0) {
00681 float x=75-phi;
00682 while(x<0) x+=360;
00683 sec=1+(int)( x/30.);
00684 } else {
00685 float x=phi-105;
00686 while(x<0) x+=360;
00687 sec=13+(int)( x/30.);
00688 }
00689
00690 return sec;
00691 }
00692
00693
00694 TPad *makeTitle(TCanvas *c,char *core, int page) {
00695 c->Range(0,0,1,1);
00696 TPad *pad0 = new TPad("pad0", "apd0",0.0,0.95,1.,1.);
00697 pad0->Draw();
00698 pad0->cd();
00699
00700 TPaveText *pt = new TPaveText(0,0.,1,1,"br");
00701 pt->Draw();
00702 TDatime dt;
00703 TString txt2=core;
00704 txt2+=", page=";
00705 txt2+=page;
00706 txt2+=", ";
00707 txt2+=dt.AsString();
00708 pt->AddText(txt2);
00709 txt2="--";
00710 pt->AddText(txt2);
00711
00712 c->cd();
00713 pad = new TPad("pad1", "apd1",0.0,0.0,1,.95);
00714 pad->Draw();
00715 return pad;
00716 }
00717
00718
00719 void doAll(char *core0="", char *iPath=""){
00720 for(int i=1;i<=18;i++) {
00721 if(i==15) continue;
00722 plEana(i,2,core0,iPath);
00723 }
00724
00725
00726
00727
00728
00729 for(int i=30;i<=42;i++) plEana(i,2,core0,iPath);
00730
00731 }
00732
00733
00734 void doAllMC(){
00735 for(int i=1;i<=22;i++){
00736
00737 if(i==3) continue;
00738 if(i==4) continue;
00739 if(i==15) continue;
00740 plEana(i,2);
00741 }
00742 return;
00743
00744 for(int i=30;i<=42;i++) plEana(i,2);
00745 }
00746
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785
00786
00787
00788
00789
00790
00791
00792
00793
00794
00795
00796
00797
00798
00799