Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef TRIGGER_LL1PACKETGETTER_H
0004 #define TRIGGER_LL1PACKETGETTER_H
0005 
0006 #include "TriggerDefs.h"
0007 
0008 #include <fun4all/SubsysReco.h>
0009 
0010 #include <limits>
0011 #include <map>
0012 #include <string>
0013 #include <utility>
0014 #include <vector>
0015 
0016 class PHCompositeNode;
0017 class LL1Out;
0018 class TriggerPrimitive;
0019 class TriggerPrimitiveContainer;
0020 
0021 class LL1PacketGetter : public SubsysReco
0022 {
0023  public:
0024   explicit LL1PacketGetter(const std::string &name = "LL1PacketGetter", const std::string &trigger = "NONE", const std::string &ll1 = "NONE");
0025   ~LL1PacketGetter() override = default;
0026 
0027   int InitRun(PHCompositeNode *topNode) override;
0028   int process_event(PHCompositeNode *topNode) override;
0029   int CreateNodeTree(PHCompositeNode *topNode);
0030 
0031   void setTriggerType(const std::string &name);
0032 
0033   void set_dataflag(bool flag)
0034   {
0035     m_isdata = flag;
0036     return;
0037   }
0038 
0039  private:
0040   std::string m_trigger{"NONE"};
0041   std::string m_ll1{"NONE"};
0042 
0043   std::string m_triggerprimitive_nodename{"NONE"};
0044   std::string m_triggerprimitive_ll1_nodename{"NONE"};
0045   std::string m_ll1_nodename{"NONE"};
0046 
0047   LL1Out *m_ll1out{nullptr};
0048   TriggerPrimitiveContainer *m_trigger_primitives{nullptr};
0049   TriggerPrimitiveContainer *m_trigger_primitives_ll1{nullptr};
0050   TriggerPrimitive *_trigger_primitive{nullptr};
0051   std::map<unsigned int, std::vector<unsigned int>> *_trigger_words{nullptr};
0052 
0053   std::map<unsigned int, std::pair<int, int>> m_prim_sum_map{};
0054   std::map<unsigned int, std::pair<int, int>> m_packet_map{};
0055   std::map<unsigned int, int> m_word_map{};
0056   TriggerDefs::TriggerId m_triggerid{TriggerDefs::TriggerId::noneTId};
0057   unsigned int m_triggerkey{0};
0058   TriggerDefs::DetectorId m_detectorid{TriggerDefs::DetectorId::noneDId};
0059   TriggerDefs::PrimitiveId m_primitiveid{TriggerDefs::PrimitiveId::nonePId};
0060   std::vector<unsigned int> *_sum{nullptr};
0061 
0062   int m_packet_low{std::numeric_limits<int>::min()};
0063   int m_packet_high{std::numeric_limits<int>::min()};
0064 
0065   int m_nchannels{256};
0066   int m_nchannels_per_primitive{0};
0067   int m_nprimitives{0};
0068   int m_ntriggerwords{0};
0069   bool m_isdata{true};
0070   bool m_no_ll1out{false};
0071 };
0072 
0073 #endif  // TRIGGER_LL1PACKETGETTER_H