Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef MVTXEVENTINFO_H
0004 #define MVTXEVENTINFO_H
0005 
0006 /********************************/
0007 /* Subsystem event header class */
0008 /*          Cameron Dean        */
0009 /*      MIT (ctdean@mit.edu)    */
0010 /*             29/09/2023       */
0011 /********************************/
0012 
0013 #include <phool/PHObject.h>
0014 
0015 #include <cmath>
0016 #include <iostream>
0017 #include <map>
0018 #include <set>
0019 #include <string>  // for string
0020 
0021 ///
0022 class MvtxEventInfo : public PHObject
0023 {
0024  public:
0025   //! ctor
0026   MvtxEventInfo() = default;
0027 
0028   //! dtor
0029   ~MvtxEventInfo() override = default;
0030 
0031   PHObject *CloneMe() const override;
0032 
0033   /// Clear Event
0034   void Reset() override;
0035 
0036   /** identify Function from PHObject
0037       @param os Output Stream
0038    */
0039   void identify(std::ostream &os = std::cout) const override;
0040 
0041   /// isValid returns non zero if object contains valid data
0042   int isValid() const override;
0043 
0044   void set_floatval(const std::string & /*name*/, const float /*fval*/);
0045   float get_floatval(const std::string & /*name*/) const;
0046 
0047   void set_intval(const std::string & /*name*/, const int32_t /*ival*/);
0048   int get_intval(const std::string & /*name*/) const;
0049 
0050   void set_int64val(const std::string & /*name*/, const int64_t /*ival*/);
0051   int get_int64val(const std::string & /*name*/) const;
0052 
0053   void set_uintval(const std::string & /*name*/, const uint32_t /*ival*/);
0054   int get_uintval(const std::string & /*name*/) const;
0055 
0056   void set_uint64val(const std::string & /*name*/, const uint64_t /*ival*/);
0057   int get_uint64val(const std::string & /*name*/) const;
0058 
0059   void set_stringval(const std::string & /*name*/, const std::string & /*ival*/);
0060   std::string get_stringval(const std::string & /*name*/) const;
0061 
0062   virtual void set_number_HB(const int /*ival*/) {};
0063   virtual int get_number_HB() const { return 0; };
0064 
0065   virtual void set_strobe_BCO(const uint64_t /*strobe_BCO*/) {};
0066 
0067   virtual void set_strobe_BCO_L1_BCO(const uint64_t /*strobe_BCO*/, const uint64_t /*L1_BCO*/) {};
0068 
0069   virtual unsigned int get_number_strobes() const { return 0; };
0070   virtual unsigned int get_number_L1s() const { return 0; };
0071 
0072   virtual std::set<uint64_t> get_strobe_BCOs() const { return dummySet; };
0073   virtual std::set<uint64_t> get_L1_BCOs() const { return dummySet; };
0074 
0075   virtual std::set<uint64_t> get_strobe_BCO_from_L1_BCO(const uint64_t /*ival*/) const { return dummySet; }
0076   virtual std::set<uint64_t> get_L1_BCO_from_strobe_BCO(const uint64_t /*ival*/) const { return dummySet; };
0077 
0078   virtual void add_strobe_BCO(const uint64_t & /*strb_val*/) {};
0079   virtual void add_L1_BCO(const uint64_t & /*strb_val*/) {};
0080 
0081  protected:
0082   std::map<std::string, int32_t> m_IntEventProperties;
0083   std::map<std::string, int64_t> m_Int64EventProperties;
0084   std::map<std::string, uint32_t> m_UintEventProperties;
0085   std::map<std::string, uint64_t> m_Uint64EventProperties;
0086   std::map<std::string, float> m_FloatEventProperties;
0087   std::map<std::string, std::string> m_StringEventProperties;
0088 
0089  private:
0090   void warning(const std::string &func) const;
0091 
0092   std::set<uint64_t> dummySet;
0093 
0094   ClassDefOverride(MvtxEventInfo, 1)
0095 };
0096 
0097 #endif