File indexing completed on 2024-04-06 12:20:29
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
0052 );
0053
0054
0055 CorrWithOverlapRemovalCondition(const CorrWithOverlapRemovalCondition&);
0056
0057
0058 ~CorrWithOverlapRemovalCondition() override;
0059
0060
0061 CorrWithOverlapRemovalCondition& operator=(const CorrWithOverlapRemovalCondition&);
0062
0063 public:
0064
0065 const bool evaluateCondition(const int bxEval) const override;
0066
0067
0068 void print(std::ostream& myCout) const override;
0069
0070 public:
0071
0072 inline const CorrelationWithOverlapRemovalTemplate* gtCorrelationWithOverlapRemovalTemplate() const {
0073 return m_gtCorrelationWithOverlapRemovalTemplate;
0074 }
0075
0076 void setGtCorrelationWithOverlapRemovalTemplate(const CorrelationWithOverlapRemovalTemplate*);
0077
0078
0079 inline const GlobalBoard* getuGtB() const { return m_uGtB; }
0080
0081 void setuGtB(const GlobalBoard*);
0082
0083 void setScales(const GlobalScales*);
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101 private:
0102
0103 void copy(const CorrWithOverlapRemovalCondition& cp);
0104
0105
0106 const l1t::L1Candidate* getCandidate(const int bx, const int indexCand) const;
0107
0108
0109 const bool checkObjectParameter(const int iCondition, const l1t::L1Candidate& cand) const;
0110
0111 private:
0112
0113 const CorrelationWithOverlapRemovalTemplate* m_gtCorrelationWithOverlapRemovalTemplate;
0114
0115
0116 const GlobalCondition* m_gtCond0;
0117 const GlobalCondition* m_gtCond1;
0118 const GlobalCondition* m_gtCond2;
0119
0120
0121 const GlobalBoard* m_uGtB;
0122
0123 const GlobalScales* m_gtScales;
0124
0125
0126
0127
0128
0129
0130
0131
0132 };
0133
0134 }
0135 #endif