File indexing completed on 2024-04-06 12:20:29
0001 #ifndef L1Trigger_L1TGlobal_CorrelationWithOverlapRemovalTemplate_h
0002 #define L1Trigger_L1TGlobal_CorrelationWithOverlapRemovalTemplate_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <string>
0023 #include <iosfwd>
0024
0025
0026
0027
0028 #include "L1Trigger/L1TGlobal/interface/GlobalCondition.h"
0029
0030 #include "L1Trigger/L1TGlobal/interface/GlobalDefinitions.h"
0031
0032
0033
0034 class CorrelationWithOverlapRemovalTemplate : public GlobalCondition {
0035 public:
0036
0037
0038 CorrelationWithOverlapRemovalTemplate();
0039
0040
0041 CorrelationWithOverlapRemovalTemplate(const std::string&);
0042
0043
0044
0045
0046 CorrelationWithOverlapRemovalTemplate(const std::string&,
0047 const l1t::GtConditionCategory&,
0048 const l1t::GtConditionCategory&,
0049 const l1t::GtConditionCategory&,
0050 const int,
0051 const int,
0052 const int);
0053
0054
0055 CorrelationWithOverlapRemovalTemplate(const CorrelationWithOverlapRemovalTemplate&);
0056
0057
0058 ~CorrelationWithOverlapRemovalTemplate() override;
0059
0060
0061 CorrelationWithOverlapRemovalTemplate& operator=(const CorrelationWithOverlapRemovalTemplate&);
0062
0063 public:
0064
0065 struct CorrelationWithOverlapRemovalParameter {
0066
0067 long long minEtaCutValue;
0068 long long maxEtaCutValue;
0069 unsigned int precEtaCut;
0070
0071 long long minPhiCutValue;
0072 long long maxPhiCutValue;
0073 unsigned int precPhiCut;
0074
0075 long long minDRCutValue;
0076 long long maxDRCutValue;
0077
0078 unsigned int precDRCut;
0079
0080 long long minMassCutValue;
0081 long long maxMassCutValue;
0082 unsigned int precMassCut;
0083
0084 long long minTBPTCutValue;
0085 long long maxTBPTCutValue;
0086 unsigned int precTBPTCut;
0087
0088 long long minOverlapRemovalEtaCutValue;
0089 long long maxOverlapRemovalEtaCutValue;
0090 unsigned int precOverlapRemovalEtaCut;
0091
0092 long long minOverlapRemovalPhiCutValue;
0093 long long maxOverlapRemovalPhiCutValue;
0094 unsigned int precOverlapRemovalPhiCut;
0095
0096 long long minOverlapRemovalDRCutValue;
0097 long long maxOverlapRemovalDRCutValue;
0098 unsigned int precOverlapRemovalDRCut;
0099
0100
0101 unsigned int chargeCorrelation;
0102
0103 int corrCutType;
0104 };
0105
0106 public:
0107
0108 inline const l1t::GtConditionCategory cond0Category() const { return m_cond0Category; }
0109
0110 inline const l1t::GtConditionCategory cond1Category() const { return m_cond1Category; }
0111
0112 inline const l1t::GtConditionCategory cond2Category() const { return m_cond2Category; }
0113
0114 void setCond0Category(const l1t::GtConditionCategory&);
0115 void setCond1Category(const l1t::GtConditionCategory&);
0116 void setCond2Category(const l1t::GtConditionCategory&);
0117
0118
0119 inline const int cond0Index() const { return m_cond0Index; }
0120
0121 inline const int cond1Index() const { return m_cond1Index; }
0122
0123 inline const int cond2Index() const { return m_cond2Index; }
0124
0125 void setCond0Index(const int&);
0126 void setCond1Index(const int&);
0127 void setCond2Index(const int&);
0128
0129
0130
0131 inline const CorrelationWithOverlapRemovalParameter* correlationParameter() const { return &m_correlationParameter; }
0132
0133 void setCorrelationWithOverlapRemovalParameter(const CorrelationWithOverlapRemovalParameter& corrParameter);
0134
0135
0136 void print(std::ostream& myCout) const override;
0137
0138
0139 friend std::ostream& operator<<(std::ostream&, const CorrelationWithOverlapRemovalTemplate&);
0140
0141 private:
0142
0143 void copy(const CorrelationWithOverlapRemovalTemplate& cp);
0144
0145 private:
0146 l1t::GtConditionCategory m_cond0Category;
0147 l1t::GtConditionCategory m_cond1Category;
0148 l1t::GtConditionCategory m_cond2Category;
0149 int m_cond0Index;
0150 int m_cond1Index;
0151 int m_cond2Index;
0152 CorrelationWithOverlapRemovalParameter m_correlationParameter;
0153 };
0154
0155 #endif