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 }