Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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