Simpler plotting and login in Direct Beam Scan. Results unchanged.
This commit is contained in:
+91
-127
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user