Simpler plotting and login in Direct Beam Scan. Results unchanged.

This commit is contained in:
redford_s
2017-03-08 16:40:56 +01:00
parent 2f0439e8b1
commit 3689ed9207
+91 -127
View File
@@ -66,12 +66,12 @@ int main(int argc, char* argv[]) {
pixelMaskObject->maskSupercolumn(4,2, pixel_mask);
}
int nevents = 0;
int framecounter = 0;
while (thisfile->readNextFrame()) {
nevents++;
framecounter++;
}
thisfile->rewind();
cout << "read " << nevents << " events" << endl;
cout << "read " << framecounter << " frames" << endl;
for (int i = 0; i < 1000; i++) {
thisfile->readNextFrame();
@@ -181,8 +181,6 @@ int main(int argc, char* argv[]) {
sprintf(savename,"plots/M%s/DirectBeam/pedeRMSG2.png", module_str.c_str());
mapcanvas->SaveAs((const char *)(savename));
int npoints = 40; // 2 to 80 in steps of 2
jungfrauPedestal *pedestalObjectG0 = new jungfrauPedestal();
pedestalObjectG0->pedestalSetNFrames(1000); // using 1000 frames, rolling window
@@ -192,15 +190,15 @@ int main(int argc, char* argv[]) {
// 2D hist for every point, to save
// mean, error and number of fills
// can be loaded from a file
TH2F* avg_adc_g0_map [npoints];
TH2F* avg_adc_g1_map [npoints];
TH2F* avg_adcer_g0_map [npoints];
TH2F* avg_adcer_g1_map [npoints];
TH2F* avg_adc_g0_map [40];
TH2F* avg_adc_g1_map [40];
TH2F* avg_adcer_g0_map [40];
TH2F* avg_adcer_g1_map [40];
// creating the histograms
if (createHistoFile) {
for (int j = 0; j < npoints; j++) {
for (int j = 0; j < 40; j++) {
sprintf(savename,"avg_adc_g0_map_%d", j);
avg_adc_g0_map[j] = new TH2F(savename,"",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
sprintf(savename,"avg_adc_g1_map_%d", j);
@@ -213,7 +211,7 @@ int main(int argc, char* argv[]) {
}
int nfiles = 4;
int nframes = 0;
int framecounter = 0;
for (int filei = 0; filei < nfiles; filei++) {
// open data file
@@ -223,8 +221,8 @@ int main(int argc, char* argv[]) {
while (thisfile->readNextFrame()) {
if (module_str == "028") {
if (nframes%1000 < 100) { // shutter skip
nframes++;
if (framecounter%1000 < 100) { // shutter skip
framecounter++;
continue;
}
}
@@ -232,17 +230,17 @@ int main(int argc, char* argv[]) {
pedestalObjectG0->addG0FrameToPedestalCalculation(thisfile->getFrameDataHandle());
pedestalObjectG1->addG1FrameToPedestalCalculation(thisfile->getFrameDataHandle());
nframes++;
framecounter++;
if (nframes%1000 == 0) {
if (framecounter%1000 == 0) {
for (int i = 0; i < NCH; i++) {
if (pixel_mask[i] == 1) {
avg_adc_g0_map[nframes/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG0->pedestalOfChannel(i));
avg_adcer_g0_map[nframes/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG0->semOfChannel(i));
avg_adc_g1_map[nframes/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG1->pedestalOfChannel(i));
avg_adcer_g1_map[nframes/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG1->semOfChannel(i));
avg_adc_g0_map[framecounter/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG0->pedestalOfChannel(i));
avg_adcer_g0_map[framecounter/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG0->semOfChannel(i));
avg_adc_g1_map[framecounter/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG1->pedestalOfChannel(i));
avg_adcer_g1_map[framecounter/1000 -1]->SetBinContent((i%NC)+1,(i/NC)+1,pedestalObjectG1->semOfChannel(i));
}
}
@@ -250,36 +248,36 @@ int main(int argc, char* argv[]) {
pedestalObjectG0->pedestalClear();
pedestalObjectG1->pedestalClear();
avg_adc_g0_map[nframes/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adc_g0_map[nframes/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adc_g0_map[nframes/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adc_g0_map[nframes/1000 -1]->Draw("colz");
avg_adc_g0_map[nframes/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/avg_adc_g0_map_%d.png", module_str.c_str(), ((nframes/1000 -1)+1)*2);
avg_adc_g0_map[framecounter/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adc_g0_map[framecounter/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adc_g0_map[framecounter/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adc_g0_map[framecounter/1000 -1]->Draw("colz");
avg_adc_g0_map[framecounter/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/perStep/avg_adc_g0_map_%d.png", module_str.c_str(), ((framecounter/1000 -1)+1)*2);
mapcanvas->SaveAs((const char *)(savename));
avg_adc_g1_map[nframes/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adc_g1_map[nframes/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adc_g1_map[nframes/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adc_g1_map[nframes/1000 -1]->Draw("colz");
avg_adc_g1_map[nframes/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/avg_adc_g1_map_%d.png", module_str.c_str(), ((nframes/1000 -1)+1)*2);
avg_adc_g1_map[framecounter/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adc_g1_map[framecounter/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adc_g1_map[framecounter/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adc_g1_map[framecounter/1000 -1]->Draw("colz");
avg_adc_g1_map[framecounter/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/perStep/avg_adc_g1_map_%d.png", module_str.c_str(), ((framecounter/1000 -1)+1)*2);
mapcanvas->SaveAs((const char *)(savename));
avg_adcer_g0_map[nframes/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adcer_g0_map[nframes/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adcer_g0_map[nframes/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adcer_g0_map[nframes/1000 -1]->Draw("colz");
avg_adcer_g0_map[nframes/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/avg_adcer_g0_map_%d.png", module_str.c_str(), ((nframes/1000 -1)+1)*2);
avg_adcer_g0_map[framecounter/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adcer_g0_map[framecounter/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adcer_g0_map[framecounter/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adcer_g0_map[framecounter/1000 -1]->Draw("colz");
avg_adcer_g0_map[framecounter/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/perStep/avg_adcer_g0_map_%d.png", module_str.c_str(), ((framecounter/1000 -1)+1)*2);
mapcanvas->SaveAs((const char *)(savename));
avg_adcer_g1_map[nframes/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adcer_g1_map[nframes/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adcer_g1_map[nframes/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adcer_g1_map[nframes/1000 -1]->Draw("colz");
avg_adcer_g1_map[nframes/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/avg_adcer_g1_map_%d.png", module_str.c_str(), ((nframes/1000 -1)+1)*2);
avg_adcer_g1_map[framecounter/1000 -1]->GetXaxis()->SetTitle("Column");
avg_adcer_g1_map[framecounter/1000 -1]->GetYaxis()->SetTitle("Row");
avg_adcer_g1_map[framecounter/1000 -1]->GetYaxis()->SetTitleOffset(0.7);
avg_adcer_g1_map[framecounter/1000 -1]->Draw("colz");
avg_adcer_g1_map[framecounter/1000 -1]->SetMinimum(0);
sprintf(savename,"plots/M%s/DirectBeam/perStep/avg_adcer_g1_map_%d.png", module_str.c_str(), ((framecounter/1000 -1)+1)*2);
mapcanvas->SaveAs((const char *)(savename));
}
@@ -294,7 +292,7 @@ int main(int argc, char* argv[]) {
sprintf(savename,"/mnt/pcmoench_jungfrau_data/jungfrau_ana_sophie/M%s_CalibAna/DB_histos_M%s.root", module_str.c_str(), module_str.c_str());
TFile* saved_file = new TFile((const char *)(savename),"RECREATE");
for (int i = 0; i < npoints; i++) {
for (int i = 0; i < 40; i++) {
avg_adc_g0_map[i]->Write();
avg_adc_g1_map[i]->Write();
avg_adcer_g0_map[i]->Write();
@@ -307,7 +305,7 @@ int main(int argc, char* argv[]) {
sprintf(savename,"/mnt/pcmoench_jungfrau_data/jungfrau_ana_sophie/M%s_CalibAna/DB_histos_M%s.root", module_str.c_str(), module_str.c_str());
TFile* saved_file = new TFile((const char *)(savename),"READ");
for (int i = 0; i < npoints; i++) {
for (int i = 0; i < 40; i++) {
sprintf(savename,"avg_adc_g0_map_%d", i);
avg_adc_g0_map[i] = (TH2F*)saved_file->Get((const char *)(savename));
sprintf(savename,"avg_adc_g1_map_%d", i);
@@ -340,10 +338,6 @@ int main(int argc, char* argv[]) {
vector<double> r1_adcer;
vector<double> r1_filter;
vector<double> r1_filterer;
vector<double> r2_adc;
vector<double> r2_adcer;
vector<double> r2_filter;
vector<double> r2_filterer;
r0_filter.push_back(0);
r0_filterer.push_back(0);
@@ -353,12 +347,8 @@ int main(int argc, char* argv[]) {
r1_filterer.push_back(0);
r1_adc.push_back(pedestalsG1->GetBinContent((i%NC)+1,(i/NC)+1));
r1_adcer.push_back(pedeRMSG1->GetBinContent((i%NC)+1,(i/NC)+1));
r2_filter.push_back(0);
r2_filterer.push_back(0);
r2_adc.push_back(pedestalsG2->GetBinContent((i%NC)+1,(i/NC)+1));
r2_adcer.push_back(pedeRMSG2->GetBinContent((i%NC)+1,(i/NC)+1));
for (int j = 0; j < npoints; j++) {
for (int j = 0; j < 40; j++) {
int current = (j+1)*2;
double this_g0avg = avg_adc_g0_map[j]->GetBinContent((i%NC)+1,(i/NC)+1);
@@ -381,26 +371,16 @@ int main(int argc, char* argv[]) {
}
TGraphErrors *grap_g0 = new TGraphErrors(r0_adc.size(),&(r0_filter[0]),&(r0_adc[0]),&(r0_filterer[0]),&(r0_adcer[0]));
TGraphErrors *grap_g1 = new TGraphErrors(r1_adc.size(),&(r1_filter[0]),&(r1_adc[0]),&(r1_filterer[0]),&(r1_adcer[0]));
TGraphErrors *grap_g2 = new TGraphErrors(r2_adc.size(),&(r2_filter[0]),&(r2_adc[0]),&(r2_filterer[0]),&(r2_adcer[0]));
if (r0_adc.size() > 1 && r1_adc.size() > 1) {
grap_g0->SetMarkerStyle(20);
grap_g1->SetMarkerStyle(20);
grap_g2->SetMarkerStyle(20);
grap_g0->SetMarkerColor(kBlue);
grap_g0->SetLineColor(kBlue);
grap_g1->SetMarkerColor(kGreen+2);
grap_g1->SetLineColor(kGreen+2);
grap_g2->SetMarkerColor(kRed);
grap_g2->SetLineColor(kRed);
TGraphErrors *grap_g0 = new TGraphErrors(r0_adc.size(),&(r0_filter[0]),&(r0_adc[0]),&(r0_filterer[0]),&(r0_adcer[0]));
TGraphErrors *grap_g1 = new TGraphErrors(r1_adc.size(),&(r1_filter[0]),&(r1_adc[0]),&(r1_filterer[0]),&(r1_adcer[0]));
TF1 *fit1;
TF1 *fit2;
TF1 *fit1_e;
TF1 *fit2_e;
if (r0_adc.size() > 1) {
TF1 *fit1 = 0;
TF1 *fit2 = 0;
TF1 *fit1_e = 0;
TF1 *fit2_e = 0;
if (module_str == "028") {
fit1 = new TF1("fit1","[0]+[1]*x",2,10);
} else if (module_str == "021" || module_str == "022") {
@@ -424,8 +404,8 @@ int main(int argc, char* argv[]) {
fit1_e->SetParameters(fit1->GetParameter(0),fit1->GetParameter(1));
fit1_e->SetLineColor(kBlue);
fit1_e->SetLineStyle(2);
}
if (r1_adc.size() > 1) {
if (module_str == "028" || module_str == "021" || module_str == "022") {
fit2 = new TF1("fit2","[0]+[1]*x",40,80);
} else if (module_str == "006") {
@@ -447,72 +427,56 @@ int main(int argc, char* argv[]) {
fit2_e->SetParameters(fit2->GetParameter(0),fit2->GetParameter(1));
fit2_e->SetLineColor(kGreen+2);
fit2_e->SetLineStyle(2);
}
if (r0_adc.size() > 1 && r1_adc.size() > 1) {
g0overg1map->Fill(i%NC,i/NC,fit1->GetParameter(1)/fit2->GetParameter(1));
g0overg1hist->Fill(fit1->GetParameter(1)/fit2->GetParameter(1));
g0overg1ermap->Fill(i%NC,i/NC,abs(fit1->GetParameter(1)/fit2->GetParameter(1))*sqrt(pow((fit1->GetParError(1)/fit1->GetParameter(1)),2) + pow((fit2->GetParError(1)/fit2->GetParameter(1)),2)));
g0overg1erhist->Fill(abs(fit1->GetParameter(1)/fit2->GetParameter(1))*sqrt(pow((fit1->GetParError(1)/fit1->GetParameter(1)),2) + pow((fit2->GetParError(1)/fit2->GetParameter(1)),2)));
}
grap_g0->GetXaxis()->SetTitle("Current [mA]");
grap_g0->GetYaxis()->SetTitle("Average ADC [ADU]");
grap_g0->GetXaxis()->SetLimits(0,50);
grap_g0->Draw("AP");
if (r0_adc.size() > 1) {
fit1->Draw("same");
fit1_e->Draw("same");
}
if ((i > 51900 && i < 51910) || (i > 52150 && i < 52160) || (i > 513000 && i < 513010)) {
sprintf(savename,"plots/M%s/DirectBeam/grap0_%d.png", module_str.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
}
grap_g1->GetXaxis()->SetTitle("Current [mA]");
grap_g1->GetYaxis()->SetTitle("Average ADC [ADU]");
grap_g1->GetXaxis()->SetLimits(0,85);
grap_g1->Draw("AP");
if (r1_adc.size() > 1) {
fit2->Draw("same");
fit2_e->Draw("same");
}
if ((i > 51900 && i < 51910) || (i > 52150 && i < 52160) || (i > 513000 && i < 513010)) {
sprintf(savename,"plots/M%s/DirectBeam/grap1_%d.png", module_str.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
}
grap_g1->SetMinimum(0);
grap_g1->SetMaximum(17000);
grap_g1->Draw("AP");
if (r1_adc.size() > 1) {
fit2->Draw("same");
fit2_e->Draw("same");
}
if (r0_adc.size() > 0) {
grap_g0->Draw("P");
if (r0_adc.size() > 1) {
if ((i > 51900 && i < 51910) || (i > 123880 && i < 123890) || (i > 513000 && i < 513010)) {
grap_g0->SetMarkerStyle(20);
grap_g0->SetMarkerColor(kBlue);
grap_g0->SetLineColor(kBlue);
grap_g0->GetXaxis()->SetTitle("Current [mA]");
grap_g0->GetYaxis()->SetTitle("Average ADC [ADU]");
grap_g0->GetXaxis()->SetLimits(0,50);
grap_g0->Draw("AP");
fit1->Draw("same");
fit1_e->Draw("same");
}
}
if (r2_adc.size() > 0) {
grap_g2->Draw("P");
}
if ((i > 51900 && i < 51910) || (i > 52150 && i < 52160) || (i > 123880 && i < 123890) || (i > 513000 && i < 513010)) {
sprintf(savename,"plots/M%s/DirectBeam/graps_%d.png", module_str.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
}
sprintf(savename,"plots/M%s/DirectBeam/grap0_%d.png", module_str.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
if (r0_adc.size() > 1) {
grap_g1->SetMarkerStyle(20);
grap_g1->SetMarkerColor(kGreen+2);
grap_g1->SetLineColor(kGreen+2);
grap_g1->GetXaxis()->SetTitle("Current [mA]");
grap_g1->GetYaxis()->SetTitle("Average ADC [ADU]");
grap_g1->GetXaxis()->SetLimits(0,85);
grap_g1->Draw("AP");
fit2->Draw("same");
fit2_e->Draw("same");
sprintf(savename,"plots/M%s/DirectBeam/grap1_%d.png", module_str.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
grap_g1->SetMinimum(0);
grap_g1->SetMaximum(17000);
grap_g1->Draw("AP");
grap_g0->Draw("P");
fit1->Draw("same");
fit1_e->Draw("same");
fit2->Draw("same");
fit2_e->Draw("same");
sprintf(savename,"plots/M%s/DirectBeam/graps_%d.png", module_str.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
}
delete fit1;
delete fit1_e;
}
if (r1_adc.size() > 1) {
delete fit2;
delete fit2_e;
}
}
}
}