More general fit range finder. Results unchanged.
This commit is contained in:
@ -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++) {
|
||||
|
Reference in New Issue
Block a user