Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:17:27

0001 #ifndef TRIGGER_TRIGGERPRIMITIVE_H
0002 #define TRIGGER_TRIGGERPRIMITIVE_H
0003 
0004 #include "TriggerDefs.h"
0005 
0006 #include <phool/PHObject.h>
0007 
0008 #include <cstddef>
0009 #include <iostream>
0010 #include <map>
0011 #include <utility>
0012 #include <vector>
0013 
0014 ///
0015 class TriggerPrimitive : public PHObject
0016 {
0017  public:
0018   typedef std::map<TriggerDefs::TriggerSumKey, std::vector<unsigned int>*> Map;
0019   typedef Map::const_iterator ConstIter;
0020   typedef Map::iterator Iter;
0021   typedef std::pair<Iter, Iter> Range;
0022   typedef std::pair<ConstIter, ConstIter> ConstRange;
0023 
0024   TriggerPrimitive() = default;
0025   virtual ~TriggerPrimitive() override = default;
0026 
0027   /// Clear Event from memory
0028   virtual void Reset() override { return; }
0029   void identify(std::ostream& out = std::cout) const override;
0030   int isValid() const override { return 0; }
0031 
0032   virtual std::vector<unsigned int>* get_sum_at_key(TriggerDefs::TriggerSumKey) { return nullptr; }
0033 
0034   virtual void add_sum(TriggerDefs::TriggerSumKey /*key*/, std::vector<unsigned int>* /*sum*/) { return; }
0035 
0036   virtual ConstRange getSums() const;
0037   virtual Range getSums();
0038 
0039   virtual size_t size() { return 0; }
0040 
0041  private:  // so the ClassDef does not show up with doc++
0042   ClassDefOverride(TriggerPrimitive, 1);
0043 };
0044 
0045 #endif