source: fact/tools/rootmacros/zerosearch.h@ 15148

Last change on this file since 15148 was 15119, checked in by Jens Buss, 12 years ago
add GetEdgePositions and GetMaxPositions to functions
  • Property svn:executable set to *
File size: 2.2 KB
Line 
1// file zerosearch.h
2#ifndef __ZEROSEARCH_H
3#define __ZEROSEARCH_H
4
5#include "Region.h"
6#include <vector>
7
8std::vector<Region> *zerosearch(
9 std::vector<float> &input,
10 int edge = 1, // search for transitions on rising edge=1, -1:falling
11 unsigned int step = 4, // search in steps of step
12 int VerbosityLevel = 1 // 1 means ... just normal warings are output.
13);
14
15size_t ShiftRegionBy(
16 std::vector<Region> &src,
17 int Shift,
18 int VerbosityLevel=0);
19
20size_t EnlargeRegion(std::vector<Region> &src,
21 int Left,
22 int Right,
23 int VerbosityLevel=0);
24
25size_t findAbsMaxInRegions(
26 std::vector<Region> &regions,
27 std::vector<float> &data,
28 int VerbosityLevel=0);
29
30bool compMaxPosOfRegions (Region a, Region b);
31
32size_t removeEqualMaxima(
33 std::vector<Region> &regions,
34 int VerbosityLevel=0);
35
36size_t removeRegionOnFallingEdge(
37 std::vector<Region> &regions,
38 unsigned int FallingEdgeWidth = 100,
39 int VerbosityLevel=0);
40
41
42size_t removeRegionWithMaxOnEdge(
43 std::vector<Region> &regions,
44 unsigned int EdgeWidth=3,
45 int VerbosityLevel=0);
46
47size_t removeMaximaBelow(
48 std::vector<Region> &regions,
49 float threshold = 2.0,
50 int VerbosityLevel=0);
51
52size_t removeMaximaAbove(
53 std::vector<Region> &regions,
54 float threshold= 14.0,
55 int VerbosityLevel=0);
56
57size_t removeRegionWithToFlatSlope(
58 std::vector<Region> &regions,
59 float minSlope=0,
60 int VerbosityLevel=0);
61
62Region FindAbsMax(
63 std::vector<Region> &regions,
64 int VerbosityLevel=0);
65
66// Calculate the position (sample) of a pulses half maximum
67size_t findTimeOfHalfMaxLeft(
68 std::vector<Region> &regions,
69 std::vector<float> &data,
70 float baseline = -0.5,
71 int beginRisingEdge = 5,
72 int endRisingEdge = 10,
73 int VerbosityLevel = 1);
74
75// Get the derived arrival times in terms of the position of selected pulses
76// position of the peak
77size_t GetMaxPositions(
78 vector<Region> &regions,
79 vector<int> &maxPositions,
80 int VerbosityLevel);
81
82// Get the derived arrival times in terms of the position of selected pulses
83// rising edges
84size_t GetEdgePositions(
85 vector<Region> &regions,
86 vector<int> &edgePos,
87 int VerbosityLevel);
88
89
90#endif
Note: See TracBrowser for help on using the repository browser.