Adjustment for new scan for module 045 and existing module 022. Normalised plots, better error check.

This commit is contained in:
redford_s
2017-06-09 12:34:45 +02:00
parent b6c55c5d46
commit fefaf700d6
2 changed files with 92 additions and 22 deletions

View File

@@ -79,14 +79,20 @@ int main(int argc, char* argv[]) {
thisfile->readNextFrame();
pixelMaskObject->maskIfGainNot(0, thisfile->getFrameDataHandle(), (int*)(&pixel_mask));
}
cout << "after G0, n masked pixels is " << pixelMaskObject->getNMasked(pixel_mask) << endl;
for (int i = 0; i < 640; i++) {
thisfile->readNextFrame();
pixelMaskObject->maskIfGainNot(1, thisfile->getFrameDataHandle(), (int*)(&pixel_mask));
}
cout << "after G1, n masked pixels is " << pixelMaskObject->getNMasked(pixel_mask) << endl;
for (int i = 0; i < 640; i++) {
thisfile->readNextFrame();
pixelMaskObject->maskIfGainNot(3, thisfile->getFrameDataHandle(), (int*)(&pixel_mask));
}
cout << "after G2, n masked pixels is " << pixelMaskObject->getNMasked(pixel_mask) << endl;
thisfile->rewind();
sprintf(savename,"plots/M%s/CurrentSource/pixelmask.png", module_str.c_str());
@@ -172,7 +178,7 @@ int main(int argc, char* argv[]) {
pedeRMSG1->GetYaxis()->SetTitleOffset(0.7);
if (module_str == "006") {
pedeRMSG1->GetZaxis()->SetRangeUser(0,400);
} else if (module_str == "008" || module_str == "021" || module_str == "022" || module_str == "032" || module_str == "040" || module_str == "044") {
} else if (module_str == "008" || module_str == "021" || module_str == "022" || module_str == "032" || module_str == "040" || module_str == "044" || module_str == "045") {
pedeRMSG1->GetZaxis()->SetRangeUser(0,15);
}
pedeRMSG1->Draw("colz");
@@ -184,24 +190,24 @@ int main(int argc, char* argv[]) {
pedeRMSG2->GetYaxis()->SetTitleOffset(0.7);
if (module_str == "006") {
pedeRMSG2->GetZaxis()->SetRangeUser(0,400);
} else if (module_str == "008" || module_str == "021" || module_str == "022" || module_str == "032" || module_str == "040" || module_str == "044") {
} else if (module_str == "008" || module_str == "021" || module_str == "022" || module_str == "032" || module_str == "040" || module_str == "044" || module_str == "045") {
pedeRMSG2->GetZaxis()->SetRangeUser(0,15);
}
pedeRMSG2->Draw("colz");
sprintf(savename,"plots/M%s/CurrentSource/pedeRMSG2.png", module_str.c_str());
mapcanvas->SaveAs((const char *)(savename));
TH2F *adcmap_avg_g1 [35];
TH2F *adcmap_avg_g2 [35];
TH2F *adcermap_avg_g1 [35];
TH2F *adcermap_avg_g2 [35];
TH2F *adcmap_avg_g1 [51];
TH2F *adcmap_avg_g2 [51];
TH2F *adcermap_avg_g1 [51];
TH2F *adcermap_avg_g2 [51];
TCanvas *c1 = new TCanvas("c1","");
// creating the histograms
if (createHistoFile) {
for(int i = 0; i < 35; i++) {
for(int i = 0; i < 51; 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);
@@ -245,10 +251,12 @@ int main(int argc, char* argv[]) {
int frame_counter = 0;
int j = 0;
int nfiles = 0;
if (module_str == "032" || module_str == "021" || module_str == "022") {
if (module_str == "032" || module_str == "021") {
nfiles = 2;
} else if (module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044") {
nfiles = 3;
} else if (module_str == "045" || module_str == "022") {
nfiles = 4;
}
for (int filei = 0; filei < nfiles; filei++) {
@@ -336,8 +344,9 @@ int main(int argc, char* argv[]) {
}
// catch the last frame (bad ctrl-c exit)
// new receiver doesn't have this problem
int last_frame = 0;
if (module_str == "032" || module_str == "021" || module_str == "022") {
if (module_str == "032" || module_str == "021") {
last_frame = 19199;
} else if (module_str == "006" || module_str == "008" || module_str == "044") {
last_frame = 24319;
@@ -456,7 +465,7 @@ int main(int argc, char* argv[]) {
sprintf(savename,"/mnt/pcmoench_jungfrau_data/jungfrau_ana_sophie/M%s_CalibAna/CS_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 < 35; i++) {
for (int i = 0; i < 51; i++) {
adcmap_avg_g1[i]->Write();
adcmap_avg_g2[i]->Write();
adcermap_avg_g1[i]->Write();
@@ -469,7 +478,7 @@ int main(int argc, char* argv[]) {
sprintf(savename,"/mnt/pcmoench_jungfrau_data/jungfrau_ana_sophie/M%s_CalibAna/CS_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 < 35; i++) {
for (int i = 0; i < 51; i++) {
sprintf(savename,"adcmap_avg_g1_%d", i);
adcmap_avg_g1[i] = (TH2F*)saved_file->Get((const char *)(savename));
sprintf(savename,"adcmap_avg_g2_%d", i);
@@ -497,7 +506,7 @@ int main(int argc, char* argv[]) {
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 == "040" || module_str == "044") {
} else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044" || module_str == "045") {
g1hist = new TH1F("g1hist","",100,-3000,0);
}
TH1F *g1erhist = new TH1F("g1erhist","",100,0,50);
@@ -505,7 +514,7 @@ int main(int argc, char* argv[]) {
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 == "040" || module_str == "044") {
} else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044" || module_str == "045") {
g2hist = new TH1F("g2hist","",100,-300,0);
}
TH1F *g2erhist = new TH1F("g2erhist","",100,0,10);
@@ -523,7 +532,7 @@ int main(int argc, char* argv[]) {
TH1F *g1overg2_isQuad = new TH1F("g1overg2_isQuad","",100,11,15);
TH1F *g1overg2_isBulk = new TH1F("g1overg2_isBulk","",100,11,15);
double filter[35];
double filter[51];
if (module_str == "040" || module_str == "044") {
for (int i = 0; i < 5; i++) {
filter[i] = 0.05+(i*0.05);
@@ -534,6 +543,19 @@ int main(int argc, char* argv[]) {
for (int i = 0; i < 17; i++) {
filter[i+5+9] = 5.+(i*2.5);
}
} else if (module_str == "045" || module_str == "022") {
for (int i = 0; i < 9; i++) {
filter[i] = 0.05+(i*0.05);
}
for (int i = 0; i < 17; i++) {
filter[i+9] = 0.5+(i*0.25);
}
for (int i = 0; i < 17; i++) {
filter[i+9+17] = 5.+(i*2.5);
}
for (int i = 0; i < 8; i++) {
filter[i+9+17+17] = 50.+(i*10.);
}
} else {
for (int i = 0; i < 9; i++) {
filter[i] = 0.05+(i*0.025);
@@ -564,21 +586,23 @@ int main(int argc, char* argv[]) {
// filter out points at zero and points with 0 error (mean taken from one entry in hist)
int m_max = 0;
if (module_str == "032" || module_str == "021" || module_str == "022" || module_str == "040" || module_str == "044") {
if (module_str == "032" || module_str == "021" || module_str == "040" || module_str == "044") {
m_max = 27;
} else if (module_str == "006" || module_str == "008") {
m_max = 35;
} else if (module_str == "045" || module_str == "022") {
m_max = 51;
}
for (int m = 0; m < m_max; 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) {
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(adcermap_avg_g1[m]->GetBinContent((i%NC)+1,(i/NC)+1));
r1_ferr.push_back(0.);
}
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) {
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(adcermap_avg_g2[m]->GetBinContent((i%NC)+1,(i/NC)+1));
@@ -602,7 +626,7 @@ int main(int argc, char* argv[]) {
rangemin2 = 0.75;
} else if (module_str == "006") {
rangemin2 = 0.075;
} else if (module_str == "008" || module_str == "021" || module_str == "022" || module_str == "040" || module_str == "044") {
} else if (module_str == "008" || module_str == "021" || module_str == "022" || module_str == "040" || module_str == "044" || module_str == "045") {
rangemin2 = *min_element(r1_filter.begin(),r1_filter.end());
}
double rangemax2 = *max_element(r1_filter.begin(),r1_filter.end());
@@ -633,7 +657,7 @@ int main(int argc, char* argv[]) {
double rangemin3 = 0;
if (module_str == "032") {
rangemin3 = 5;
} else if (module_str == "006" || module_str == "008" || module_str == "021" || module_str == "022" || module_str == "040" || module_str == "044") {
} else if (module_str == "006" || module_str == "008" || module_str == "021" || module_str == "022" || module_str == "040" || module_str == "044" || module_str == "045") {
rangemin3 = *min_element(r3_filter.begin(),r3_filter.end());
}
double rangemax3 = *max_element(r3_filter.begin(),r3_filter.end());
@@ -767,10 +791,53 @@ int main(int argc, char* argv[]) {
mapcanvas->SaveAs((const char *)(savename));
mapcanvas->SetLogx(0);
// normalise
vector<double> r1_adc_norm;
vector<double> r3_adc_norm;
for (size_t j = 0; j < r1_adc.size(); j++) {
r1_adc_norm.push_back(r1_adc[j] - fit2->Eval(r1_filter[j]));
}
for (size_t j = 0; j < r3_adc.size(); j++) {
r3_adc_norm.push_back(r3_adc[j] - fit3->Eval(r3_filter[j]));
}
TGraphErrors *grap1_norm = new TGraphErrors(r1_adc.size(),&(r1_filter[0]),&(r1_adc_norm[0]),&(r1_ferr[0]),&(r1_adcerr[0]));
TGraphErrors *grap2_norm = new TGraphErrors(r3_adc.size(),&(r3_filter[0]),&(r3_adc_norm[0]),&(r3_ferr[0]),&(r3_adcerr[0]));
TF1* flat_g1 = new TF1("flat_g1","0",rangemin2, rangemax2);
TF1* flat_g2 = new TF1("flat_g2","0",rangemin3, rangemax3);
grap1_norm->SetMarkerColor(kGreen+2);
grap1_norm->SetLineColor(kGreen+2);
flat_g1->SetLineColor(kGreen+2);
grap1_norm->GetXaxis()->SetTitle("Integration time [#mus]");
grap1_norm->GetYaxis()->SetTitle("Normalised ADC [ADU]");
grap1_norm->GetYaxis()->SetTitleOffset(0.9);
grap1_norm->SetMinimum(-100);
grap1_norm->SetMaximum(100);
grap1_norm->Draw("AP");
flat_g1->Draw("same");
sprintf(savename,"plots/M%s/CurrentSource/pixel_%s_%d_g1norm.png", module_str.c_str(), pixel_type.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
grap2_norm->SetMarkerColor(kRed);
grap2_norm->SetLineColor(kRed);
flat_g2->SetLineColor(kRed);
grap2_norm->GetXaxis()->SetTitle("Integration time [#mus]");
grap2_norm->GetYaxis()->SetTitle("Normalised ADC [ADU]");
grap2_norm->GetYaxis()->SetTitleOffset(0.9);
grap2_norm->SetMinimum(-100);
grap2_norm->SetMaximum(100);
grap2_norm->Draw("AP");
flat_g2->Draw("same");
sprintf(savename,"plots/M%s/CurrentSource/pixel_%s_%d_g2norm.png", module_str.c_str(), pixel_type.c_str(), i);
mapcanvas->SaveAs((const char *)(savename));
mapcanvas->SetLeftMargin(0.1);
mapcanvas->SetRightMargin(0.13);
delete fit2_e;
delete fit3_e;
delete grap1_norm;
delete grap2_norm;
}
delete grap_g1;
@@ -890,7 +957,7 @@ int main(int argc, char* argv[]) {
g1map->GetYaxis()->SetTitleOffset(0.7);
if (module_str == "032") {
g1map->GetZaxis()->SetRangeUser(-12000,-4000);
} else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044") {
} else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044" || module_str == "045") {
g1map->GetZaxis()->SetRangeUser(-3000,0);
}
g1map->Draw("colz");
@@ -902,7 +969,7 @@ int main(int argc, char* argv[]) {
g2map->GetYaxis()->SetTitleOffset(0.7);
if (module_str == "032") {
g2map->GetZaxis()->SetRangeUser(-800,-400);
} else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044") {
} else if (module_str == "022" || module_str == "021" || module_str == "006" || module_str == "008" || module_str == "040" || module_str == "044" || module_str == "045") {
g2map->GetZaxis()->SetRangeUser(-200,-50);
}
g2map->Draw("colz");