File indexing completed on 2025-08-06 08:17:29
0001 #include "RawTowerGeomv2.h"
0002
0003 #include <cmath>
0004 #include <iostream>
0005
0006 RawTowerGeomv2::RawTowerGeomv2(RawTowerDefs::keytype id)
0007 : _towerid(id)
0008 {
0009 }
0010
0011 double RawTowerGeomv2::get_center_radius() const
0012 {
0013 return std::sqrt(_center_x * _center_x +
0014 _center_y * _center_y);
0015 }
0016
0017 double RawTowerGeomv2::get_eta() const
0018 {
0019 double eta;
0020 double radius;
0021 double theta;
0022 radius = std::sqrt(_center_x * _center_x + _center_y * _center_y);
0023 theta = std::atan2(radius, _center_z);
0024 eta = -std::log(std::tan(theta / 2.));
0025
0026 return eta;
0027 }
0028
0029 double RawTowerGeomv2::get_phi() const
0030 {
0031 return std::atan2(_center_y, _center_x);
0032 }
0033
0034 void RawTowerGeomv2::identify(std::ostream& os) const
0035 {
0036 os << "RawTowerGeomv2: x: " << get_center_x() << " y: " << get_center_y() << " z: " << get_center_z()
0037 << "\n dx: " << get_size_x() << " dy: " << get_size_y() << " dz: " << get_size_z() << std::endl;
0038 }