File indexing completed on 2025-08-03 08:16:56
0001 #ifndef CALOBASE_RAWTOWERGEO_H
0002 #define CALOBASE_RAWTOWERGEO_H
0003
0004 #include "RawTowerDefs.h"
0005
0006 #include <phool/PHObject.h>
0007 #include <phool/phool.h>
0008
0009 #include <iostream>
0010 #include <limits>
0011
0012 class RawTowerGeom : public PHObject
0013 {
0014 public:
0015 ~RawTowerGeom() override {}
0016
0017 RawTowerGeom(const RawTowerGeom& ) {};
0018
0019 void identify(std::ostream& os = std::cout) const override;
0020
0021 virtual void set_id(RawTowerDefs::keytype) { PHOOL_VIRTUAL_WARN("set_id()"); }
0022
0023 virtual RawTowerDefs::keytype get_id() const
0024 {
0025 PHOOL_VIRTUAL_WARN("get_id()");
0026 return 0;
0027 }
0028
0029 virtual int get_bineta() const
0030 {
0031 PHOOL_VIRTUAL_WARN("get_ieta()");
0032 return -1;
0033 }
0034
0035 virtual int get_binphi() const
0036 {
0037 PHOOL_VIRTUAL_WARN("get_iphi()");
0038 return -1;
0039 }
0040
0041 virtual int get_binl() const
0042 {
0043 PHOOL_VIRTUAL_WARN("get_binl()");
0044 return -1;
0045 }
0046
0047 virtual int get_column() const
0048 {
0049 PHOOL_VIRTUAL_WARN("get_column()");
0050 return -1;
0051 }
0052
0053 virtual int get_row() const
0054 {
0055 PHOOL_VIRTUAL_WARN("get_row()");
0056 return -1;
0057 }
0058
0059 virtual void set_center_x(double)
0060 {
0061 PHOOL_VIRTUAL_WARN("set_center_x()");
0062 return;
0063 }
0064
0065 virtual void set_center_y(double)
0066 {
0067 PHOOL_VIRTUAL_WARN("set_center_y()");
0068 return;
0069 }
0070
0071 virtual void set_center_z(double)
0072 {
0073 PHOOL_VIRTUAL_WARN("set_center_z()");
0074 return;
0075 }
0076
0077 virtual void set_vertices(const std::vector<double>&)
0078 {
0079 PHOOL_VIRTUAL_WARN("set_vertices()");
0080 return;
0081 }
0082
0083 virtual void compute_vertices(const std::vector<std::pair<double,double>>&,
0084 const std::pair<double,double>&,
0085 const double&,
0086 const double&)
0087 {
0088 PHOOL_VIRTUAL_WARN("compute_vertices()");
0089 return;
0090 }
0091
0092 virtual void set_size_x(double)
0093 {
0094 PHOOL_VIRTUAL_WARN("set_size_x()");
0095 return;
0096 }
0097
0098 virtual void set_size_y(double)
0099 {
0100 PHOOL_VIRTUAL_WARN("set_size_y()");
0101 return;
0102 }
0103
0104 virtual void set_size_z(double)
0105 {
0106 PHOOL_VIRTUAL_WARN("set_size_z()");
0107 return;
0108 }
0109
0110 virtual double get_center_x() const
0111 {
0112 PHOOL_VIRTUAL_WARN("get_center_x()");
0113 return std::numeric_limits<float>:: quiet_NaN();
0114 }
0115
0116 virtual double get_center_y() const
0117 {
0118 PHOOL_VIRTUAL_WARN("get_center_y()");
0119 return std::numeric_limits<float>:: quiet_NaN();
0120 }
0121
0122 virtual double get_center_z() const
0123 {
0124 PHOOL_VIRTUAL_WARN("get_center_z()");
0125 return std::numeric_limits<float>:: quiet_NaN();
0126 }
0127
0128 virtual double get_center_int_x() const
0129 {
0130 PHOOL_VIRTUAL_WARN("get_center_int_x()");
0131 return std::numeric_limits<float>:: quiet_NaN();
0132 }
0133
0134 virtual double get_center_int_y() const
0135 {
0136 PHOOL_VIRTUAL_WARN("get_center_int_y()");
0137 return std::numeric_limits<float>:: quiet_NaN();
0138 }
0139
0140 virtual double get_center_int_z() const
0141 {
0142 PHOOL_VIRTUAL_WARN("get_center_int_z()");
0143 return std::numeric_limits<float>:: quiet_NaN();
0144 }
0145
0146 virtual double get_center_ext_x() const
0147 {
0148 PHOOL_VIRTUAL_WARN("get_center_ext_x()");
0149 return std::numeric_limits<float>:: quiet_NaN();
0150 }
0151
0152 virtual double get_center_ext_y() const
0153 {
0154 PHOOL_VIRTUAL_WARN("get_center_ext_y()");
0155 return std::numeric_limits<float>:: quiet_NaN();
0156 }
0157
0158 virtual double get_center_ext_z() const
0159 {
0160 PHOOL_VIRTUAL_WARN("get_center_ext_z()");
0161 return std::numeric_limits<float>:: quiet_NaN();
0162 }
0163
0164 virtual double get_center_low_eta_x() const
0165 {
0166 PHOOL_VIRTUAL_WARN("get_center_low_eta_x()");
0167 return std::numeric_limits<float>:: quiet_NaN();
0168 }
0169
0170 virtual double get_center_low_eta_y() const
0171 {
0172 PHOOL_VIRTUAL_WARN("get_center_low_eta_y()");
0173 return std::numeric_limits<float>:: quiet_NaN();
0174 }
0175
0176 virtual double get_center_low_eta_z() const
0177 {
0178 PHOOL_VIRTUAL_WARN("get_center_low_eta_z()");
0179 return std::numeric_limits<float>:: quiet_NaN();
0180 }
0181
0182 virtual double get_center_high_eta_x() const
0183 {
0184 PHOOL_VIRTUAL_WARN("get_center_high_eta_x()");
0185 return std::numeric_limits<float>:: quiet_NaN();
0186 }
0187
0188 virtual double get_center_high_eta_y() const
0189 {
0190 PHOOL_VIRTUAL_WARN("get_center_high_eta_y()");
0191 return std::numeric_limits<float>:: quiet_NaN();
0192 }
0193
0194 virtual double get_center_high_eta_z() const
0195 {
0196 PHOOL_VIRTUAL_WARN("get_center_high_eta_z()");
0197 return std::numeric_limits<float>:: quiet_NaN();
0198 }
0199
0200 virtual double get_center_low_phi_x() const
0201 {
0202 PHOOL_VIRTUAL_WARN("get_center_low_phi_x()");
0203 return std::numeric_limits<float>:: quiet_NaN();
0204 }
0205
0206 virtual double get_center_low_phi_y() const
0207 {
0208 PHOOL_VIRTUAL_WARN("get_center_low_phi_y()");
0209 return std::numeric_limits<float>:: quiet_NaN();
0210 }
0211
0212 virtual double get_center_low_phi_z() const
0213 {
0214 PHOOL_VIRTUAL_WARN("get_center_low_phi_z()");
0215 return std::numeric_limits<float>:: quiet_NaN();
0216 }
0217
0218 virtual double get_center_high_phi_x() const
0219 {
0220 PHOOL_VIRTUAL_WARN("get_center_high_phi_x()");
0221 return std::numeric_limits<float>:: quiet_NaN();
0222 }
0223
0224 virtual double get_center_high_phi_y() const
0225 {
0226 PHOOL_VIRTUAL_WARN("get_center_high_phi_y()");
0227 return std::numeric_limits<float>:: quiet_NaN();
0228 }
0229
0230 virtual double get_center_high_phi_z() const
0231 {
0232 PHOOL_VIRTUAL_WARN("get_center_high_phi_z()");
0233 return std::numeric_limits<float>:: quiet_NaN();
0234 }
0235
0236 virtual double get_vertex_x(int) const
0237 {
0238 PHOOL_VIRTUAL_WARN("get_vertex_x()");
0239 return std::numeric_limits<float>:: quiet_NaN();
0240 }
0241
0242 virtual double get_vertex_y(int) const
0243 {
0244 PHOOL_VIRTUAL_WARN("get_vertex_y()");
0245 return std::numeric_limits<float>:: quiet_NaN();
0246 }
0247
0248 virtual double get_vertex_z(int) const
0249 {
0250 PHOOL_VIRTUAL_WARN("get_vertex_z()");
0251 return std::numeric_limits<float>:: quiet_NaN();
0252 }
0253
0254 virtual double get_size_x() const
0255 {
0256 PHOOL_VIRTUAL_WARN("get_size_x()");
0257 return std::numeric_limits<float>:: quiet_NaN();
0258 }
0259
0260 virtual double get_size_y() const
0261 {
0262 PHOOL_VIRTUAL_WARN("get_size_y()");
0263 return std::numeric_limits<float>:: quiet_NaN();
0264 }
0265
0266 virtual double get_size_z() const
0267 {
0268 PHOOL_VIRTUAL_WARN("get_size_z()");
0269 return std::numeric_limits<float>:: quiet_NaN();
0270 }
0271
0272 virtual double get_volume() const
0273 {
0274 PHOOL_VIRTUAL_WARN("get_volume()");
0275 return std::numeric_limits<float>:: quiet_NaN();
0276 }
0277
0278 virtual double get_center_radius() const
0279 {
0280 PHOOL_VIRTUAL_WARN("get_center_radius()");
0281 return std::numeric_limits<float>:: quiet_NaN();
0282 }
0283
0284 virtual double get_eta() const
0285 {
0286 PHOOL_VIRTUAL_WARN("get_eta()");
0287 return std::numeric_limits<float>:: quiet_NaN();
0288 }
0289
0290 virtual double get_theta() const
0291 {
0292 PHOOL_VIRTUAL_WARN("get_theta()");
0293 return std::numeric_limits<float>:: quiet_NaN();
0294 }
0295
0296 virtual double get_phi() const
0297 {
0298 PHOOL_VIRTUAL_WARN("get_phi()");
0299 return std::numeric_limits<float>:: quiet_NaN();
0300 }
0301
0302 virtual void set_tower_type(int)
0303 {
0304 PHOOL_VIRTUAL_WARN("set_tower_type()");
0305 return;
0306 }
0307 virtual int get_tower_type() const
0308 {
0309 PHOOL_VIRTUAL_WARN("get_tower_type()");
0310 return -1;
0311 }
0312
0313 virtual double get_rotx() const
0314 {
0315 PHOOL_VIRTUAL_WARN("get_rotx()");
0316 return std::numeric_limits<float>:: quiet_NaN();
0317 }
0318 virtual double get_roty() const
0319 {
0320 PHOOL_VIRTUAL_WARN("get_roty()");
0321 return std::numeric_limits<float>:: quiet_NaN();
0322 }
0323 virtual double get_rotz() const
0324 {
0325 PHOOL_VIRTUAL_WARN("get_rotz()");
0326 return std::numeric_limits<float>:: quiet_NaN();
0327 }
0328
0329 virtual void set_rotx(double)
0330 {
0331 PHOOL_VIRTUAL_WARN("set_rotx()");
0332 return;
0333 }
0334 virtual void set_roty(double)
0335 {
0336 PHOOL_VIRTUAL_WARN("set_roty()");
0337 return;
0338 }
0339 virtual void set_rotz(double)
0340 {
0341 PHOOL_VIRTUAL_WARN("set_rotz()");
0342 return;
0343 }
0344
0345 protected:
0346 RawTowerGeom() {}
0347
0348 ClassDefOverride(RawTowerGeom, 2)
0349 };
0350
0351 #endif