File indexing completed on 2025-08-06 08:18:54
0001
0002
0003 #ifndef G4DETECTORS_PHG4BLOCKGEOM_H
0004 #define G4DETECTORS_PHG4BLOCKGEOM_H
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <phool/phool.h>
0009
0010 #include <cmath>
0011 #include <iostream> // for cout, ostream
0012
0013 class PHG4BlockGeom : public PHObject
0014 {
0015 public:
0016 ~PHG4BlockGeom() override {}
0017
0018
0019 void identify(std::ostream &os = std::cout) const override;
0020
0021 virtual int get_layer() const
0022 {
0023 PHOOL_VIRTUAL_WARN("get_layer()");
0024 return -99999;
0025 }
0026 virtual double get_size_x() const
0027 {
0028 PHOOL_VIRTUAL_WARN("get_size_x()");
0029 return NAN;
0030 }
0031 virtual double get_size_y() const
0032 {
0033 PHOOL_VIRTUAL_WARN("get_size_y()");
0034 return NAN;
0035 }
0036 virtual double get_size_z() const
0037 {
0038 PHOOL_VIRTUAL_WARN("get_size_z()");
0039 return NAN;
0040 }
0041 virtual double get_center_x() const
0042 {
0043 PHOOL_VIRTUAL_WARN("get_place_x()");
0044 return NAN;
0045 }
0046 virtual double get_center_y() const
0047 {
0048 PHOOL_VIRTUAL_WARN("get_place_y()");
0049 return NAN;
0050 }
0051 virtual double get_center_z() const
0052 {
0053 PHOOL_VIRTUAL_WARN("get_place_z()");
0054 return NAN;
0055 }
0056 virtual double get_z_rot() const
0057 {
0058 PHOOL_VIRTUAL_WARN("get_z_rot()");
0059 return NAN;
0060 }
0061
0062 virtual double get_width() const
0063 {
0064 PHOOL_VIRTUAL_WARN("get_width()");
0065 return NAN;
0066 }
0067 virtual double get_length() const
0068 {
0069 PHOOL_VIRTUAL_WARN("get_length()");
0070 return NAN;
0071 }
0072 virtual double get_thickness() const
0073 {
0074 PHOOL_VIRTUAL_WARN("get_thickness()");
0075 return NAN;
0076 }
0077
0078 virtual double get_rot_matrix(const int, const int) const
0079 {
0080 PHOOL_VIRTUAL_WARN("get_rot_matrix(const int, const int)");
0081 return NAN;
0082 }
0083
0084 virtual void set_layer(const int) { PHOOL_VIRTUAL_WARN("set_layer(const int)"); }
0085 virtual void set_size(const double , const double , const double )
0086 {
0087 PHOOL_VIRTUAL_WARN("set_size(const double, const double, const double)");
0088 }
0089 virtual void set_place(const double , const double , const double )
0090 {
0091 PHOOL_VIRTUAL_WARN("set_place(const double, const double, const double)");
0092 }
0093 virtual void set_z_rot(const double) { PHOOL_VIRTUAL_WARN("set_z_rot(const double)"); }
0094
0095 virtual void convert_local_to_global(const double, const double, const double,
0096 double &, double &, double &) const
0097 {
0098 PHOOL_VIRTUAL_WARN("convert_local_to_global(const double, const double, const double, double &, double &, double &)");
0099 }
0100 virtual void convert_global_to_local(const double, const double, const double,
0101 double &, double &, double &) const
0102 {
0103 PHOOL_VIRTUAL_WARN("convert_global_to_local(const double, const double, const double, double &, double &, double &)");
0104 }
0105
0106 protected:
0107 PHG4BlockGeom() {}
0108
0109 ClassDefOverride(PHG4BlockGeom, 1)
0110 };
0111
0112 #endif