File indexing completed on 2025-08-06 08:17:56
0001 #include "DumpPHG4CylinderCellContainer.h"
0002
0003 #include <phool/PHIODataNode.h>
0004
0005 #include <g4detectors/PHG4Cell.h> // for PHG4Cell::EdepCon...
0006 #include <g4detectors/PHG4CylinderCell.h>
0007 #include <g4detectors/PHG4CylinderCellContainer.h>
0008
0009 #include <cmath>
0010 #include <map>
0011 #include <ostream>
0012 #include <string>
0013 #include <utility>
0014
0015 using MyNode_t = PHIODataNode<PHG4CylinderCellContainer>;
0016
0017 DumpPHG4CylinderCellContainer::DumpPHG4CylinderCellContainer(const std::string &NodeName)
0018 : DumpObject(NodeName)
0019 {
0020 return;
0021 }
0022
0023 int DumpPHG4CylinderCellContainer::process_Node(PHNode *myNode)
0024 {
0025 PHG4CylinderCellContainer *phg4cellcontainer = nullptr;
0026 MyNode_t *thisNode = static_cast<MyNode_t *>(myNode);
0027 if (thisNode)
0028 {
0029 phg4cellcontainer = thisNode->getData();
0030 }
0031 if (phg4cellcontainer)
0032 {
0033 PHG4CylinderCellContainer::ConstIterator hiter;
0034 PHG4CylinderCellContainer::ConstRange cell_begin_end = phg4cellcontainer->getCylinderCells();
0035 *fout << "size: " << phg4cellcontainer->size() << std::endl;
0036 for (hiter = cell_begin_end.first; hiter != cell_begin_end.second; hiter++)
0037 {
0038 *fout << "id: 0x" << std::hex << hiter->second->get_cell_id() << std::dec << std::endl;
0039 *fout << "layer: " << hiter->second->get_layer() << std::endl;
0040 *fout << "edep: " << hiter->second->get_edep() << std::endl;
0041 int tmp = hiter->second->get_binz();
0042 if (tmp != -1)
0043 {
0044 *fout << "binz: " << tmp << std::endl;
0045 }
0046 tmp = hiter->second->get_binphi();
0047 if (tmp != -1)
0048 {
0049 *fout << "binphi: " << tmp << std::endl;
0050 }
0051 tmp = hiter->second->get_bineta();
0052 if (tmp != -1)
0053 {
0054 *fout << "bineta: " << tmp << std::endl;
0055 }
0056 float dtmp = hiter->second->get_light_yield();
0057 if (std::isfinite(dtmp))
0058 {
0059 *fout << "get_light_yield(): " << dtmp << std::endl;
0060 }
0061 tmp = hiter->second->get_fiber_ID();
0062 if (tmp != -1)
0063 {
0064 *fout << "get_fiber_ID(): " << hiter->second->get_fiber_ID() << std::endl;
0065 }
0066 std::string tmpstr = hiter->second->get_sensor_index();
0067 if (!tmpstr.empty())
0068 {
0069 *fout << "get_sensor_index(): " << hiter->second->get_sensor_index() << std::endl;
0070 }
0071 tmp = hiter->second->get_ladder_phi_index();
0072 if (tmp != -9999)
0073 {
0074 *fout << "get_ladder_phi_index(): " << hiter->second->get_ladder_phi_index() << std::endl;
0075 }
0076 tmp = hiter->second->get_ladder_z_index();
0077 if (tmp != -9999)
0078 {
0079 *fout << "get_ladder_z_index(): " << hiter->second->get_ladder_z_index() << std::endl;
0080 }
0081 tmp = hiter->second->get_j_index();
0082 if (tmp != -9999)
0083 {
0084 *fout << "get_j_index(): " << hiter->second->get_j_index() << std::endl;
0085 }
0086 tmp = hiter->second->get_k_index();
0087 if (tmp != -9999)
0088 {
0089 *fout << "get_k_index(): " << hiter->second->get_k_index() << std::endl;
0090 }
0091 tmp = hiter->second->get_l_index();
0092 if (tmp != -9999)
0093 {
0094 *fout << "get_l_index(): " << hiter->second->get_l_index() << std::endl;
0095 }
0096 tmp = hiter->second->get_pixel_index();
0097 if (tmp != -9999)
0098 {
0099 *fout << "get_pixel_index(): " << hiter->second->get_pixel_index() << std::endl;
0100 }
0101 tmp = hiter->second->get_chip_index();
0102 if (tmp != -9999)
0103 {
0104 *fout << "get_chip_index(): " << hiter->second->get_chip_index() << std::endl;
0105 }
0106 tmp = hiter->second->get_module_index();
0107 if (tmp != -9999)
0108 {
0109 *fout << "get_module_index(): " << hiter->second->get_module_index() << std::endl;
0110 }
0111 tmp = hiter->second->get_half_stave_index();
0112 if (tmp != -9999)
0113 {
0114 *fout << "get_half_stave_index(): " << hiter->second->get_half_stave_index() << std::endl;
0115 }
0116 tmp = hiter->second->get_stave_index();
0117 if (tmp != -9999)
0118 {
0119 *fout << "get_stave_index(): " << hiter->second->get_stave_index() << std::endl;
0120 }
0121
0122 PHG4CylinderCell::EdepConstRange hitedep_begin_end = hiter->second->get_g4hits();
0123 for (PHG4CylinderCell::EdepConstIterator iter = hitedep_begin_end.first; iter != hitedep_begin_end.second; ++iter)
0124 {
0125 *fout << "hit 0x" << std::hex << iter->first << std::dec << " edep: " << iter->second << std::endl;
0126 }
0127 PHG4CylinderCell::ShowerEdepConstRange shower_begin_end = hiter->second->get_g4showers();
0128 for (PHG4CylinderCell::ShowerEdepConstIterator iter = shower_begin_end.first; iter != shower_begin_end.second; ++iter)
0129 {
0130 *fout << "shower " << iter->first << " edep: " << iter->second << std::endl;
0131 }
0132 }
0133 }
0134 return 0;
0135 }