File indexing completed on 2025-08-06 08:17:29
0001 #ifndef CALOBASE_RAWTOWERGEOMV2_H
0002 #define CALOBASE_RAWTOWERGEOMV2_H
0003
0004 #include "RawTowerGeom.h"
0005
0006 #include "RawTowerDefs.h"
0007
0008 #include <iostream>
0009
0010 class RawTowerGeomv2 : public RawTowerGeom
0011 {
0012 public:
0013 RawTowerGeomv2() {}
0014 RawTowerGeomv2(RawTowerDefs::keytype id);
0015 ~RawTowerGeomv2() override {}
0016
0017 void identify(std::ostream& os = std::cout) const override;
0018
0019 void set_id(RawTowerDefs::keytype key) override { _towerid = key; }
0020 RawTowerDefs::keytype get_id() const override { return _towerid; }
0021
0022 int get_bineta() const override { return RawTowerDefs::decode_index1(_towerid); }
0023 int get_binphi() const override { return RawTowerDefs::decode_index2(_towerid); }
0024 int get_column() const override { return RawTowerDefs::decode_index1(_towerid); }
0025 int get_row() const override { return RawTowerDefs::decode_index2(_towerid); }
0026
0027 void set_center_x(double x) override
0028 {
0029 _center_x = x;
0030 return;
0031 }
0032 void set_center_y(double y) override
0033 {
0034 _center_y = y;
0035 return;
0036 }
0037 void set_center_z(double z) override
0038 {
0039 _center_z = z;
0040 return;
0041 }
0042
0043 void set_size_x(double dx) override
0044 {
0045 _size_x = dx;
0046 return;
0047 }
0048 void set_size_y(double dy) override
0049 {
0050 _size_y = dy;
0051 return;
0052 }
0053 void set_size_z(double dz) override
0054 {
0055 _size_z = dz;
0056 return;
0057 }
0058
0059 double get_center_x() const override { return _center_x; }
0060 double get_center_y() const override { return _center_y; }
0061 double get_center_z() const override { return _center_z; }
0062
0063 double get_size_x() const override { return _size_x; }
0064 double get_size_y() const override { return _size_y; }
0065 double get_size_z() const override { return _size_z; }
0066 double get_volume() const override { return (_size_x * _size_y * _size_z); }
0067
0068 double get_center_radius() const override;
0069 double get_eta() const override;
0070 double get_phi() const override;
0071
0072 protected:
0073 RawTowerDefs::keytype _towerid = ~0U;
0074
0075 double _center_x = 0.;
0076 double _center_y = 0.;
0077 double _center_z = 0.;
0078
0079 double _size_x = 0.;
0080 double _size_y = 0.;
0081 double _size_z = 0.;
0082
0083 ClassDefOverride(RawTowerGeomv2, 3)
0084 };
0085
0086 #endif