Back to home page

sPhenix code displayed by LXR

 
 

    


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);  // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast)
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 }