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

Last change on this file since 17138 was 15367, checked in by Jens Buss, 12 years ago
add functions
  • Property svn:executable set to *
File size: 2.3 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
66size_t calcCFDPositions(
67 vector<Region> &regions,
68 vector<float> &cfd_data
69 );
70
71// Calculate the position (sample) of a pulses half maximum
72size_t findTimeOfHalfMaxLeft(
73 std::vector<Region> &regions,
74 std::vector<float> &data,
75 float baseline = -0.5,
76 int beginRisingEdge = 5,
77 int endRisingEdge = 10,
78 int VerbosityLevel = 1);
79
80// Get the derived arrival times in terms of the position of selected pulses
81// position of the peak
82size_t GetMaxPositions(
83 vector<Region> &regions,
84 vector<int> &positions,
85 int VerbosityLevel);
86
87// Get the derived arrival times in terms of the position of selected pulses
88// rising edges
89size_t GetEdgePositions(
90 vector<Region> &regions,
91 vector<int> &positions,
92 int VerbosityLevel);
93
94
95#endif
Note: See TracBrowser for help on using the repository browser.