Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TRIGGER_TRIGGERPRIMITIVECONTAINERV1_H
0002 #define TRIGGER_TRIGGERPRIMITIVECONTAINERV1_H
0003 
0004 #include "TriggerPrimitiveContainer.h"
0005 
0006 #include "TriggerDefs.h"
0007 
0008 #include <iostream>
0009 #include <map>
0010 #include <utility>
0011 
0012 class TriggerPrimitive;
0013 
0014 ///
0015 
0016 class TriggerPrimitiveContainerv1 : public TriggerPrimitiveContainer
0017 {
0018  public:
0019   typedef std::map<TriggerDefs::TriggerPrimKey, TriggerPrimitive*> Map;
0020   typedef Map::const_iterator ConstIter;
0021   typedef Map::iterator Iter;
0022   typedef std::pair<Iter, Iter> Range;
0023   typedef std::pair<ConstIter, ConstIter> ConstRange;
0024 
0025   ///
0026   TriggerPrimitiveContainerv1() = default;
0027 
0028   TriggerPrimitiveContainerv1(TriggerDefs::TriggerId tid, TriggerDefs::DetectorId did);
0029   ///
0030   ~TriggerPrimitiveContainerv1() override = default;
0031 
0032   /// Clear Event from memory
0033   void Reset() override;
0034   void identify(std::ostream& out = std::cout) const override;
0035   int isValid() const override;
0036 
0037   void setTriggerId(TriggerDefs::TriggerId triggerid) override { m_triggerid = triggerid; };
0038   void setDetectorId(TriggerDefs::DetectorId detectorid) override { m_detectorid = detectorid; };
0039   void setPrimitiveId(TriggerDefs::PrimitiveId primitiveid) override { m_primitiveid = primitiveid; };
0040 
0041   TriggerPrimitive* get_primitive_at_key(TriggerDefs::TriggerPrimKey /* index */) override;
0042 
0043   void add_primitive(TriggerDefs::TriggerPrimKey, TriggerPrimitive*) override;
0044   TriggerDefs::TriggerId getTriggerId() { return m_triggerid; }
0045   TriggerDefs::DetectorId getDetectorId() { return m_detectorid; }
0046   TriggerDefs::PrimitiveId getPrimitiveId() { return m_primitiveid; }
0047 
0048   ConstRange getTriggerPrimitives() const override;
0049   Range getTriggerPrimitives() override;
0050 
0051   size_t size() override { return _primitives.size(); }
0052 
0053  private:  // so the ClassDef does not show up with doc++
0054   TriggerDefs::TriggerId m_triggerid = TriggerDefs::TriggerId::noneTId;
0055   TriggerDefs::DetectorId m_detectorid = TriggerDefs::DetectorId::noneDId;
0056   TriggerDefs::PrimitiveId m_primitiveid = TriggerDefs::PrimitiveId::nonePId;
0057 
0058   Map _primitives{};
0059 
0060   ClassDefOverride(TriggerPrimitiveContainerv1, 1);
0061 };
0062 
0063 #endif