Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:56

0001 #include "DumpRawTowerContainer.h"
0002 
0003 #include <phool/PHIODataNode.h>
0004 
0005 #include <calobase/RawTower.h>
0006 #include <calobase/RawTowerContainer.h>
0007 
0008 #include <map>
0009 #include <ostream>
0010 #include <string>
0011 #include <utility>
0012 
0013 using MyNode_t = PHIODataNode<RawTowerContainer>;
0014 
0015 DumpRawTowerContainer::DumpRawTowerContainer(const std::string &NodeName)
0016   : DumpObject(NodeName)
0017 {
0018   return;
0019 }
0020 
0021 int DumpRawTowerContainer::process_Node(PHNode *myNode)
0022 {
0023   RawTowerContainer *rawtowercontainer = nullptr;
0024   MyNode_t *thisNode = static_cast<MyNode_t *>(myNode);  // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast)
0025   if (thisNode)
0026   {
0027     rawtowercontainer = thisNode->getData();
0028   }
0029   if (rawtowercontainer)
0030   {
0031     RawTowerContainer::ConstIterator hiter;
0032     RawTowerContainer::ConstRange begin_end = rawtowercontainer->getTowers();
0033     *fout << "size: " << rawtowercontainer->size() << std::endl;
0034     for (hiter = begin_end.first; hiter != begin_end.second; ++hiter)
0035     {
0036       RawTower *rawtwr = hiter->second;
0037       *fout << "bineta: " << rawtwr->get_bineta() << std::endl;
0038       *fout << "binphi: " << rawtwr->get_binphi() << std::endl;
0039       *fout << "energy: " << rawtwr->get_energy() << std::endl;
0040       RawTower::CellConstRange cbegin_end = rawtwr->get_g4cells();
0041       for (RawTower::CellConstIterator iter = cbegin_end.first; iter != cbegin_end.second; ++iter)
0042       {
0043         *fout << "cell key: 0x" << std::hex << iter->first
0044               << std::dec << " edep: " << iter->second << std::endl;
0045       }
0046       RawTower::ShowerConstRange sbegin_end = rawtwr->get_g4showers();
0047       for (RawTower::ShowerConstIterator iter = sbegin_end.first; iter != sbegin_end.second; ++iter)
0048       {
0049         *fout << "shower id: " << iter->first
0050               << " edep: " << iter->second << std::endl;
0051       }
0052     }
0053   }
0054   return 0;
0055 }