Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "MvtxEventInfov1.h"
0002 
0003 #include <phool/phool.h>
0004 
0005 PHObject* MvtxEventInfov1::CloneMe() const
0006 {
0007   std::cout << PHWHERE << "::" << __func__ << " is not implemented in daughter class" << std::endl;
0008   return nullptr;
0009 }
0010 
0011 void MvtxEventInfov1::Reset()
0012 {
0013   m_strobe_BCO_L1_BCO.clear();
0014   m_StringEventProperties.clear();
0015   m_IntEventProperties.clear();
0016   m_Int64EventProperties.clear();
0017   m_UintEventProperties.clear();
0018   m_Uint64EventProperties.clear();
0019   m_FloatEventProperties.clear();
0020 
0021   return;
0022 }
0023 
0024 void MvtxEventInfov1::identify(std::ostream& out) const
0025 {
0026   out << "MvtxEventInfov1 information" << std::endl;
0027 
0028   for (const auto& m_StringEventPropertie : m_StringEventProperties)
0029   {
0030     out << m_StringEventPropertie.first << ": " << m_StringEventPropertie.second << std::endl;
0031   }
0032 
0033   out << "Number of L1 triggers in this event" << std::endl;
0034   out << m_number_L1_name << ": " << get_number_L1s() << std::endl;
0035 
0036   out << "Number of heart beats in this event" << std::endl;
0037   out << m_number_HB_name << ": " << get_number_HB() << std::endl;
0038 
0039   if (get_number_L1s() > 0)
0040   {
0041     out << "List of strobe BCOs and L1 BCOs in this event" << std::endl;
0042 
0043     std::set<uint64_t> strobeList = get_strobe_BCOs();
0044     for (unsigned long iterStrobe : strobeList)
0045     {
0046       std::set<uint64_t> l1List = get_L1_BCO_from_strobe_BCO(iterStrobe);
0047       out << "Strobe BCO: " << iterStrobe << std::endl;
0048       for (unsigned long iterL1 : l1List)
0049       {
0050         out << "L1 BCO: " << iterL1 << std::endl;
0051       }
0052       out << std::endl;
0053     }
0054   }
0055 
0056   for (const auto& m_IntEventPropertie : m_IntEventProperties)
0057   {
0058     out << m_IntEventPropertie.first << ": " << m_IntEventPropertie.second << std::endl;
0059   }
0060 
0061   for (const auto& m_Int64EventPropertie : m_Int64EventProperties)
0062   {
0063     out << m_Int64EventPropertie.first << ": " << m_Int64EventPropertie.second << std::endl;
0064   }
0065 
0066   for (const auto& m_UintEventPropertie : m_UintEventProperties)
0067   {
0068     out << m_UintEventPropertie.first << ": " << m_UintEventPropertie.second << std::endl;
0069   }
0070 
0071   for (const auto& m_Uint64EventPropertie : m_Uint64EventProperties)
0072   {
0073     out << m_Uint64EventPropertie.first << ": " << m_Uint64EventPropertie.second << std::endl;
0074   }
0075 
0076   for (const auto& m_FloatEventPropertie : m_FloatEventProperties)
0077   {
0078     out << m_FloatEventPropertie.first << ": " << m_FloatEventPropertie.second << std::endl;
0079   }
0080   return;
0081 }
0082 
0083 int MvtxEventInfov1::isValid() const
0084 {
0085   std::cout << PHWHERE << " isValid not implemented by daughter class" << std::endl;
0086   return 0;
0087 }
0088 
0089 void MvtxEventInfov1::set_number_HB(const int ival)
0090 {
0091   m_number_HB = ival;
0092 }
0093 
0094 int MvtxEventInfov1::get_number_HB() const
0095 {
0096   return m_number_HB;
0097 }
0098 
0099 void MvtxEventInfov1::set_strobe_BCO_L1_BCO(const uint64_t strobe_BCO, const uint64_t L1_BCO)
0100 {
0101   strobe_L1_pair strobe_L1_BCO_pair(strobe_BCO, L1_BCO);
0102   m_strobe_BCO_L1_BCO.insert(strobe_L1_BCO_pair);
0103 }
0104 
0105 unsigned int MvtxEventInfov1::get_number_strobes() const
0106 {
0107   std::set<uint64_t> mySet;
0108   std::set<strobe_L1_pair>::const_iterator iter;
0109   for (iter = m_strobe_BCO_L1_BCO.begin(); iter != m_strobe_BCO_L1_BCO.end(); ++iter)
0110   {
0111     strobe_L1_pair myPair = *iter;
0112     mySet.insert(myPair.first);
0113   }
0114 
0115   return mySet.size();
0116 }
0117 
0118 unsigned int MvtxEventInfov1::get_number_L1s() const
0119 {
0120   std::set<uint64_t> mySet;
0121   std::set<strobe_L1_pair>::const_iterator iter;
0122   for (iter = m_strobe_BCO_L1_BCO.begin(); iter != m_strobe_BCO_L1_BCO.end(); ++iter)
0123   {
0124     strobe_L1_pair myPair = *iter;
0125     mySet.insert(myPair.second);
0126   }
0127 
0128   return mySet.size();
0129 }
0130 
0131 std::set<uint64_t> MvtxEventInfov1::get_strobe_BCOs() const
0132 {
0133   std::set<uint64_t> mySet;
0134   std::set<strobe_L1_pair>::const_iterator iter;
0135   for (iter = m_strobe_BCO_L1_BCO.begin(); iter != m_strobe_BCO_L1_BCO.end(); ++iter)
0136   {
0137     strobe_L1_pair myPair = *iter;
0138     mySet.insert(myPair.first);
0139   }
0140 
0141   return mySet;
0142 }
0143 
0144 std::set<uint64_t> MvtxEventInfov1::get_L1_BCOs() const
0145 {
0146   std::set<uint64_t> mySet;
0147   std::set<strobe_L1_pair>::const_iterator iter;
0148   for (iter = m_strobe_BCO_L1_BCO.begin(); iter != m_strobe_BCO_L1_BCO.end(); ++iter)
0149   {
0150     strobe_L1_pair myPair = *iter;
0151     mySet.insert(myPair.second);
0152   }
0153 
0154   return mySet;
0155 }
0156 
0157 std::set<uint64_t> MvtxEventInfov1::get_strobe_BCO_from_L1_BCO(const uint64_t ival) const
0158 {
0159   std::set<uint64_t> mySet;
0160   std::set<strobe_L1_pair>::const_iterator iter;
0161   for (iter = m_strobe_BCO_L1_BCO.begin(); iter != m_strobe_BCO_L1_BCO.end(); ++iter)
0162   {
0163     strobe_L1_pair myPair = *iter;
0164     if (ival == myPair.second)
0165     {
0166       mySet.insert(myPair.first);
0167     }
0168   }
0169 
0170   return mySet;
0171 }
0172 
0173 std::set<uint64_t> MvtxEventInfov1::get_L1_BCO_from_strobe_BCO(const uint64_t ival) const
0174 {
0175   std::set<uint64_t> mySet;
0176   std::set<strobe_L1_pair>::const_iterator iter;
0177   for (iter = m_strobe_BCO_L1_BCO.begin(); iter != m_strobe_BCO_L1_BCO.end(); ++iter)
0178   {
0179     strobe_L1_pair myPair = *iter;
0180     if (ival == myPair.first)
0181     {
0182       mySet.insert(myPair.second);
0183     }
0184   }
0185 
0186   return mySet;
0187 }