EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4Utils.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4Utils.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4MAIN_PHG4UTILS_H
4 #define G4MAIN_PHG4UTILS_H
5 
6 #include <string>
7 #include <utility> // for pair
8 
9 class G4VisAttributes;
10 
11 class PHG4Utils
12 {
13  public:
14  static double GetLengthForRapidityCoverage(const double radius, const double eta);
15  static double GetLengthForRapidityCoverage(const double radius);
16  static void SetPseudoRapidityCoverage(const double eta);
17  static void SetColour(G4VisAttributes *att, const std::string &mat);
18  static double get_theta(const double eta);
19  static double get_eta(const double theta);
20  static std::pair<double, double> get_etaphi(const double x, const double y, const double z);
21  static double get_eta(const double radius, const double z);
22  static std::pair<bool, double> line_and_rectangle_intersect(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy);
23  static std::pair<bool, std::pair<double, double>> lines_intersect(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy);
24  static double circle_rectangle_intersection(double x1, double y1, double x2, double y2, double mx, double my, double r);
25  static double sA(double r, double x, double y);
26  static std::string md5sum(const std::string &filename);
27 
28  private:
29  static double _eta_coverage;
30 };
31 
32 #endif // G4MAIN_PHG4UTILS_H