Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-14 23:16:58

0001 #ifndef L1Trigger_L1TGlobal_CorrCondition_h
0002 #define L1Trigger_L1TGlobal_CorrCondition_h
0003 
0004 /**
0005  * \class CorrCondition
0006  * 
0007  * 
0008  * Description: evaluation of a correlation 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/L1TGlobal/interface/ConditionEvaluation.h"
0025 #include "L1Trigger/L1TGlobal/interface/GlobalScales.h"
0026 
0027 // forward declarations
0028 class GlobalCondition;
0029 class CorrelationTemplate;
0030 
0031 namespace l1t {
0032 
0033   class L1Candidate;
0034 
0035   class GlobalBoard;
0036 
0037   // class declaration
0038   class CorrCondition : public ConditionEvaluation {
0039   public:
0040     /// constructors
0041     ///     default
0042     CorrCondition();
0043 
0044     ///     from base template condition (from event setup usually)
0045     CorrCondition(const GlobalCondition*,
0046                   const GlobalCondition*,
0047                   const GlobalCondition*,
0048                   const GlobalBoard*,
0049                   const GlobalScales*);
0050 
0051     // copy constructor
0052     CorrCondition(const CorrCondition&);
0053 
0054     // destructor
0055     ~CorrCondition() override;
0056 
0057     // assign operator
0058     CorrCondition& operator=(const CorrCondition&);
0059 
0060   public:
0061     /// the core function to check if the condition matches
0062     const bool evaluateCondition(const int bxEval) const override;
0063 
0064     /// print condition
0065     void print(std::ostream& myCout) const override;
0066 
0067   public:
0068     inline const CorrelationTemplate* gtCorrelationTemplate() const { return m_gtCorrelationTemplate; }
0069     void setGtCorrelationTemplate(const CorrelationTemplate*);
0070 
0071     inline const GlobalBoard* getuGtB() const { return m_uGtB; }
0072     void setuGtB(const GlobalBoard*);
0073 
0074     inline const GlobalScales* getScales() const { return m_gtScales; }
0075     void setScales(const GlobalScales*);
0076 
0077     /*   //BLW Comment out for now
0078     ///   get / set the number of bits for eta of calorimeter objects
0079     inline const int gtIfCaloEtaNumberBits() const {
0080         return m_ifCaloEtaNumberBits;
0081     }
0082 
0083 
0084     void setGtIfCaloEtaNumberBits(const int&);
0085 
0086     ///   get / set maximum number of bins for the delta phi scales
0087     inline const int gtCorrParDeltaPhiNrBins() const {
0088         return m_corrParDeltaPhiNrBins;
0089     }
0090 
0091     void setGtCorrParDeltaPhiNrBins(const int&);
0092 */
0093   private:
0094     ///  copy function for copy constructor and operator=
0095     void copy(const CorrCondition& cp);
0096 
0097     /// load  candidates
0098     const l1t::L1Candidate* getCandidate(const int bx, const int indexCand) const;
0099 
0100     /// function to check a single object if it matches a condition
0101     const bool checkObjectParameter(const int iCondition, const l1t::L1Candidate& cand) const;
0102 
0103   private:
0104     /// pointer to a CorrelationTemplate
0105     const CorrelationTemplate* m_gtCorrelationTemplate;
0106 
0107     // pointer to subconditions
0108     const GlobalCondition* m_gtCond0;
0109     const GlobalCondition* m_gtCond1;
0110 
0111     /// pointer to uGt GlobalBoard, to be able to get the trigger objects
0112     const GlobalBoard* m_uGtB;
0113 
0114     const GlobalScales* m_gtScales;
0115 
0116     /*   //BLW comment out for now
0117     /// number of bits for eta of calorimeter objects
0118     int m_ifCaloEtaNumberBits;
0119 
0120     // maximum number of bins for the delta phi scales
0121     unsigned int m_corrParDeltaPhiNrBins;
0122 */
0123   };
0124 
0125 }  // namespace l1t
0126 #endif