Int_t* ReadRunList();
Int_t ReadRunList(std::vector<int>*);
-void plotAllRuns();
-void plotAllRuns(TString);
-void writeObservableToFile(TString);
-void writeObservableToFile();
+Bool_t plotAllRuns();
+Bool_t plotAllRuns(TString);
+Bool_t writeObservableToFile(TString);
+Bool_t writeObservableToFile();
void writeObservableToFileHistSelect(TString);
Run** runs;
Int_t numberRuns;
//
// }
-void writeObservableToFile(TString histogramtype)
+Bool_t writeObservableToFile(TString histogramtype)
{
if (histogramtype.Contains("threshold"))
{
if (histogramtype.Contains("calibrated"))
{
for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */
- runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthresholdCalibrated;
+ {
+ if (runs[runi]->histogramthresholdCalibrated.calibrated)
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthresholdCalibrated;
+ else
+ return 1;
+ }
}
else
{
}
else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron")) {
for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
- runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated; } }
+ if (runs[runi]->histogramCalibrated.calibrated)
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated;
+ else return 1; } }
else {
for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } }
writeObservableToFileHistSelect(histogramtype);
+ return 0;
}
void writeObservableToFileHistSelect(TString histogramtype)
{
writeObservableToFile();
}
-void writeObservableToFile()
+Bool_t writeObservableToFile()
{
system("mkdir "+ runs[0]->savepathresults + " -p");
TString headerInfo = "";
TString runnumberListe=Form("%s_",plothistogrampointer->GetName());
TString header="";
for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
- {
- plothistogrampointer = *runs[runi]->plothistogrampointer;
- runnumberListe+=Form("%d_",runs[runi]->labbook.runnumber);
- header+=Form("%d\t%s\t", runs[runi]->labbook.runnumber, plothistogrampointer->GetName());
+ {
+ if (runs[runi] != nullptr)
+ {
+ if (!runs[runi]->error)
+ {
+ plothistogrampointer = *runs[runi]->plothistogrampointer;
+ runnumberListe+=Form("%d_",runs[runi]->labbook.runnumber);
+ header+=Form("%d\t%s\t", runs[runi]->labbook.runnumber, plothistogrampointer->GetName());
+ }
+ }
}
TString filename= runs[0]->savepathresults + "/" + runnumberListe + "histograms.dat";
fstream* fout = new fstream(filename,ios::out);
{
for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
{
- plothistogrampointer = *runs[runi]->plothistogrampointer;
- TString outline;
- outline=Form("%.1f\t%.1f\t",plothistogrampointer->GetBinCenter(bini),plothistogrampointer->GetBinContent(bini));
- *fout<<outline;
+ if (runs[runi] != nullptr)
+ {
+ if (!runs[runi]->error)
+ {
+ plothistogrampointer = *runs[runi]->plothistogrampointer;
+ TString outline;
+ outline=Form("%.1f\t%.1f\t",plothistogrampointer->GetBinCenter(bini),plothistogrampointer->GetBinContent(bini));
+ *fout<<outline;
+ }
+ }
}
*fout<<endl;
}
fout->close();
- return;
+ return 0;
}
-void plotAllRuns(TString histogramtype)
+Bool_t plotAllRuns(TString histogramtype)
{
if (histogramtype.Contains("threshold"))
{
if (histogramtype.Contains("calibrated"))
{
for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */
- runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthresholdCalibrated;
+ if (runs[runi]->histogramthresholdCalibrated.calibrated)
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthresholdCalibrated;
+ else
+ return 1;
}
else
{
}
else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron")) {
for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
- runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated; } }
- else {
- for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
- runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } }
+ if (runs[runi]->histogramCalibrated.calibrated)
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated;
+ else
+ return 1; } }
+ else {
+ for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } }
plotAllRuns();
+ return 0;
}
-void plotAllRuns()
+Bool_t plotAllRuns()
{
if (numberRuns > 1)
{
f->Append(img);
f->Write();
}
+ return 0;
}
getFrame(framei);
for(Int_t pixeli=0; pixeli<fPixels; pixeli++)
{
- if (abs(1.*(fCdsmatrix[pixeli]-fPedestals[pixeli])) < 5.*fNoise[pixeli])
+ if (abs(1.*(fCdsmatrix[pixeli]-fPedestals[pixeli])) <= 5.*fNoise[pixeli])
{
pixelpedestal2[pixeli] += fCdsmatrix[pixeli];
}
getFrame(framei);
for(Int_t pixeli=0; pixeli<fPixels; pixeli++)
{
- if (abs(1.*(fCdsmatrix[pixeli]-fPedestals[pixeli])) < 5.*fNoise[pixeli])
+ if (abs(1.*(fCdsmatrix[pixeli]-fPedestals[pixeli])) <= 5.*fNoise[pixeli])
{
pixelnoise2[pixeli] += TMath::Power(1.*fCdsmatrix[pixeli]-pixelpedestal2[pixeli],2);
}
}
npixelscutawaysecondnoiseestimate = SumOverArray(nframescutawaysecondnoiseestimate, fPixels);
cout << "In second estimate of dynamic noise, cutted away " << npixelscutawaysecondnoiseestimate << " pixels, in " << frames << " frames. (" << (npixelscutawaysecondnoiseestimate*100./fPixels/frames) << " %)" << endl;
-
-
+
// third estimate
// cut away pixels with cds - pedestial > 5 * sigma of noise value from second estimate
// sum up over all frames every CDS value, pixelwise
getFrame(framei);
for(Int_t pixeli=0; pixeli<fPixels; pixeli++)
{
- if (abs(1.*(fCdsmatrix[pixeli]-pixelpedestal2[pixeli])) < 5.*pixelnoise2[pixeli])
+ if (abs(1.*(fCdsmatrix[pixeli]-pixelpedestal2[pixeli])) <= 5.*pixelnoise2[pixeli])
{
fPedestals[pixeli] += fCdsmatrix[pixeli];
if (!useexponentialdecayingnoisewindow)
getFrame(framei);
for(Int_t pixeli=0; pixeli<fPixels; pixeli++)
{
- if (abs(1.*(fCdsmatrix[pixeli]-pixelpedestal2[pixeli])) < 5.*pixelnoise2[pixeli])
+ if (abs(1.*(fCdsmatrix[pixeli]-pixelpedestal2[pixeli])) <= 5.*pixelnoise2[pixeli])
{
fNoise[pixeli] += TMath::Power(1.*fCdsmatrix[pixeli]-fPedestals[pixeli],2);
if (!useexponentialdecayingnoisewindow)
}
npixelscutawaythirdnoiseestimate = SumOverArray(nframescutawaythirdnoiseestimate, fPixels);
cout << "In third estimate of dynamic noise, cutted away " << npixelscutawaythirdnoiseestimate << " pixels in total in " << frames << " frames. (" << (npixelscutawaythirdnoiseestimate*100./fPixels/frames) << " %)" << endl;
-
+
if( fSave )
{
Float_t PEDESTAL;
fPedestalhighFrames++;
pedestalhighinthisframe=true;
}
- // cout<<"\rFrame: "<<fFrameNumber<< " row: " << (Int_t)pixeli/fColumns << " Pedestial of pixel: " << fPedestals[pixeli] << " --> Pedestal suspiciously high!"<<endl;
- // cout<<" CDS signal of sensor: ";
- // debugStream<>(fCdsmatrix , fPixels, fColumns, 1, 20);
- // cout<<" Pedestial of sensor: ";
- // debugStream<>(fPedestals , fPixels, fColumns, 1, 20);
- // cout<<" Hitted Pixel discriminator matrix: ";
- // debugStream<>(fHittedPixel, fPixels, fColumns, 1, 1);
- // exit(1);
+// cout<<"\rFrame: "<<fFrameNumber<< " row: " << (Int_t)pixeli/fColumns << " Pedestial of pixel: " << fPedestals[pixeli] << " --> Pedestal suspiciously high!"<<endl;
+// cout<<" CDS signal of sensor: ";
+// debugStream<>(fCdsmatrix , fPixels, fColumns, 1, 20);
+// cout<<" Pedestial of sensor: ";
+// debugStream<>(fPedestals , fPixels, fColumns, 1, 20);
+// cout<<" Hitted Pixel discriminator matrix: ";
+// debugStream<>(fHittedPixel, fPixels, fColumns, 1, 1);
+// exit(1);
}
if (abs(fNoise[pixeli])>20)
{