Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "DumpPHHepMCGenEventMap.h"
0002 
0003 #include <phhepmc/PHHepMCGenEvent.h>
0004 #include <phhepmc/PHHepMCGenEventMap.h>
0005 
0006 #pragma GCC diagnostic push
0007 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
0008 #include <HepMC/GenEvent.h>
0009 #pragma GCC diagnostic pop
0010 
0011 #include <phool/PHIODataNode.h>
0012 
0013 #include <map>
0014 #include <ostream>
0015 #include <string>
0016 #include <utility>
0017 
0018 using MyNode_t = PHIODataNode<PHHepMCGenEventMap>;
0019 
0020 DumpPHHepMCGenEventMap::DumpPHHepMCGenEventMap(const std::string &NodeName)
0021   : DumpObject(NodeName)
0022 {
0023   return;
0024 }
0025 
0026 int DumpPHHepMCGenEventMap::process_Node(PHNode *myNode)
0027 {
0028   PHHepMCGenEventMap *phhepmcgeneventmap = nullptr;
0029   MyNode_t *thisNode = static_cast<MyNode_t *>(myNode);  // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast)
0030   if (thisNode)
0031   {
0032     phhepmcgeneventmap = thisNode->getData();
0033   }
0034   if (phhepmcgeneventmap)
0035   {
0036     PHHepMCGenEventMap::ConstIter iter_beg = phhepmcgeneventmap->begin();
0037     PHHepMCGenEventMap::ConstIter iter_end = phhepmcgeneventmap->end();
0038     *fout << "size: " << phhepmcgeneventmap->size() << std::endl;
0039     for (PHHepMCGenEventMap::ConstIter iter = iter_beg; iter != iter_end; ++iter)
0040     {
0041       *fout << "map entry: " << iter->first << std::endl;
0042       PHHepMCGenEvent *genevt = iter->second;
0043       *fout << "Embedding id " << genevt->get_embedding_id() << std::endl;
0044       *fout << "is simulated " << genevt->is_simulated() << std::endl;
0045       *fout << "Collision vertex x: " << genevt->get_collision_vertex().x() << std::endl;
0046       *fout << "Collision vertex y: " << genevt->get_collision_vertex().y() << std::endl;
0047       *fout << "Collision vertex z: " << genevt->get_collision_vertex().z() << std::endl;
0048       *fout << "Collision vertex t: " << genevt->get_collision_vertex().t() << std::endl;
0049       HepMC::GenEvent *evt = genevt->getEvent();
0050       if (!evt)
0051       {
0052         *fout << "GenEvent is nullptr" << std::endl;
0053       }
0054       else
0055       {
0056         evt->print(*fout);
0057       }
0058     }
0059   }
0060   return 0;
0061 }