// file zerosearch.h #ifndef __ZEROSEARCH_H #define __ZEROSEARCH_H #include "Region.h" #include std::vector *zerosearch( std::vector &input, int edge = 1, // search for transitions on rising edge=1, -1:falling unsigned int step = 4, // search in steps of step int VerbosityLevel = 1 // 1 means ... just normal warings are output. ); size_t ShiftRegionBy( std::vector &src, int Shift, int VerbosityLevel=0); size_t EnlargeRegion(std::vector &src, int Left, int Right, int VerbosityLevel=0); size_t findAbsMaxInRegions( std::vector ®ions, std::vector &data, int VerbosityLevel=0); bool compMaxPosOfRegions (Region a, Region b); size_t removeEqualMaxima( std::vector ®ions, int VerbosityLevel=0); size_t removeRegionOnFallingEdge( std::vector ®ions, unsigned int FallingEdgeWidth = 100, int VerbosityLevel=0); size_t removeRegionWithMaxOnEdge( std::vector ®ions, unsigned int EdgeWidth=3, int VerbosityLevel=0); size_t removeMaximaBelow( std::vector ®ions, float threshold = 2.0, int VerbosityLevel=0); size_t removeMaximaAbove( std::vector ®ions, float threshold= 14.0, int VerbosityLevel=0); size_t removeRegionWithToFlatSlope( std::vector ®ions, float minSlope=0, int VerbosityLevel=0); Region FindAbsMax( std::vector ®ions, int VerbosityLevel=0); // Calculate the position (sample) of a pulses half maximum size_t findTimeOfHalfMaxLeft( std::vector ®ions, std::vector &data, float baseline = -0.5, int beginRisingEdge = 5, int endRisingEdge = 10, int VerbosityLevel = 1); #endif