Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:19:46

0001 #include "RawTowerGeomv3.h"
0002 
0003 #include <cmath>
0004 #include <iostream>
0005 
0006 RawTowerGeomv3::RawTowerGeomv3(RawTowerDefs::keytype id)
0007   : _towerid(id)
0008 {
0009 }
0010 
0011 double RawTowerGeomv3::get_center_radius() const
0012 {
0013   return std::sqrt(_center_x * _center_x +
0014                    _center_y * _center_y);
0015 }
0016 
0017 double RawTowerGeomv3::get_theta() const
0018 {
0019   double radius = sqrt(_center_x * _center_x + _center_y * _center_y);
0020   double theta = atan2(radius, _center_z);
0021   return theta;
0022 }
0023 
0024 double RawTowerGeomv3::get_eta() const
0025 {
0026   double theta = get_theta();
0027   double eta = -log(tan(theta / 2.));
0028   return eta;
0029 }
0030 
0031 double RawTowerGeomv3::get_phi() const
0032 {
0033   return atan2(_center_y, _center_x);
0034 }
0035 
0036 int RawTowerGeomv3::get_bineta() const
0037 {
0038   RawTowerDefs::CalorimeterId caloid = RawTowerDefs::decode_caloid(_towerid);
0039   if (caloid == RawTowerDefs::LFHCAL)
0040   {
0041     return RawTowerDefs::decode_index1v2(_towerid);
0042   }
0043 
0044   return RawTowerDefs::decode_index1(_towerid);
0045 }
0046 
0047 int RawTowerGeomv3::get_binphi() const
0048 {
0049   RawTowerDefs::CalorimeterId caloid = RawTowerDefs::decode_caloid(_towerid);
0050   if (caloid == RawTowerDefs::LFHCAL)
0051   {
0052     return RawTowerDefs::decode_index2v2(_towerid);
0053   }
0054 
0055   return RawTowerDefs::decode_index2(_towerid);
0056 }
0057 
0058 void RawTowerGeomv3::identify(std::ostream& os) const
0059 {
0060   os << "RawTowerGeomv3:  x: " << get_center_x() << "  y: " << get_center_y() << "  z: " << get_center_z()
0061      << "\n           dx: " << get_size_x() << " dy: " << get_size_y() << " dz: " << get_size_z()
0062      << "\n           tower_type = " << _tower_type << std::endl;
0063 }