File indexing completed on 2025-12-17 09:21:43
0001
0002
0003 #ifndef G4DETECTORS_PHG4TPCGEOM_H
0004 #define G4DETECTORS_PHG4TPCGEOM_H
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <phool/phool.h>
0009
0010 #include <cmath>
0011 #include <iostream> // for cout, ostream
0012 #include <array>
0013
0014 class PHParameters;
0015
0016 class PHG4TpcGeom : public PHObject
0017 {
0018 public:
0019 ~PHG4TpcGeom() = default;
0020
0021
0022 void identify(std::ostream &os = std::cout) const override;
0023
0024 virtual int get_layer() const
0025 {
0026 PHOOL_VIRTUAL_WARN("get_layer()");
0027 return -99999;
0028 }
0029 virtual double get_radius() const
0030 {
0031 PHOOL_VIRTUAL_WARN("get_radius()");
0032 return NAN;
0033 }
0034 virtual double get_thickness() const
0035 {
0036 PHOOL_VIRTUAL_WARN("get_thickness()");
0037 return NAN;
0038 }
0039 virtual double get_zmin() const
0040 {
0041 PHOOL_VIRTUAL_WARN("get_zmin()");
0042 return NAN;
0043 }
0044 virtual double get_zmax() const
0045 {
0046 PHOOL_VIRTUAL_WARN("get_zmax()");
0047 return NAN;
0048 }
0049 virtual int get_binning() const
0050 {
0051 PHOOL_VIRTUAL_WARN("get_binning()");
0052 return -99999;
0053 }
0054 virtual int get_zbins() const
0055 {
0056 PHOOL_VIRTUAL_WARN("get_zbins()");
0057 return -99999;
0058 }
0059 virtual int get_phibins() const
0060 {
0061 PHOOL_VIRTUAL_WARN("get_phibins()");
0062 return -99999;
0063 }
0064 virtual double get_phistep() const
0065 {
0066 PHOOL_VIRTUAL_WARN("get_phistep()");
0067 return NAN;
0068 }
0069 virtual double get_phimin() const
0070 {
0071 PHOOL_VIRTUAL_WARN("get_phimin()");
0072 return NAN;
0073 }
0074 virtual double get_zstep() const
0075 {
0076 PHOOL_VIRTUAL_WARN("get_zstep()");
0077 return NAN;
0078 }
0079 virtual int get_etabins() const
0080 {
0081 PHOOL_VIRTUAL_WARN("get_etabins()");
0082 return -99999;
0083 }
0084 virtual double get_etastep() const
0085 {
0086 PHOOL_VIRTUAL_WARN("get_etastep()");
0087 return NAN;
0088 }
0089 virtual double get_etamin() const
0090 {
0091 PHOOL_VIRTUAL_WARN("get_etamin()");
0092 return NAN;
0093 }
0094 virtual double get_max_driftlength() const
0095 {
0096 PHOOL_VIRTUAL_WARN("get_max_driftlength()");
0097 return NAN;
0098 }
0099 virtual double get_CM_halfwidth() const
0100 {
0101 PHOOL_VIRTUAL_WARN("get_CM_halfwidth()");
0102 return NAN;
0103 }
0104 virtual double get_adc_clock() const
0105 {
0106 PHOOL_VIRTUAL_WARN("get_adc_clock()");
0107 return NAN;
0108 }
0109 virtual double get_extended_readout_time() const
0110 {
0111 PHOOL_VIRTUAL_WARN("get_extended_readout_time()");
0112 return NAN;
0113 }
0114 virtual double get_drift_velocity_sim() const
0115 {
0116 PHOOL_VIRTUAL_WARN("get_drift_velocity_sim()");
0117 return NAN;
0118 }
0119 virtual std::pair<double, double> get_zbounds(const int) const
0120 {
0121 PHOOL_VIRTUAL_WARN("get_zbounds()");
0122 return std::make_pair(NAN,NAN);
0123 }
0124 virtual std::pair<double, double> get_phibounds(const int) const
0125 {
0126 PHOOL_VIRTUAL_WARN("get_zbounds()");
0127 return std::make_pair(NAN,NAN);
0128 }
0129 virtual std::pair<double, double> get_etabounds(const int) const
0130 {
0131 PHOOL_VIRTUAL_WARN("get_zbounds()");
0132 return std::make_pair(NAN,NAN);
0133 }
0134 virtual double get_etacenter(const int) const
0135 {
0136 PHOOL_VIRTUAL_WARN("get_etacenter()");
0137 return NAN;
0138 }
0139 virtual double get_zcenter(const int) const
0140 {
0141 PHOOL_VIRTUAL_WARN("get_zcenter()");
0142 return NAN;
0143 }
0144 virtual double get_phicenter(const int, const int=0) const
0145 {
0146 PHOOL_VIRTUAL_WARN("get_phicenter()");
0147 return NAN;
0148 }
0149 virtual double get_phicenter_new(const int) const
0150 {
0151 PHOOL_VIRTUAL_WARN("get_phicenter_new()");
0152 return NAN;
0153 }
0154 virtual double get_phi(const float, const int) const
0155 {
0156 PHOOL_VIRTUAL_WARN("get_phi()");
0157 return NAN;
0158 }
0159 virtual int get_etabin(const double) const
0160 {
0161 PHOOL_VIRTUAL_WARN("get_etabin()");
0162 return -99999;
0163 }
0164 virtual int get_zbin(const double) const
0165 {
0166 PHOOL_VIRTUAL_WARN("get_zbin()");
0167 return -99999;
0168 }
0169 virtual int get_phibin(const double, int=0) const
0170 {
0171 PHOOL_VIRTUAL_WARN("get_phibin()");
0172 return -99999;
0173 }
0174 virtual int get_phibin_new(const double) const
0175 {
0176 PHOOL_VIRTUAL_WARN("get_phibin_new()");
0177 return -99999;
0178 }
0179 virtual float get_pad_float(const double, int) const
0180 {
0181 PHOOL_VIRTUAL_WARN("get_pad_float()");
0182 return -99999;
0183 }
0184 virtual float get_tbin_float(const double) const
0185 {
0186 PHOOL_VIRTUAL_WARN("get_tbin_float()");
0187 return -99999;
0188 }
0189 virtual int find_phibin(const double, int) const
0190 {
0191 PHOOL_VIRTUAL_WARN("get_phibin()");
0192 return -99999;
0193 }
0194
0195 virtual const std::array<std::vector<double>, 2> &get_sector_min_phi();
0196 virtual const std::array<std::vector<double>, 2> &get_sector_max_phi();
0197
0198 virtual void set_sector_min_phi(const std::array<std::vector<double>, 2>&)
0199 {
0200 PHOOL_VIRTUAL_WARN("set_sector_min_phi(const std::array<std::vector<double>, 2>&)");
0201 }
0202 virtual void set_sector_max_phi(const std::array<std::vector<double>, 2>&)
0203 {
0204 PHOOL_VIRTUAL_WARN("set_sector_max_phi(const std::array<std::vector<double>, 2>&)");
0205 }
0206 virtual void set_r_bias(const std::array<std::vector<double>, 2> &)
0207 {
0208 PHOOL_VIRTUAL_WARN("set_r_bias(const std::array<std::vector<double>, 2>&)");
0209 }
0210 virtual void set_phi_bias(const std::array<std::vector<double>, 2> &)
0211 {
0212 PHOOL_VIRTUAL_WARN("set_phi_bias(const std::array<std::vector<double>, 2>&)");
0213 }
0214
0215 virtual void set_layer(const int) { PHOOL_VIRTUAL_WARN("set_layer(const int)"); }
0216 virtual void set_radius(const double) { PHOOL_VIRTUAL_WARN("set_radius(const double)"); }
0217 virtual void set_thickness(const double) { PHOOL_VIRTUAL_WARN("set_thickness(const double)"); }
0218 virtual void set_zmin(const double) { PHOOL_VIRTUAL_WARN("set_zmin(const double)"); }
0219 virtual void set_zmax(const double) { PHOOL_VIRTUAL_WARN("set_zmax(const double)"); }
0220
0221 virtual void set_binning(const int) { PHOOL_VIRTUAL_WARN("set_binning(const int)"); }
0222 virtual void set_zbins(const int) { PHOOL_VIRTUAL_WARN("set_zbins(const int)"); }
0223 virtual void set_zstep(const double) { PHOOL_VIRTUAL_WARN("set_zstep(const double)"); }
0224 virtual void set_phibins(const int) { PHOOL_VIRTUAL_WARN("set_phibins(const int)"); }
0225
0226 virtual void set_phistep(const double) { PHOOL_VIRTUAL_WARN("set_phistep(const double)"); }
0227 virtual void set_phimin(const double) { PHOOL_VIRTUAL_WARN("set_phimin(const double)"); }
0228
0229
0230 virtual void set_etabins(const int) { PHOOL_VIRTUAL_WARN("set_etabins(const int)"); }
0231 virtual void set_etamin(const double) { PHOOL_VIRTUAL_WARN("set_etamin(const double)"); }
0232 virtual void set_etamax(const double) { PHOOL_VIRTUAL_WARN("set_etamax(const double)"); }
0233 virtual void set_etastep(const double) { PHOOL_VIRTUAL_WARN("set_etastep(const double)"); }
0234
0235 virtual void set_max_driftlength(const double) { PHOOL_VIRTUAL_WARN("set_max_driftlength(const double)"); }
0236 virtual void set_CM_halfwidth(const double) { PHOOL_VIRTUAL_WARN("set_CM_halfwidth(const double)"); }
0237 virtual void set_adc_clock(const double) { PHOOL_VIRTUAL_WARN("set_adc_clock(const double)"); }
0238 virtual void set_extended_readout_time(const double) { PHOOL_VIRTUAL_WARN("set_extended_readout_time(const double)"); }
0239 virtual void set_drift_velocity_sim(const double) { PHOOL_VIRTUAL_WARN("set_drift_velocity_sim(const double)"); }
0240
0241
0242 virtual void ImportParameters(const PHParameters & ) { return; }
0243
0244 protected:
0245 PHG4TpcGeom() = default;
0246
0247 ClassDefOverride(PHG4TpcGeom, 1)
0248 };
0249
0250 #endif