More general functions to find the fit ranges. Results unchanged.
The plus/minus 1 in the starting point is important to catch the case where in one gain there are no points atall without switching.
This commit is contained in:
@ -11,6 +11,42 @@
|
|||||||
#include "TPaveStats.h"
|
#include "TPaveStats.h"
|
||||||
#include "TLegend.h"
|
#include "TLegend.h"
|
||||||
|
|
||||||
|
double highestPointBeforeSwitching(const vector<double> &lower_filter, const vector<double> &higher_filter) {
|
||||||
|
|
||||||
|
// find the highest value in lower_filter that is lower than all entries in higher_filter
|
||||||
|
double highest_point_before_switching = *min_element(lower_filter.begin(),lower_filter.end())-1.;
|
||||||
|
|
||||||
|
double lowest_entry_in_higher_filter = *min_element(higher_filter.begin(),higher_filter.end());
|
||||||
|
for(vector<double>::const_iterator it = lower_filter.begin(); it != lower_filter.end(); ++it) {
|
||||||
|
if (*it < lowest_entry_in_higher_filter) {
|
||||||
|
if (*it > highest_point_before_switching) {
|
||||||
|
highest_point_before_switching = *it;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return highest_point_before_switching;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
double lowestPointAfterSwitching(const vector<double> &higher_filter, const vector<double> &lower_filter) {
|
||||||
|
|
||||||
|
// find the lowest value in higher_filter that is higher than all entries in lower_filter
|
||||||
|
double lowest_point_after_switching = *max_element(higher_filter.begin(),higher_filter.end())+1;
|
||||||
|
|
||||||
|
double highest_entry_in_lower_filter = *max_element(lower_filter.begin(),lower_filter.end());
|
||||||
|
for(vector<double>::const_iterator it = higher_filter.begin(); it != higher_filter.end(); ++it) {
|
||||||
|
if (*it > highest_entry_in_lower_filter) {
|
||||||
|
if (*it < lowest_point_after_switching) {
|
||||||
|
lowest_point_after_switching = *it;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return lowest_point_after_switching;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
jungfrauStyle();
|
jungfrauStyle();
|
||||||
gROOT->SetBatch(1);
|
gROOT->SetBatch(1);
|
||||||
@ -402,12 +438,7 @@ int main(int argc, char* argv[]) {
|
|||||||
rangemin0 = 4;
|
rangemin0 = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
double rangemax0 = *min_element(r1_filter.begin(),r1_filter.end());
|
double rangemax0 = highestPointBeforeSwitching(r0_filter,r1_filter);
|
||||||
if (nsteps == 40) {
|
|
||||||
rangemax0 = rangemax0 - 2.;
|
|
||||||
} else if (nsteps == 80) {
|
|
||||||
rangemax0 = rangemax0 - 1.;
|
|
||||||
}
|
|
||||||
range0maxhist->Fill(rangemax0);
|
range0maxhist->Fill(rangemax0);
|
||||||
range0maxmap->Fill(i%NC,i/NC,rangemax0);
|
range0maxmap->Fill(i%NC,i/NC,rangemax0);
|
||||||
|
|
||||||
@ -431,12 +462,7 @@ int main(int argc, char* argv[]) {
|
|||||||
fit1_e->SetLineColor(kBlue);
|
fit1_e->SetLineColor(kBlue);
|
||||||
fit1_e->SetLineStyle(2);
|
fit1_e->SetLineStyle(2);
|
||||||
|
|
||||||
double rangemin1 = *max_element(r0_filter.begin(),r0_filter.end());
|
double rangemin1 = lowestPointAfterSwitching(r1_filter,r0_filter);
|
||||||
if (nsteps == 40) {
|
|
||||||
rangemin1 = rangemin1 + 2.;
|
|
||||||
} else if (nsteps == 80) {
|
|
||||||
rangemin1 = rangemin1 + 1.;
|
|
||||||
}
|
|
||||||
range1minhist->Fill(rangemin1);
|
range1minhist->Fill(rangemin1);
|
||||||
range1minmap->Fill(i%NC,i/NC,rangemin1);
|
range1minmap->Fill(i%NC,i/NC,rangemin1);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user