diff --git a/detector.c b/detector.c index a16d817..b9a754b 100644 --- a/detector.c +++ b/detector.c @@ -504,6 +504,22 @@ void event_baseline(event *current_event, double baseline_min, double baseline_m } current_event->baseline_before = baseline_before; current_event->baseline_after = baseline_after; + + int64_t i; + int64_t length = current_event->length + current_event->padding_before + current_event->padding_after; + double maxdeviation = 0; + double deviation; + double baseline = 0.5 * (baseline_before + baseline_after); + for (i=0; isignal[i] - baseline); + if (deviation > maxdeviation) + { + maxdeviation = deviation; + } + } + current_event->maxdeviation = maxdeviation; + } } diff --git a/io.c b/io.c index dcd4184..4addd7a 100644 --- a/io.c +++ b/io.c @@ -200,6 +200,7 @@ n_levels,\ rc_const1_us,\ rc_const2_us,\ residual_pA,\ +max_deviation_pA,\ level_current_pA,\ level_duration_us,\ blockages_pA,\ @@ -247,6 +248,7 @@ void print_event_line(FILE *events, FILE *rate, event *current, double timestep, %d,\ %g,\ %g,\ + %g,\ %g,",\ current->index, \ current->type, \ @@ -266,7 +268,8 @@ void print_event_line(FILE *events, FILE *rate, event *current, double timestep, current->numlevels, \ current->rc1 * timestep * 1e6, \ current->rc2 * timestep * 1e6, \ - current->residual); + current->residual, \ + current->maxdeviation); while (level) { fprintf(events,"%g",level->current); diff --git a/utils.h b/utils.h index 0048c0e..12d3e26 100644 --- a/utils.h +++ b/utils.h @@ -99,6 +99,7 @@ struct Event double rc1; double rc2; double residual; + double maxdeviation; struct Edge *first_edge; struct Cusumlevel *first_level; };