Back to home page

sPhenix code displayed by LXR

 
 

    


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