Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:10

0001 /**
0002  * @file trackbase/TpcTpotEventInfov1.h
0003  * @author Thomas Marshall
0004  * @date September 2023
0005  * @brief Version 1 of TpcTpotEventInfo
0006  */
0007 #ifndef TRACKBASE_TPCTPOTEVENTINFOV1_H
0008 #define TRACKBASE_TPCTPOTEVENTINFOV1_H
0009 
0010 #include "TpcTpotEventInfo.h"
0011 #include "TrkrDefs.h"
0012 
0013 #include <iostream>
0014 
0015 class PHObject;
0016 
0017 /**
0018  * @brief Version 1 of TpcTpotEventInfo
0019  *
0020  */
0021 class TpcTpotEventInfov1 : public TpcTpotEventInfo
0022 {
0023  public:
0024   //! ctor
0025   TpcTpotEventInfov1();
0026 
0027   //! dtor
0028   ~TpcTpotEventInfov1() override = default;
0029   // PHObject virtual overloads
0030   void identify(std::ostream& os = std::cout) const override;
0031   void Reset() override
0032   {
0033     std::fill_n(&m_bco[0][0][0], 100, UINT64_MAX);
0034     std::fill_n(&m_lvl1_count[0][0][0], 100, UINT32_MAX);
0035     std::fill_n(&m_endat_count[0][0][0], 100, UINT32_MAX);
0036     std::fill_n(&m_last_bco[0][0][0], 100, UINT64_MAX);
0037     std::fill_n(&m_modebits[0][0][0], 100, UINT8_MAX);
0038   }
0039   int isValid() const override;
0040   PHObject* CloneMe() const override { return new TpcTpotEventInfov1(*this); }
0041 
0042   //! copy content from base class
0043   void CopyFrom(const TpcTpotEventInfo&) override;
0044 
0045   //! copy content from base class
0046   void CopyFrom(TpcTpotEventInfo* source) override
0047   {
0048     CopyFrom(*source);
0049   }
0050 
0051   //
0052   // event tagger info
0053   //
0054 
0055   void checkIndexes(SectorID, PCIeEndPointID, TaggerID) override;
0056 
0057   uint64_t getBCO(SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) const override { return m_bco[sector][PCIe][tagger]; }
0058   void setBCO(uint64_t bco, SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) override { m_bco[sector][PCIe][tagger] = bco; }
0059   uint32_t getLevel1Count(SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) const override { return m_lvl1_count[sector][PCIe][tagger]; }
0060   void setLevel1Count(uint32_t lvl1count, SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) override { m_lvl1_count[sector][PCIe][tagger] = lvl1count; }
0061   uint32_t getEnDatCount(SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) const override { return m_endat_count[sector][PCIe][tagger]; }
0062   void setEnDatCount(uint32_t endatcount, SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) override { m_endat_count[sector][PCIe][tagger] = endatcount; }
0063   uint64_t getLastBCO(SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) const override { return m_last_bco[sector][PCIe][tagger]; }
0064   void setLastBCO(uint64_t lastbco, SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) override { m_last_bco[sector][PCIe][tagger] = lastbco; }
0065   uint8_t getModebits(SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) const override { return m_modebits[sector][PCIe][tagger]; }
0066   void setModebits(uint8_t modebits, SectorID sector, PCIeEndPointID PCIe, TaggerID tagger) override { m_modebits[sector][PCIe][tagger] = modebits; }
0067 
0068  protected:
0069   uint64_t m_bco[25][2][2]{};
0070   uint32_t m_lvl1_count[25][2][2]{};
0071   uint32_t m_endat_count[25][2][2]{};
0072   uint64_t m_last_bco[25][2][2]{};
0073   uint8_t m_modebits[25][2][2]{};
0074 
0075   ClassDefOverride(TpcTpotEventInfov1, 1)
0076 };
0077 
0078 #endif  // TRACKBASE_TPCTPOTEVENTINFOV1_H