Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TRIGGER_LL1OUT_H__
0002 #define TRIGGER_LL1OUT_H__
0003 
0004 #include "TriggerDefs.h"
0005 
0006 #include <phool/PHObject.h>
0007 
0008 #include <iostream>
0009 #include <map>
0010 #include <string>
0011 #include <utility>
0012 #include <vector>
0013 
0014 ///
0015 class LL1Out : public PHObject
0016 {
0017  public:
0018   typedef std::map<unsigned int, 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   ///
0025   LL1Out() = default;
0026   ///
0027   virtual ~LL1Out() override = default;
0028   /// Clear Event from memory
0029   virtual void Reset() override { return; }
0030 
0031   void identify(std::ostream& os = std::cout) const override;
0032   int isValid() const override { return 1; }
0033 
0034   virtual std::string getLL1Type() const { return "none"; }
0035 
0036   virtual void setLL1Type(std::string& /*ll1type*/) {}
0037   virtual void setTriggerType(std::string& /*triggertype*/) {}
0038 
0039   virtual TriggerDefs::TriggerKey getTriggerKey() const { return 0; }
0040   virtual void setTriggerKey(TriggerDefs::TriggerKey /*key*/) {}
0041 
0042   virtual std::vector<unsigned int>* GetTriggerBits() { return nullptr; }
0043   virtual std::vector<unsigned int>* get_word(int /*word*/) { return nullptr; }
0044 
0045   virtual bool passesTrigger() { return 0; }
0046   virtual bool passesThreshold(int /*ith*/) { return 0; }
0047 
0048   virtual std::vector<std::pair<TriggerDefs::TriggerSumKey, unsigned short>> getTriggeredSums();
0049   virtual std::vector<TriggerDefs::TriggerSumKey> getTriggeredSumKeys(int ith = 0);
0050   virtual std::vector<TriggerDefs::TriggerPrimKey> getTriggeredPrimitives();
0051 
0052   virtual void addTriggeredSum(TriggerDefs::TriggerSumKey /*sk*/, unsigned short /*bit*/) { return; }
0053   virtual void addTriggeredPrimitive(TriggerDefs::TriggerPrimKey /*pk*/) { return; }
0054 
0055   virtual void add_word(int /*key*/, std::vector<unsigned int>* /*trigger_words*/) {}
0056 
0057   virtual void set_event_number(unsigned int /*evt*/) {}
0058   virtual unsigned int get_event_number() { return 0; }
0059 
0060   virtual void set_clock_number(unsigned int /*clk*/) {}
0061   virtual unsigned int get_clock_number() { return 0; }
0062 
0063   virtual ConstRange getTriggerWords() const;
0064   virtual Range getTriggerWords();
0065 
0066  private:  // so the ClassDef does not show up with doc++
0067   ClassDefOverride(LL1Out, 1);
0068 };
0069 
0070 #endif