More general fit range finder. Results unchanged.

This commit is contained in:
redford_s
2019-02-06 10:25:51 +01:00
parent 8a667cd5d6
commit 8c07ef0c08

View File

@ -14,6 +14,42 @@
#include "TLegend.h"
#include "TPaveText.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());
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());
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[]) {
jungfrauStyle();
@ -321,18 +357,8 @@ int main(int argc, char* argv[]) {
if (r0_adc.size() > 1 && r1_adc.size() > 1) {
double g0max = *min_element(r1_filter.begin(),r1_filter.end());
if (g0max <= 1000) {
g0max = g0max - 10;
} else {
g0max = g0max - 50;
}
double g1min = *max_element(r0_filter.begin(),r0_filter.end());
if (g1min >= 1000) {
g1min = g1min + 50;
} else {
g1min = g1min + 10;
}
double g0max = highestPointBeforeSwitching(r0_filter,r1_filter);
double g1min = lowestPointAfterSwitching(r1_filter,r0_filter);
int data_in_range_g0 = 0;
for (size_t j = 0; j < r0_filter.size(); j++) {