diff --git a/JFMC_CurrentSourceScan.cpp b/JFMC_CurrentSourceScan.cpp index 332f663..e7cf66c 100644 --- a/JFMC_CurrentSourceScan.cpp +++ b/JFMC_CurrentSourceScan.cpp @@ -50,9 +50,27 @@ int main(int argc, char* argv[]) { TH1F *gain_avg = new TH1F("gain_avg","",100,-1,4); TH2F *gainmap_avg = new TH2F("gainmap_avg","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); TH1F *adc_avg_g1 = new TH1F("adc_avg_g1","",100,0,17000); - TH2F *adcmap_avg_g1 = new TH2F("adcmap_avg_g1","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); TH1F *adc_avg_g2 = new TH1F("adc_avg_g2","",100,0,17000); - TH2F *adcmap_avg_g2 = new TH2F("adcmap_avg_g2","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); + + TH2F *adcmap_avg_g1 [35]; + TH2F *adcmap_avg_g2 [35]; + TH2F *adcermap_avg_g1 [35]; + TH2F *adcermap_avg_g2 [35]; + + for(int i = 0; i < 35; i++) { + ostringstream histogramNameStreamg1; + histogramNameStreamg1 << "adcmap_avg_g1_" << i; + adcmap_avg_g1[i] = new TH2F(histogramNameStreamg1.str().c_str(),"",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); + ostringstream histogramNameStreamg2; + histogramNameStreamg2 << "adcmap_avg_g2_" << i; + adcmap_avg_g2[i] = new TH2F(histogramNameStreamg2.str().c_str(),"",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); + ostringstream histogramNameStreamg3; + histogramNameStreamg3 << "adcermap_avg_g1_" << i; + adcermap_avg_g1[i] = new TH2F(histogramNameStreamg3.str().c_str(),"",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); + ostringstream histogramNameStreamg4; + histogramNameStreamg4 << "adcermap_avg_g2_" << i; + adcermap_avg_g2[i] = new TH2F(histogramNameStreamg4.str().c_str(),"",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); + } jungfrauPedestal *pedestalObject = new jungfrauPedestal(); pedestalObject->pedestalSetNFrames(640); @@ -117,11 +135,6 @@ int main(int argc, char* argv[]) { } } - static double adcmeans_g1[NCH][35]; - static double adcmeans_g2[NCH][35]; - static double adcmeanerrs_g1[NCH][35]; - static double adcmeanerrs_g2[NCH][35]; - double pede_ene[1]; pede_ene[0] = 0.01; @@ -352,25 +365,25 @@ int main(int argc, char* argv[]) { for (int i = 0; i < NCH; i++) { if (pixel_mask[i] == 1) { - adcmeans_g1[i][j/640-1] = adc_histos_g1[i]->GetMean(); - adcmeans_g2[i][j/640-1] = adc_histos_g2[i]->GetMean(); - adcmeanerrs_g1[i][j/640-1] = adc_histos_g1[i]->GetMeanError(); - adcmeanerrs_g2[i][j/640-1] = adc_histos_g2[i]->GetMeanError(); + + gainmap_avg->Fill(i%NC,i/NC,gain_histos[i]->GetMean()); + adcmap_avg_g1[j/640-1]->Fill(i%NC,i/NC,adc_histos_g1[i]->GetMean()); + adcermap_avg_g1[j/640-1]->Fill(i%NC,i/NC,adc_histos_g1[i]->GetMeanError()); + adcmap_avg_g2[j/640-1]->Fill(i%NC,i/NC,adc_histos_g2[i]->GetMean()); + adcermap_avg_g2[j/640-1]->Fill(i%NC,i/NC,adc_histos_g2[i]->GetMeanError()); if (gain_histos[i]->GetEntries() > 0) { gain_avg->Fill(gain_histos[i]->GetMean()); - gainmap_avg->Fill(i%NC,i/NC,gain_histos[i]->GetMean()); } - gain_histos[i]->Reset(); if (adc_histos_g1[i]->GetEntries() > 0) { adc_avg_g1->Fill(adc_histos_g1[i]->GetMean()); - adcmap_avg_g1->Fill(i%NC,i/NC,adc_histos_g1[i]->GetMean()); } - adc_histos_g1[i]->Reset(); if (adc_histos_g2[i]->GetEntries() > 0) { adc_avg_g2->Fill(adc_histos_g2[i]->GetMean()); - adcmap_avg_g2->Fill(i%NC,i/NC,adc_histos_g2[i]->GetMean()); } + + gain_histos[i]->Reset(); + adc_histos_g1[i]->Reset(); adc_histos_g2[i]->Reset(); } } @@ -397,13 +410,20 @@ int main(int argc, char* argv[]) { sprintf(savename,"plots/M%s/CurrentSource/perStep/adc_avg_g1_%i.png", module_str.c_str(), j/640); c1->SaveAs((const char *)(savename)); mapcanvas->cd(); - adcmap_avg_g1->GetXaxis()->SetTitle("Column"); - adcmap_avg_g1->GetYaxis()->SetTitle("Row"); - adcmap_avg_g1->GetYaxis()->SetTitleOffset(0.7); - adcmap_avg_g1->Draw("colz"); + adcmap_avg_g1[j/640-1]->GetXaxis()->SetTitle("Column"); + adcmap_avg_g1[j/640-1]->GetYaxis()->SetTitle("Row"); + adcmap_avg_g1[j/640-1]->GetYaxis()->SetTitleOffset(0.7); + adcmap_avg_g1[j/640-1]->Draw("colz"); mapcanvas->Update(); sprintf(savename,"plots/M%s/CurrentSource/perStep/adcmap_avg_g1_%i.png", module_str.c_str(), j/640); mapcanvas->SaveAs((const char *)(savename)); + adcermap_avg_g1[j/640-1]->GetXaxis()->SetTitle("Column"); + adcermap_avg_g1[j/640-1]->GetYaxis()->SetTitle("Row"); + adcermap_avg_g1[j/640-1]->GetYaxis()->SetTitleOffset(0.7); + adcermap_avg_g1[j/640-1]->Draw("colz"); + mapcanvas->Update(); + sprintf(savename,"plots/M%s/CurrentSource/perStep/adcermap_avg_g1_%i.png", module_str.c_str(), j/640); + mapcanvas->SaveAs((const char *)(savename)); c1->cd(); adc_avg_g2->GetXaxis()->SetTitle("Average G2 ADC"); @@ -413,18 +433,23 @@ int main(int argc, char* argv[]) { sprintf(savename,"plots/M%s/CurrentSource/perStep/adc_avg_g2_%i.png", module_str.c_str(), j/640); c1->SaveAs((const char *)(savename)); mapcanvas->cd(); - adcmap_avg_g2->GetXaxis()->SetTitle("Column"); - adcmap_avg_g2->GetYaxis()->SetTitle("Row"); - adcmap_avg_g2->GetYaxis()->SetTitleOffset(0.7); - adcmap_avg_g2->Draw("colz"); + adcmap_avg_g2[j/640-1]->GetXaxis()->SetTitle("Column"); + adcmap_avg_g2[j/640-1]->GetYaxis()->SetTitle("Row"); + adcmap_avg_g2[j/640-1]->GetYaxis()->SetTitleOffset(0.7); + adcmap_avg_g2[j/640-1]->Draw("colz"); sprintf(savename,"plots/M%s/CurrentSource/perStep/adcmap_avg_g2_%i.png", module_str.c_str(), j/640); mapcanvas->SaveAs((const char *)(savename)); + adcermap_avg_g2[j/640-1]->GetXaxis()->SetTitle("Column"); + adcermap_avg_g2[j/640-1]->GetYaxis()->SetTitle("Row"); + adcermap_avg_g2[j/640-1]->GetYaxis()->SetTitleOffset(0.7); + adcermap_avg_g2[j/640-1]->Draw("colz"); + sprintf(savename,"plots/M%s/CurrentSource/perStep/adcermap_avg_g2_%i.png", module_str.c_str(), j/640); + mapcanvas->SaveAs((const char *)(savename)); + gain_avg->Reset(); gainmap_avg->Reset(); adc_avg_g1->Reset(); - adcmap_avg_g1->Reset(); adc_avg_g2->Reset(); - adcmap_avg_g2->Reset(); } } // end of while @@ -452,7 +477,7 @@ int main(int argc, char* argv[]) { TH2F *diffFromLinG1map = new TH2F("diffFromLinG1map","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); TH2F *diffFromLinG2map = new TH2F("diffFromLinG2map","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5); - TH1F *g1hist; + TH1F *g1hist = 0; if (module_str == "032") { g1hist = new TH1F("g1hist","",100,-12000,-4000); } else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "044") { @@ -460,7 +485,7 @@ int main(int argc, char* argv[]) { } TH1F *g1erhist = new TH1F("g1erhist","",100,0,50); - TH1F *g2hist; + TH1F *g2hist = 0; if (module_str == "032") { g2hist = new TH1F("g2hist","",100,-1000,-200); } else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "044") { @@ -483,10 +508,6 @@ int main(int argc, char* argv[]) { for (int i = 0; i < NCH; i++) { if (pixel_mask[i] == 1) { - vector r0_adc; - vector r0_filter; - vector r0_adcerr; - vector r0_ferr; vector r1_adc; vector r1_filter; @@ -507,16 +528,17 @@ int main(int argc, char* argv[]) { } for (int m = 0; m < m_max; m++) { - if (adcmeans_g1[i][m] != 0 && adcmeanerrs_g1[i][m] != 0) { - r1_adc.push_back(adcmeans_g1[i][m]); + + if (adcmap_avg_g1[m]->GetBinContent((i%NC)+1,(i/NC)+1) != 0 && adcermap_avg_g1[m]->GetBinContent((i%NC)+1,(i/NC)+1) != 0) { + r1_adc.push_back(adcmap_avg_g1[m]->GetBinContent((i%NC)+1,(i/NC)+1)); r1_filter.push_back(filter[m]); - r1_adcerr.push_back(adcmeanerrs_g1[i][m]); + r1_adcerr.push_back(adcermap_avg_g1[m]->GetBinContent((i%NC)+1,(i/NC)+1)); r1_ferr.push_back(0.); } - if (adcmeans_g2[i][m] != 0 && adcmeanerrs_g2[i][m] != 0) { - r3_adc.push_back(adcmeans_g2[i][m]); + if (adcmap_avg_g2[m]->GetBinContent((i%NC)+1,(i/NC)+1) != 0 && adcermap_avg_g2[m]->GetBinContent((i%NC)+1,(i/NC)+1) != 0) { + r3_adc.push_back(adcmap_avg_g2[m]->GetBinContent((i%NC)+1,(i/NC)+1)); r3_filter.push_back(filter[m]); - r3_adcerr.push_back(adcmeanerrs_g2[i][m]); + r3_adcerr.push_back(adcermap_avg_g2[m]->GetBinContent((i%NC)+1,(i/NC)+1)); r3_ferr.push_back(0.); } }