babymaker  e95a6a9342d4604277fe7cc6149b6b5b24447d89
utilities.hh
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 <iostream>
11 #include <cmath>
12 
13 #include <string>
14 #include <vector>
15 
16 #include "TString.h"
17 #include "TTree.h"
18 #include "TGraph.h"
19 
20 typedef std::pair<int,double> int_double;
21 typedef std::pair<double,double> double_double;
22 const long double PI = acos(-1.L);
24 
25 int change_branch_one(TString indir, TString name, TString outdir, std::vector<TString> var_type, std::vector<TString> var,
26  std::vector<std::vector<TString> > var_val, int totentries);
27 int change_branch_one(TString indir, TString name, TString outdir, std::vector<TString> var_type, std::vector<TString> var,
28  std::vector<TString> var_val, TString newname="empty");
29 bool eigen2x2(float matrix[2][2], float &eig1, float &eig2);
30 bool id_big2small(const int_double& left, const int_double& right);
31 bool dd_big2small(const double_double& left, const double_double& right);
32 bool dd_small2big(const double_double& left, const double_double& right);
33 long double DeltaPhi(long double phi1, long double phi2);
34 long double SignedDeltaPhi(long double phi1, long double phi2);
35 float dR(float eta1, float eta2, float phi1, float phi2);
36 TString roundNumber(double num, int decimals, double denom=1.);
37 TString addCommas(double num);
38 long double AddInQuadrature(long double x, long double y);
39 long double GetMass(long double e, long double px, long double py, long double pz);
40 long double GetMT(long double m1, long double pt1, long double phi1,
41  long double m2, long double pt2, long double phi2);
42 long double GetMT(long double pt1, long double phi1,
43  long double pt2, long double phi2);
44 bool Contains(const std::string& text, const std::string& pattern);
45 
46 std::vector<std::string> Tokenize(const std::string& input,
47  const std::string& tokens=" ");
48 void get_count_and_uncertainty(TTree& tree,
49  const std::string& cut,
50  double& count,
51  double& uncertainty);
52 void AddPoint(TGraph& graph, const double x, const double y);
53 TString hoursMinSec(long seconds);
54 float wISR(int nisr, std::vector<float> & sys_isr);
55 std::vector<TString> dirlist(const TString &folder,
56  const TString &inname="dir",
57  const TString &tag="");
58 void mergeNtuples(std::vector<TString> ntuples, TString outname);
59 
60 template<class T>
61 T noNaN(T val, T defval=1.){
62  if(isnan(val)) {
63  std::cout<<"Value is NaN. Returning "<<defval<<std::endl;
64  return defval;
65  } else return val;
66 }
67 
68 template<class T>
69 short Sign(T val){
70  return (T(0) < val) - (val < T(0));
71 }
72 
73 std::string execute(const std::string &cmd);
74 std::string RemoveTrailingNewlines(std::string str);
75 
76 std::vector<double> LinearSpacing(size_t npts, double low, double high);
77 
78 #endif
TString hoursMinSec(long seconds)
Definition: utilities.cc:599
long double SignedDeltaPhi(long double phi1, long double phi2)
Definition: utilities.cc:463
bool dd_small2big(const double_double &left, const double_double &right)
Definition: utilities.cc:450
tuple outdir
Definition: nev_check.py:24
void AddPoint(TGraph &graph, const double x, const double y)
Definition: utilities.cc:563
long double GetMT(long double m1, long double pt1, long double phi1, long double m2, long double pt2, long double phi2)
Definition: utilities.cc:524
std::string RemoveTrailingNewlines(std::string str)
Definition: utilities.cc:581
float dR(float eta1, float eta2, float phi1, float phi2)
Definition: utilities.cc:474
bool eigen2x2(float matrix[2][2], float &eig1, float &eig2)
Definition: utilities.cc:437
bool dd_big2small(const double_double &left, const double_double &right)
Definition: utilities.cc:454
bool Contains(const std::string &text, const std::string &pattern)
string cmd
Moving file.
std::pair< int, double > int_double
Definition: utilities.hh:20
long double GetMass(long double e, long double px, long double py, long double pz)
Definition: utilities.cc:519
short Sign(T val)
Definition: utilities.hh:69
TString addCommas(double num)
Definition: utilities.cc:499
long double AddInQuadrature(long double x, long double y)
Definition: utilities.cc:508
void get_count_and_uncertainty(TTree &tree, const std::string &cut, double &count, double &uncertainty)
Definition: utilities.cc:553
TString roundNumber(double num, int decimals, double denom=1.)
Definition: utilities.cc:478
T noNaN(T val, T defval=1.)
Definition: utilities.hh:61
std::vector< std::string > Tokenize(const std::string &input, const std::string &tokens=" ")
const long double PI
Definition: utilities.hh:22
int change_branch_one(TString indir, TString name, TString outdir, std::vector< TString > var_type, std::vector< TString > var, std::vector< std::vector< TString > > var_val, int totentries)
Definition: utilities.cc:32
bool id_big2small(const int_double &left, const int_double &right)
Definition: utilities.cc:446
varType
Definition: utilities.hh:23
void mergeNtuples(std::vector< TString > ntuples, TString outname)
Definition: utilities.cc:632
std::string execute(const std::string &cmd)
std::vector< double > LinearSpacing(size_t npts, double low, double high)
Definition: utilities.cc:588
float wISR(int nisr, std::vector< float > &sys_isr)
Definition: utilities.cc:612
std::pair< double, double > double_double
Definition: utilities.hh:21
std::vector< TString > dirlist(const TString &folder, const TString &inname="dir", const TString &tag="")
Definition: utilities.cc:287
long double DeltaPhi(long double phi1, long double phi2)
Definition: utilities.cc:458