Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:59

0001 #ifndef GlobalTrigger_L1GtCorrelationCondition_h
0002 #define GlobalTrigger_L1GtCorrelationCondition_h
0003 
0004 /**
0005  * \class L1GtCorrelationCondition
0006  *
0007  *
0008  * Description: evaluation of a CondCorrelation condition.
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 <iosfwd>
0020 #include <string>
0021 
0022 // user include files
0023 //   base classes
0024 #include "L1Trigger/GlobalTrigger/interface/L1GtConditionEvaluation.h"
0025 
0026 // forward declarations
0027 class L1GtCondition;
0028 class L1GtCorrelationTemplate;
0029 class L1GlobalTriggerGTL;
0030 class L1GlobalTriggerPSB;
0031 class L1GtEtaPhiConversions;
0032 
0033 // class declaration
0034 class L1GtCorrelationCondition : public L1GtConditionEvaluation {
0035 public:
0036   /// constructors
0037   ///     default
0038   L1GtCorrelationCondition();
0039 
0040   ///     from base template condition (from event setup usually)
0041   L1GtCorrelationCondition(const L1GtCondition *,
0042                            const L1GtCondition *,
0043                            const L1GtCondition *,
0044                            const int,
0045                            const int,
0046                            const int,
0047                            const int,
0048                            const L1GlobalTriggerGTL *,
0049                            const L1GlobalTriggerPSB *,
0050                            const L1GtEtaPhiConversions *);
0051 
0052   // copy constructor
0053   L1GtCorrelationCondition(const L1GtCorrelationCondition &);
0054 
0055   // destructor
0056   ~L1GtCorrelationCondition() override;
0057 
0058   // assign operator
0059   L1GtCorrelationCondition &operator=(const L1GtCorrelationCondition &);
0060 
0061 public:
0062   /// the core function to check if the condition matches
0063   const bool evaluateCondition() const override;
0064 
0065   /// print condition
0066   void print(std::ostream &myCout) const override;
0067 
0068 public:
0069   ///   get / set the number of phi bins
0070   inline const unsigned int gtNrBinsPhi() const { return m_nrBinsPhi; }
0071 
0072   void setGtNrBinsPhi(const unsigned int);
0073 
0074   ///   get / set the pointer to a L1GtCondition
0075   inline const L1GtCorrelationTemplate *gtCorrelationTemplate() const { return m_gtCorrelationTemplate; }
0076 
0077   void setGtCorrelationTemplate(const L1GtCorrelationTemplate *);
0078 
0079   ///   get / set the pointer to GTL
0080   inline const L1GlobalTriggerGTL *gtGTL() const { return m_gtGTL; }
0081 
0082   void setGtGTL(const L1GlobalTriggerGTL *);
0083 
0084   ///   get / set the pointer to PSB
0085   inline const L1GlobalTriggerPSB *gtPSB() const { return m_gtPSB; }
0086 
0087   void setGtPSB(const L1GlobalTriggerPSB *);
0088 
0089 private:
0090   /// copy function for copy constructor and operator=
0091   void copy(const L1GtCorrelationCondition &cp);
0092 
0093 private:
0094   /// pointer to a L1GtCorrelationTemplate
0095   const L1GtCorrelationTemplate *m_gtCorrelationTemplate;
0096 
0097   /// pointer to first sub-condition
0098   const L1GtCondition *m_gtCond0;
0099 
0100   /// pointer to second sub-condition
0101   const L1GtCondition *m_gtCond1;
0102 
0103   ///
0104   int m_cond0NrL1Objects;
0105   int m_cond1NrL1Objects;
0106   int m_cond0EtaBits;
0107   int m_cond1EtaBits;
0108 
0109   /// number of bins for delta phi
0110   unsigned int m_nrBinsPhi;
0111 
0112   /// pointer to GTL, to be able to get the trigger objects
0113   const L1GlobalTriggerGTL *m_gtGTL;
0114 
0115   /// pointer to PSB, to be able to get the trigger objects
0116   const L1GlobalTriggerPSB *m_gtPSB;
0117 
0118   /// pointer to eta and phi conversion class
0119   const L1GtEtaPhiConversions *m_gtEtaPhiConversions;
0120 
0121 private:
0122   bool m_isDebugEnabled;
0123 };
0124 
0125 #endif