susy_cfa  b611ccad937ea179f86a1f5663960264616c0a20
utilities.hpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 // utilities - Various functions used accross the code
3 //----------------------------------------------------------------------------
4 
5 #ifndef H_UTILITIES
6 #define H_UTILITIES
7 
8 #include <cstddef>
9 #include <cstdio>
10 #include <cmath>
11 
12 #include <string>
13 #include <vector>
14 
15 #include "TString.h"
16 #include "TTree.h"
17 #include "TGraph.h"
18 
19 typedef std::pair<int,double> int_double;
20 typedef std::pair<double,double> double_double;
21 const long double PI = acos(-1.L);
22 
23 float cross_section(const TString &file);
24 std::vector<TString> dirlist(const TString &folder,
25  const TString &inname="dir",
26  const TString &tag="");
27 bool eigen2x2(float matrix[2][2], float &eig1, float &eig2);
28 bool id_big2small(const int_double& left, const int_double& right);
29 bool dd_big2small(const double_double& left, const double_double& right);
30 bool dd_small2big(const double_double& left, const double_double& right);
31 long double DeltaPhi(long double phi1, long double phi2);
32 long double SignedDeltaPhi(long double phi1, long double phi2);
33 float dR(float eta1, float eta2, float phi1, float phi2);
34 TString roundNumber(double num, int decimals, double denom=1.);
35 TString addCommas(double num);
36 long double AddInQuadrature(long double x, long double y);
37 long double GetMass(long double e, long double px, long double py, long double pz);
38 long double GetMT(long double m1, long double pt1, long double phi1,
39  long double m2, long double pt2, long double phi2);
40 long double GetMT(long double pt1, long double phi1,
41  long double pt2, long double phi2);
42 bool Contains(const std::string& text, const std::string& pattern);
43 
44 std::vector<std::string> Tokenize(const std::string& input,
45  const std::string& tokens=" ");
46 void get_count_and_uncertainty(TTree& tree,
47  const std::string& cut,
48  double& count,
49  double& uncertainty);
50 void AddPoint(TGraph& graph, const double x, const double y);
51 
52 template<class T>
53 bool is_nan(const T &x){return x!=x;}
54 
55 template<class T>
56 short Sign(T val){
57  return (T(0) < val) - (val < T(0));
58 }
59 
60 std::string execute(const std::string &cmd);
61 std::string RemoveTrailingNewlines(std::string str);
62 
63 std::vector<double> LinearSpacing(size_t npts, double low, double high);
64 
65 #endif
const long double PI
Definition: utilities.hpp:21
long double GetMT(long double m1, long double pt1, long double phi1, long double m2, long double pt2, long double phi2)
Definition: utilities.cpp:291
TString roundNumber(double num, int decimals, double denom=1.)
Definition: utilities.cpp:245
void AddPoint(TGraph &graph, const double x, const double y)
Definition: utilities.cpp:330
void get_count_and_uncertainty(TTree &tree, const std::string &cut, double &count, double &uncertainty)
Definition: utilities.cpp:320
bool dd_big2small(const double_double &left, const double_double &right)
Definition: utilities.cpp:221
bool dd_small2big(const double_double &left, const double_double &right)
Definition: utilities.cpp:217
std::string execute(const std::string &cmd)
bool eigen2x2(float matrix[2][2], float &eig1, float &eig2)
Definition: utilities.cpp:204
float cross_section(const TString &file)
Definition: utilities.cpp:28
std::vector< double > LinearSpacing(size_t npts, double low, double high)
Definition: utilities.cpp:355
short Sign(T val)
Definition: utilities.hpp:56
float dR(float eta1, float eta2, float phi1, float phi2)
Definition: utilities.cpp:241
bool Contains(const std::string &text, const std::string &pattern)
bool id_big2small(const int_double &left, const int_double &right)
Definition: utilities.cpp:213
long double SignedDeltaPhi(long double phi1, long double phi2)
Definition: utilities.cpp:230
bool is_nan(const T &x)
Definition: utilities.hpp:53
std::string RemoveTrailingNewlines(std::string str)
Definition: utilities.cpp:348
std::pair< int, double > int_double
Definition: utilities.hpp:19
std::pair< double, double > double_double
Definition: utilities.hpp:20
long double DeltaPhi(long double phi1, long double phi2)
Definition: utilities.cpp:225
long double GetMass(long double e, long double px, long double py, long double pz)
Definition: utilities.cpp:286
std::vector< TString > dirlist(const TString &folder, const TString &inname="dir", const TString &tag="")
Definition: utilities.cpp:182
TString addCommas(double num)
Definition: utilities.cpp:266
long double AddInQuadrature(long double x, long double y)
Definition: utilities.cpp:275
std::vector< std::string > Tokenize(const std::string &input, const std::string &tokens=" ")