Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "TriggerPrimitivev1.h"
0002 #include "TriggerDefs.h"
0003 
0004 #include <iostream>
0005 #include <map>
0006 #include <utility>
0007 
0008 TriggerPrimitivev1::TriggerPrimitivev1(TriggerDefs::TriggerPrimKey key)
0009   : m_triggerprimkey(key)
0010 {
0011 }
0012 
0013 //______________________________________
0014 void TriggerPrimitivev1::Reset()
0015 {
0016   for (auto& sum : _sums)
0017   {
0018     sum.second->clear();
0019   }
0020 }
0021 
0022 void TriggerPrimitivev1::add_sum(TriggerDefs::TriggerSumKey key, std::vector<unsigned int>* sum)
0023 {
0024   _sums[key] = sum;
0025 }
0026 std::vector<unsigned int>* TriggerPrimitivev1::get_sum_at_key(TriggerDefs::TriggerSumKey key)
0027 {
0028   if (!_sums[key])
0029   {
0030     return nullptr;
0031   }
0032 
0033   return _sums[key];
0034 }
0035 
0036 TriggerPrimitivev1::ConstRange TriggerPrimitivev1::getSums() const
0037 {
0038   return make_pair(_sums.begin(), _sums.end());
0039 }
0040 
0041 TriggerPrimitivev1::Range TriggerPrimitivev1::getSums()
0042 {
0043   return make_pair(_sums.begin(), _sums.end());
0044 }
0045 
0046 //______________________________________
0047 void TriggerPrimitivev1::identify(std::ostream& out) const
0048 {
0049   out << __FILE__ << __FUNCTION__ << ":: primitive key : " << std::hex << m_triggerprimkey << std::endl;
0050   ConstRange range = getSums();
0051   for (auto iter = range.first; iter != range.second; ++iter)
0052   {
0053     int pass = 1;
0054     for (unsigned int& i : *(*iter).second)
0055     {
0056       if (i)
0057       {
0058         pass = 1;
0059       }
0060     }
0061 
0062     if (!pass)
0063     {
0064       pass = 1;
0065     }
0066 
0067     if (!pass)
0068     {
0069       continue;
0070     }
0071     out << " TriggerId: " << TriggerDefs::getTriggerId_from_TriggerPrimKey(m_triggerprimkey) << " - "
0072         << " DetectorId: " << TriggerDefs::getDetectorId_from_TriggerPrimKey(m_triggerprimkey) << " - "
0073         << " PrimitiveId: " << TriggerDefs::getPrimitiveId_from_TriggerPrimKey(m_triggerprimkey) << " | "
0074         << "Sumkey " << (*iter).first << " : ";
0075     for (unsigned int& i : *(*iter).second)
0076     {
0077       out << i << " ";
0078     }
0079     out << " " << std::endl;
0080   }
0081 }
0082 
0083 int TriggerPrimitivev1::isValid() const
0084 {
0085   return (!_sums.empty());
0086 }