/
tools.hpp
58 lines (43 loc) · 1.99 KB
/
tools.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
Copyright 2011 Julian Schutsch
This file is part of TRTGarf
TRTGarf is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
TRTGarf is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with TRTGarf. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _tools_
#define _tools_
#include <string.h>
#include <fstream>
#include <sstream>
#include <vector>
#include "math.h"
#include <exception>
double CalcPoly(std::vector<double> ACoefficients,double AValue);
// Resets Root into a sane state (plots etc)
void InitRoot();
// Calculates the separation power for two given histograms using
// |mean1-mean2|/sqrt(sigma1²+sigma2²)
double BetaGammaToEnergy(double AMass, // x/c^2 Mass unit dictates result unit
double ABetaGamma);
double MomentumToEnergy(double AMass, // x/c^2 Units must be equal and dictate result unit
double AEnergy); // x/c
std::string IntToStr(int value);
std::string DoubleToStr(double value);
// Combines an absolute or relative path with a relativ path. Takes care of slashes.
std::string CombinePath(std::string ALeft, std::string ARight);
// Extends a relative path to an absolute path. Absolute paths are returned as they are.
std::string CompletePath(std::string APath);
void Trim(std::string & AString);
void FilterCharacter(std::string & AString,char ACharacter);
std::vector<std::string> SplitString(std::string AString);
std::vector<std::string> TriggeredSplitString(std::string AString, std::string ATrigger);
bool HasNonEmpty(std::vector<std::string> AVector);
#endif