File indexing completed on 2025-08-06 08:17:14
0001 #include "LL1PacketContainerv1.h"
0002 #include "LL1Packetv1.h"
0003
0004 #include <phool/phool.h>
0005
0006 #include <TClonesArray.h>
0007
0008 static const int NLL1PACKETS = 18;
0009
0010 LL1PacketContainerv1::LL1PacketContainerv1()
0011 : LL1PacketsTCArray(new TClonesArray("LL1Packetv1", NLL1PACKETS))
0012 {
0013 }
0014
0015 LL1PacketContainerv1::~LL1PacketContainerv1()
0016 {
0017 delete LL1PacketsTCArray;
0018 }
0019
0020 void LL1PacketContainerv1::Reset()
0021 {
0022 LL1PacketsTCArray->Clear();
0023 LL1PacketsTCArray->Expand(NLL1PACKETS);
0024 }
0025
0026 void LL1PacketContainerv1::identify(std::ostream &os) const
0027 {
0028 os << "LL1PacketContainerv1" << std::endl;
0029 os << "containing " << LL1PacketsTCArray->GetEntriesFast() << " LL1 Packets" << std::endl;
0030 for (int i = 0; i <= LL1PacketsTCArray->GetLast(); i++)
0031 {
0032 LL1Packet *ll1pkt = dynamic_cast<LL1Packet *>(LL1PacketsTCArray->At(i));
0033 if (ll1pkt)
0034 {
0035 os << "id: " << ll1pkt->getIdentifier() << std::endl;
0036 os << "for beam clock: " << std::hex << ll1pkt->getBCO() << std::dec << std::endl;
0037 }
0038 }
0039 }
0040
0041 int LL1PacketContainerv1::isValid() const
0042 {
0043 return LL1PacketsTCArray->GetSize();
0044 }
0045
0046 unsigned int LL1PacketContainerv1::get_npackets()
0047 {
0048 return LL1PacketsTCArray->GetEntriesFast();
0049 }
0050
0051 LL1Packet *LL1PacketContainerv1::AddPacket()
0052 {
0053 LL1Packet *newhit = new ((*LL1PacketsTCArray)[LL1PacketsTCArray->GetLast() + 1]) LL1Packetv1();
0054 return newhit;
0055 }
0056
0057 LL1Packet *LL1PacketContainerv1::AddPacket(LL1Packet *ll1packet)
0058 {
0059
0060
0061 LL1Packet *newhit = new ((*LL1PacketsTCArray)[LL1PacketsTCArray->GetLast() + 1]) LL1Packetv1(*(dynamic_cast<LL1Packetv1 *>(ll1packet)));
0062 return newhit;
0063 }
0064
0065 LL1Packet *LL1PacketContainerv1::getPacket(unsigned int index)
0066 {
0067 return (LL1Packet *) LL1PacketsTCArray->At(index);
0068 }
0069
0070 LL1Packet *LL1PacketContainerv1::getPacketbyId(int id)
0071 {
0072 for (int i = 0; i <= LL1PacketsTCArray->GetLast(); i++)
0073 {
0074 LL1Packet *pkt = (LL1Packet *) LL1PacketsTCArray->At(i);
0075 if (pkt->getIdentifier() == id)
0076 {
0077 return pkt;
0078 }
0079 }
0080 return nullptr;
0081 }