//----------------------------------------------------------------------------- // plot calorimetry histograms: supposed to be executed in INTERPRETED mode // plot = 1: //----------------------------------------------------------------------------- void plot_clc(DataVal& x, int run, int slide_number=0) { char name[100], title[100],file_name[100]; if (slide_number == 1) { //----------------------------------------------------------------------------- // ADC counts //----------------------------------------------------------------------------- TPostScript ps("clc_adc.ps",-111); for (int i=0; i<6; i++) { sprintf(name,"run_%i_clc_adc_%i",run,i); sprintf(title,"run %i CLC ADC slide %i ",run, i); new_slide(name,title,4,4); int k=0; for (int j=16*i; j<16*(i+1); j++) { k++; p1->cd(k); gPad->SetLogy(); x.fHClc.fAdc[j]->Draw(); } gPad->Update(); } } else if (slide_number == 2) { //----------------------------------------------------------------------------- // raw TDC counts //----------------------------------------------------------------------------- for (int i=0; i<6; i++) { sprintf(name,"run_%i_clc_tdc0_%i",run,i); sprintf(title,"run %i CLC RAW TDC counts slide %i ",run, i); new_slide(name,title,4,4); sprintf(file_name,"run_%i_clc_tdc0_%i.eps",run,i); TPostScript ps("clc_tdc.eps",111); int k=0; for (int j=16*i; j<16*(i+1); j++) { k++; p1->cd(k); gPad->SetLogy(); x.fHClc.fTdc0[j]->Draw(); } gPad->Update(); } } else if (slide_number == 3) { //----------------------------------------------------------------------------- // TDC width distributions //----------------------------------------------------------------------------- for (int i=0; i<6; i++) { sprintf(name,"run_%i_clc_wid_%i",run,i); sprintf(title,"run %i CLC TDC WIDTH slide %i ",run, i); new_slide(name,title,4,4); sprintf(file_name,"run_%i_clc_wid_%i.eps",run,i); int k=0; for (int j=16*i; j<16*(i+1); j++) { k++; p1->cd(k); gPad->SetLogy(); x.fHClc.fWid[j]->Draw(); } gPad->Update(); } } else if (slide_number == 40) { //----------------------------------------------------------------------------- // plot fit results on the screen //----------------------------------------------------------------------------- gStyle->SetOptFit(1110); for (int i=0; i<6; i++) { sprintf(name,"run_%i_clc_wid_%i",run,i); sprintf(title,"run %i CLC TDC stretched +132*myron-1200 slide %i ",run, i); new_slide(name,title,4,4); sprintf(file_name,"run_%i_clc_t1_%i.eps",run,i); int k=0; for (int j=16*i; j<16*(i+1); j++) { k++; p1->cd(k); x.fHClc.fDeltaTdc[j]->Draw(); } gPad->Update(); } } else if (slide_number == 41) { //----------------------------------------------------------------------------- // print results - want it to be done as a separate step //----------------------------------------------------------------------------- int k=0; for (int i=0; i<96; i++) { // print the fit parameters float t0; TF1* f = x.fHClc.fDeltaTdc[i]->GetFunction("gaus"); if (f) { t0 = (float) f->GetParameter(1); } else { t0 = -9999.; } printf("%7.3f,",t0); k++; if (k >= 10) { printf("\n"); k = 0; } } printf("\n"); } else if (slide_number == 43) { //----------------------------------------------------------------------------- // do fitting //----------------------------------------------------------------------------- for (int i=0; i<96; i++) { x.fHClc1.fWidthVsTimeProf[i]->Fit("pol1","n0"); } } else if (slide_number == 44) { //----------------------------------------------------------------------------- // print results - want it to be done as a separate step //----------------------------------------------------------------------------- for (int i=0; i<6; i++) { int k=0; printf("---------------------------------------------------\n"); printf("ch# A0 sig(A0) B0 sig(B0) chi**2\n"); printf("---------------------------------------------------\n"); for (int j=16*i; j<16*(i+1); j++) { // print the fit parameters TF1* f = x.fHClc1.fWidthVsTime[j]->GetFunction("pol1"); if (f) { printf (" %2i %8.3f %8.3f %8.3f %8.3f %8.3f\n", j, (float) f->GetParameter(0), (float) f->GetParError(0), (float) f->GetParameter(1), (float) f->GetParError(1), (float) f->GetChisquare()); } else { printf(" %2i fit error\n",j); } } } } else if (slide_number == 5) { //----------------------------------------------------------------------------- // number of good hits per layer //----------------------------------------------------------------------------- sprintf(name,"run_%i_clc_nhits",run); sprintf(title,"run %i CLC N(TDC hits)",run); new_slide(name,title,2,3); for (int im=0; im<2; im++) { for (int il=0; il<3; il++) { int pad = 2*il+im+1; p1->cd(pad); x.fHClc.fNHitsLayer[im][il]->Draw(); } } } }