From: Benjamin Linnik Date: Sat, 16 May 2015 10:03:04 +0000 (+0200) Subject: Run analyzer: writeObservableToFile() added X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=421319127fc57737eccc7c2107f5ec160ba23949;p=radhard.git Run analyzer: writeObservableToFile() added --- diff --git a/MABS_run_analyzer/ChargeSpektrum.c b/MABS_run_analyzer/ChargeSpektrum.c index 6be47b3..30a9c0b 100644 --- a/MABS_run_analyzer/ChargeSpektrum.c +++ b/MABS_run_analyzer/ChargeSpektrum.c @@ -20,6 +20,8 @@ Int_t ReadRunList(std::vector*); void plotAllRuns(); void plotAllRuns(TString); void writeObservableToFile(TString); +void writeObservableToFile(); +void writeObservableToFileHistSelect(TString); Run** runs; Int_t numberRuns; Bool_t isBatch = kFALSE; @@ -215,47 +217,69 @@ Int_t ReadRunList(std::vector* runlist) // { // // } -void writeObservableToFile(TString observable) + +void writeObservableToFile(TString histogramtype) { - TString runnumberListe="Seed_"; - for(Int_t runi=0;runilabbook.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;runilabbook.runnumber); - header+="Bins\t"+runnumber+"\t"; - } - - *fout << header << endl; - TString headerInfo; + if (histogramtype.Contains("threshold")) { + for(Int_t runi=0;runiplothistogramstructpointer = &runs[runi]->histogramthreshold; } } + else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron")) { + for(Int_t runi=0;runiplothistogramstructpointer = &runs[runi]->histogramCalibrated; } } + else { + for(Int_t runi=0;runiplothistogramstructpointer = &runs[runi]->histogram; } } + writeObservableToFileHistSelect(histogramtype); +} +void writeObservableToFileHistSelect(TString histogramtype) +{ + if (histogramtype.Contains("Seed") || histogramtype.Contains("seed")) { + for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->plothistogramstructpointer->Seed; } } + else if (histogramtype.Contains("Sum") || histogramtype.Contains("sum")) { + for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->plothistogramstructpointer->Sum; } } + else if (histogramtype.Contains("Veto") || histogramtype.Contains("veto")) { + for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->plothistogramstructpointer->Veto; } } + else { + for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->plothistogramstructpointer->Seed; } } + writeObservableToFile(); +} + +void writeObservableToFile() +{ + system("mkdir "+ runs[0]->savepathresults + " -p"); + TString headerInfo = ""; + for(Int_t runi=0;runiruncode+"\t\t\t"; + } + TH1F* plothistogrampointer = *runs[0]->plothistogrampointer; + TString runnumberListe=Form("%s_",plothistogrampointer->GetName()); + TString header=""; for(Int_t runi=0;runiruncode+"\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;binhistogrampointer->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;runihistogrampointer = &runs[runi]->histogramthreshold; - TString outline; - outline=Form("%.1f\t%.1f",runs[runi]->histogrampointer->Seed->GetBinCenter(bin),runs[runi]->histogrampointer->Seed->GetBinContent(bin)); - *fout<GetNbinsX();bini++) + { + for(Int_t runi=0;runiplothistogrampointer; + TString outline; + outline=Form("%.1f\t%.1f\t",plothistogrampointer->GetBinCenter(bini),plothistogrampointer->GetBinContent(bini)); + *fout<close(); return; @@ -265,13 +289,13 @@ void plotAllRuns(TString histogramtype) { if (histogramtype.Contains("threshold")) { for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->histogramthreshold; } } + runs[runi]->plothistogramstructpointer = &runs[runi]->histogramthreshold; } } else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron")) { for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->histogramCalibrated; } } + runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated; } } else { for(Int_t runi=0;runiplothistogrampointer = &runs[runi]->histogram; } } + runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } } plotAllRuns(); } @@ -303,24 +327,24 @@ void 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"); } } diff --git a/MABS_run_analyzer/Run.c b/MABS_run_analyzer/Run.c index 02d4f85..2cd06e6 100644 --- a/MABS_run_analyzer/Run.c +++ b/MABS_run_analyzer/Run.c @@ -125,7 +125,6 @@ Run::Run(Int_t runnumber, Int_t loopi) initRootParameters(); cout << colorwhite << "initHistograms():" << endlr; initHistograms(&histogram); - plothistogrampointer = &histogram; initHistograms(&histogramthreshold, " threshold"); runexistsinDB = 1; debugDBreadout(); @@ -1207,6 +1206,8 @@ void Run::initHistograms(histogramstruct* histogramstructpointer, TString suffix histogramstructpointer->Noise->GetXaxis()->CenterTitle(); histogramstructpointer->Noise->GetYaxis()->CenterTitle(); } + plothistogrampointer = &histogram.Seed; + plothistogramstructpointer = &histogram; } void Run::initHistogram(TH1F* &histogrampointer, TString prefix) diff --git a/MABS_run_analyzer/Run.h b/MABS_run_analyzer/Run.h index cba162b..e2da7b3 100644 --- a/MABS_run_analyzer/Run.h +++ b/MABS_run_analyzer/Run.h @@ -419,7 +419,8 @@ public: histogramstruct histogram; histogramstruct histogramCalibrated; histogramstruct histogramthreshold; - histogramstruct* plothistogrampointer; + histogramstruct* plothistogramstructpointer; + TH1F** plothistogrampointer; /** @brief Plots all histograms from #histogram into one canvas */ Bool_t plotAllHistograms(histogramstruct*);