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);
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
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 }