void plotAllRuns();
void plotAllRuns(TString);
void writeObservableToFile(TString);
+void writeObservableToFile();
+void writeObservableToFileHistSelect(TString);
Run** runs;
Int_t numberRuns;
Bool_t isBatch = kFALSE;
// {
//
// }
-void writeObservableToFile(TString observable)
+
+void writeObservableToFile(TString histogramtype)
{
- TString runnumberListe="Seed_";
- for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
- {
- TString runnumber=Form("%d",runs[runi]->labbook.runnumber);
-
- runnumberListe+=runnumber+"_";
- }
- system("mkdir "+ runs[0]->savepathresults + " -p");
- TString filename= runs[0]->savepathresults + "/" + runnumberListe + "_histograms.dat";
- fstream* fout = new fstream(filename,ios::out);
- TString header;
- for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
- {
- TString runnumber=Form("%d",runs[runi]->labbook.runnumber);
- header+="Bins\t"+runnumber+"\t";
- }
-
- *fout << header << endl;
- TString headerInfo;
+ if (histogramtype.Contains("threshold")) {
+ for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthreshold; } }
+ 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; } }
+ writeObservableToFileHistSelect(histogramtype);
+}
+void writeObservableToFileHistSelect(TString histogramtype)
+{
+ if (histogramtype.Contains("Seed") || histogramtype.Contains("seed")) {
+ for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
+ runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Seed; } }
+ else if (histogramtype.Contains("Sum") || histogramtype.Contains("sum")) {
+ for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
+ runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Sum; } }
+ else if (histogramtype.Contains("Veto") || histogramtype.Contains("veto")) {
+ for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+ runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Veto; } }
+ else {
+ for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+ runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Seed; } }
+ writeObservableToFile();
+}
+
+void writeObservableToFile()
+{
+ system("mkdir "+ runs[0]->savepathresults + " -p");
+ TString headerInfo = "";
+ for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
+ {
+ headerInfo+=runs[runi]->runcode+"\t\t\t";
+ }
+ TH1F* plothistogrampointer = *runs[0]->plothistogrampointer;
+ TString runnumberListe=Form("%s_",plothistogrampointer->GetName());
+ TString header="";
for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
- {
- headerInfo+="\t"+runs[runi]->runcode+"\t";
- }
-
+ {
+ 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);
*fout << headerInfo << endl;
-
- runs[0]->histogrampointer = &runs[0]->histogramthreshold;
-
- for(Int_t bin=0;bin<runs[0]->histogrampointer->Seed->GetNbinsX();bin++)//Achtung möglicher Bug, da hier nur die Bins vom ersten Run genommen werden, haben die anderen runs mehr/weniger Bins, kann es crashen, sollte aber normalerweise kein Problem sein, da alle Histogramme mit der gleichen Binzahl erstellt werden
- {
- for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
- {
- runs[runi]->histogrampointer = &runs[runi]->histogramthreshold;
- TString outline;
- outline=Form("%.1f\t%.1f",runs[runi]->histogrampointer->Seed->GetBinCenter(bin),runs[runi]->histogrampointer->Seed->GetBinContent(bin));
- *fout<<outline<<"\t";
- }
- *fout<<endl;
+ *fout << header << endl;
+ for(Int_t bini=0;bini<plothistogrampointer->GetNbinsX();bini++)
+ {
+ 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;
}
+ *fout<<endl;
+ }
fout->close();
return;
{
if (histogramtype.Contains("threshold")) {
for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
- runs[runi]->plothistogrampointer = &runs[runi]->histogramthreshold; } }
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthreshold; } }
else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron")) {
for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
- runs[runi]->plothistogrampointer = &runs[runi]->histogramCalibrated; } }
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated; } }
else {
for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
- runs[runi]->plothistogrampointer = &runs[runi]->histogram; } }
+ runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } }
plotAllRuns();
}
if (!runs[runi]->error)
{
canvas->cd(1);
- runs[runi]->plothistogrampointer->Seed->Draw("SAME");
- lastbin = runs[runi]->plothistogrampointer->Seed->GetBinCenter(runs[runi]->plothistogrampointer->Seed->FindLastBinAbove(2,1));
- runs[runi]->plothistogrampointer->Seed->SetAxisRange(0,lastbin*1.1,"X");
+ runs[runi]->plothistogramstructpointer->Seed->Draw("SAME");
+ lastbin = runs[runi]->plothistogramstructpointer->Seed->GetBinCenter(runs[runi]->plothistogramstructpointer->Seed->FindLastBinAbove(2,1));
+ runs[runi]->plothistogramstructpointer->Seed->SetAxisRange(0,lastbin*1.1,"X");
gPad->SetLogy(1);
- legendEntry = Form("%s", runs[runi]->plothistogrampointer->Seed->GetTitle());
- leg1->AddEntry(runs[runi]->plothistogrampointer->Veto, legendEntry, "l");
+ legendEntry = Form("%s", runs[runi]->plothistogramstructpointer->Seed->GetTitle());
+ leg1->AddEntry(runs[runi]->plothistogramstructpointer->Veto, legendEntry, "l");
leg1->Draw("SAME");
canvas->cd(2);
- runs[runi]->plothistogrampointer->Sum->Draw("SAME");
- lastbin = runs[runi]->plothistogrampointer->Sum->GetBinCenter(runs[runi]->plothistogrampointer->Sum->FindLastBinAbove(2,1));
- runs[runi]->plothistogrampointer->Sum->SetAxisRange(0,lastbin*1.1,"X");
+ runs[runi]->plothistogramstructpointer->Sum->Draw("SAME");
+ lastbin = runs[runi]->plothistogramstructpointer->Sum->GetBinCenter(runs[runi]->plothistogramstructpointer->Sum->FindLastBinAbove(2,1));
+ runs[runi]->plothistogramstructpointer->Sum->SetAxisRange(0,lastbin*1.1,"X");
canvas->cd(3);
- runs[runi]->plothistogrampointer->Veto->Draw("SAME");
- runs[runi]->plothistogrampointer->Veto->SetAxisRange(runs[runi]->plothistogrampointer->posVeto*0.7,runs[runi]->plothistogrampointer->posVeto*1.4,"X");
+ runs[runi]->plothistogramstructpointer->Veto->Draw("SAME");
+ runs[runi]->plothistogramstructpointer->Veto->SetAxisRange(runs[runi]->plothistogramstructpointer->posVeto*0.7,runs[runi]->plothistogramstructpointer->posVeto*1.4,"X");
canvas->cd(4);
- runs[runi]->plothistogrampointer->Noise->Draw("SAME");
- legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->plothistogrampointer->avgNoise);
- leg2->AddEntry(runs[runi]->plothistogrampointer->Veto, legendEntry, "l");
+ runs[runi]->plothistogramstructpointer->Noise->Draw("SAME");
+ legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->plothistogramstructpointer->avgNoise);
+ leg2->AddEntry(runs[runi]->plothistogramstructpointer->Veto, legendEntry, "l");
leg2->Draw("SAME");
}
}