Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "DumpCaloPacketContainer.h"
0002 
0003 #include <ffarawobjects/CaloPacket.h>
0004 #include <ffarawobjects/CaloPacketContainer.h>
0005 
0006 #include <phool/PHIODataNode.h>
0007 
0008 #include <ostream>
0009 #include <string>
0010 
0011 using MyNode_t = PHIODataNode<CaloPacketContainer>;
0012 
0013 DumpCaloPacketContainer::DumpCaloPacketContainer(const std::string &NodeName)
0014   : DumpObject(NodeName)
0015 {
0016   return;
0017 }
0018 
0019 int DumpCaloPacketContainer::process_Node(PHNode *myNode)
0020 {
0021   CaloPacketContainer *calocont = nullptr;
0022   MyNode_t *thisNode = static_cast<MyNode_t *>(myNode);  // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast)
0023   if (thisNode)
0024   {
0025     calocont = thisNode->getData();
0026   }
0027   if (calocont)
0028   {
0029     for (unsigned int i = 0; i < calocont->get_npackets(); i++)
0030     {
0031       CaloPacket *calopacket = calocont->getPacket(i);
0032       *fout << "packet_nr: " << calopacket->getIdentifier() << std::endl;
0033       // if (calopacket->getIdentifier() != 9002) continue;
0034       *fout << "EventNr: " << calopacket->iValue(0, "EVTNR") << std::endl;
0035       *fout << "Clock: 0x" << std::hex << calopacket->iValue(0, "CLOCK") << std::dec << std::endl;
0036       *fout << "Modules: " << calopacket->iValue(0, "NRMODULES") << std::endl;
0037       *fout << "Channels: " << calopacket->iValue(0, "CHANNELS") << std::endl;
0038       *fout << "Samples: " << calopacket->iValue(0, "SAMPLES") << std::endl;
0039       *fout << "DetId: 0x" << std::hex << calopacket->iValue(0, "DETID") << std::dec << std::endl;
0040       *fout << "Samples: " << std::hex << calopacket->iValue(0, "MODULEADDRESS") << std::dec << std::endl;
0041       *fout << "EVENCHECKSUMOK: " << calopacket->iValue(0, "EVENCHECKSUMOK") << std::endl;
0042       *fout << "ODDCHECKSUMOK: " << calopacket->iValue(0, "ODDCHECKSUMOK") << std::endl;
0043       for (int k = 0; k < calopacket->iValue(0, "NRMODULES"); k++)
0044       {
0045         *fout << "FEM Slot: " << calopacket->iValue(k, "FEMSLOT") << std::endl;
0046         *fout << "FEM Evt nr: " << calopacket->iValue(k, "FEMEVTNR") << std::endl;
0047         *fout << "FEM Clock: " << calopacket->iValue(k, "FEMCLOCK") << std::endl;
0048         *fout << "FEM Checksum LSB: 0x" << std::hex << calopacket->iValue(k, "CHECKSUMLSB") << std::dec << std::endl;
0049         *fout << "FEM Checksum MSB: 0x" << std::hex << calopacket->iValue(k, "CHECKSUMMSB") << std::dec << std::endl;
0050       }
0051       for (int k = 0; k < calopacket->iValue(0, "CHANNELS"); k++)
0052       {
0053         *fout << "SUPPRESSED: " << calopacket->iValue(k, "SUPPRESSED") << std::endl;
0054         *fout << "PRE: 0x" << std::hex << calopacket->iValue(k, "PRE") << std::dec << std::endl;
0055         *fout << "POST: 0x" << std::hex << calopacket->iValue(k, "POST") << std::dec << std::endl;
0056         for (int j = 0; j < calopacket->iValue(0, "SAMPLES"); j++)
0057         {
0058           *fout << "iValue(" << j << ", " << k << "): " << calopacket->iValue(j, k) << std::endl;
0059         }
0060       }
0061     }
0062   }
0063   return 0;
0064 }