Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:28

0001 #ifndef L1GlobalTrigger_L1GtTechnicalTrigger_h
0002 #define L1GlobalTrigger_L1GtTechnicalTrigger_h
0003 
0004 /**
0005  * \class L1GtTechnicalTrigger
0006  * 
0007  * 
0008  * Description: technical trigger input for L1 Global Trigger.  
0009  *
0010  * Implementation:
0011  *    <TODO: enter implementation details>
0012  *   
0013  * \author: Vasile Mihai Ghete   - HEPHY Vienna
0014  * 
0015  *
0016  */
0017 
0018 // system include files
0019 #include <string>
0020 #include <iosfwd>
0021 
0022 // user include files
0023 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
0024 
0025 // forward declarations
0026 namespace edm {
0027   template <typename T>
0028   class Handle;
0029 }
0030 
0031 // class interface
0032 
0033 class L1GtTechnicalTrigger {
0034 public:
0035   /// constructors
0036   L1GtTechnicalTrigger();
0037 
0038   L1GtTechnicalTrigger(const std::string& ttName,
0039                        const unsigned int ttBitNumber,
0040                        const int ttBxInEvent,
0041                        const bool ttResult);
0042 
0043   /// copy constructor
0044   L1GtTechnicalTrigger(const L1GtTechnicalTrigger&);
0045 
0046   /// destructor
0047   virtual ~L1GtTechnicalTrigger();
0048 
0049   /// assignment operator
0050   L1GtTechnicalTrigger& operator=(const L1GtTechnicalTrigger&);
0051 
0052   /// equal operator
0053   bool operator==(const L1GtTechnicalTrigger&) const;
0054 
0055   /// unequal operator
0056   bool operator!=(const L1GtTechnicalTrigger&) const;
0057 
0058 public:
0059   /// get / set technical trigger name, bit number, bunch cross in the GT event record and result
0060 
0061   inline const std::string gtTechnicalTriggerName() const { return m_gtTechnicalTriggerName; }
0062 
0063   inline const unsigned int gtTechnicalTriggerBitNumber() const { return m_gtTechnicalTriggerBitNumber; }
0064 
0065   /// get/set bunch cross in the GT event record
0066   inline const int bxInEvent() const { return m_bxInEvent; }
0067 
0068   inline const bool gtTechnicalTriggerResult() const { return m_gtTechnicalTriggerResult; }
0069 
0070   void setGtTechnicalTriggerName(const std::string& ttName);
0071   void setGtTechnicalTriggerBitNumber(const unsigned int ttBitNumber);
0072   void setBxInEvent(const int bxInEventValue);
0073   void setGtTechnicalTriggerResult(const bool ttResult);
0074 
0075   // other methods
0076 
0077   /// pretty print the content of a L1GtTechnicalTrigger
0078   void print(std::ostream& myCout) const;
0079 
0080   /// output stream operator
0081   friend std::ostream& operator<<(std::ostream&, const L1GtTechnicalTrigger&);
0082 
0083 private:
0084   /// technical trigger name, bit number, bunch cross in the GT event record and result
0085   std::string m_gtTechnicalTriggerName;
0086   unsigned int m_gtTechnicalTriggerBitNumber;
0087   int m_bxInEvent;
0088   bool m_gtTechnicalTriggerResult;
0089 };
0090 
0091 #endif