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
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <iosfwd>
0021 #include <string>
0022
0023
0024
0025 #include "L1Trigger/L1TGlobal/interface/ConditionEvaluation.h"
0026 #include "L1Trigger/L1TGlobal/interface/GlobalScales.h"
0027
0028
0029 class GlobalCondition;
0030 class CorrelationWithOverlapRemovalTemplate;
0031
0032 namespace l1t {
0033
0034 class L1Candidate;
0035
0036 class GlobalBoard;
0037
0038
0039 class CorrWithOverlapRemovalCondition : public ConditionEvaluation {
0040 public:
0041
0042
0043 CorrWithOverlapRemovalCondition();
0044
0045
0046 CorrWithOverlapRemovalCondition(const GlobalCondition*,
0047 const GlobalCondition*,
0048 const GlobalCondition*,
0049 const GlobalCondition*,
0050 const GlobalBoard*,
0051 const GlobalScales*);
0052
0053
0054 CorrWithOverlapRemovalCondition(const CorrWithOverlapRemovalCondition&);
0055
0056
0057 ~CorrWithOverlapRemovalCondition() override;
0058
0059
0060 CorrWithOverlapRemovalCondition& operator=(const CorrWithOverlapRemovalCondition&);
0061
0062 public:
0063
0064 const bool evaluateCondition(const int bxEval) const override;
0065
0066
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
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098 private:
0099
0100 void copy(const CorrWithOverlapRemovalCondition& cp);
0101
0102
0103 const l1t::L1Candidate* getCandidate(const int bx, const int indexCand) const;
0104
0105
0106 const bool checkObjectParameter(const int iCondition, const l1t::L1Candidate& cand) const;
0107
0108 private:
0109
0110 const CorrelationWithOverlapRemovalTemplate* m_gtCorrelationWithOverlapRemovalTemplate;
0111
0112
0113 const GlobalCondition* m_gtCond0;
0114 const GlobalCondition* m_gtCond1;
0115 const GlobalCondition* m_gtCond2;
0116
0117
0118 const GlobalBoard* m_uGtB;
0119
0120 const GlobalScales* m_gtScales;
0121
0122
0123
0124
0125
0126
0127
0128
0129 };
0130
0131 }
0132 #endif