File indexing completed on 2023-03-17 11:12:05
0001 #ifndef L1Trigger_L1TGlobal_CorrelationTemplate_h
0002 #define L1Trigger_L1TGlobal_CorrelationTemplate_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 CorrelationTemplate : public GlobalCondition {
0035 public:
0036
0037
0038 CorrelationTemplate();
0039
0040
0041 CorrelationTemplate(const std::string&);
0042
0043
0044
0045
0046 CorrelationTemplate(
0047 const std::string&, const l1t::GtConditionCategory&, const l1t::GtConditionCategory&, const int, const int);
0048
0049
0050 CorrelationTemplate(const CorrelationTemplate&);
0051
0052
0053 ~CorrelationTemplate() override;
0054
0055
0056 CorrelationTemplate& operator=(const CorrelationTemplate&);
0057
0058 public:
0059
0060 struct CorrelationParameter {
0061
0062 long long minEtaCutValue;
0063 long long maxEtaCutValue;
0064 unsigned int precEtaCut;
0065
0066 long long minPhiCutValue;
0067 long long maxPhiCutValue;
0068 unsigned int precPhiCut;
0069
0070 long long minDRCutValue;
0071 long long maxDRCutValue;
0072 unsigned int precDRCut;
0073
0074 long long minMassCutValue;
0075 long long maxMassCutValue;
0076 unsigned int precMassCut;
0077
0078 long long minTBPTCutValue;
0079 long long maxTBPTCutValue;
0080 unsigned int precTBPTCut;
0081
0082
0083 unsigned int chargeCorrelation;
0084
0085 int corrCutType;
0086 };
0087
0088 public:
0089
0090 inline const l1t::GtConditionCategory cond0Category() const { return m_cond0Category; }
0091
0092 inline const l1t::GtConditionCategory cond1Category() const { return m_cond1Category; }
0093
0094 void setCond0Category(const l1t::GtConditionCategory&);
0095 void setCond1Category(const l1t::GtConditionCategory&);
0096
0097
0098 inline const int cond0Index() const { return m_cond0Index; }
0099
0100 inline const int cond1Index() const { return m_cond1Index; }
0101
0102 void setCond0Index(const int&);
0103 void setCond1Index(const int&);
0104
0105
0106
0107 inline const CorrelationParameter* correlationParameter() const { return &m_correlationParameter; }
0108
0109 void setCorrelationParameter(const CorrelationParameter& corrParameter);
0110
0111
0112 void print(std::ostream& myCout) const override;
0113
0114
0115 friend std::ostream& operator<<(std::ostream&, const CorrelationTemplate&);
0116
0117 private:
0118
0119 void copy(const CorrelationTemplate& cp);
0120
0121 private:
0122 l1t::GtConditionCategory m_cond0Category;
0123 l1t::GtConditionCategory m_cond1Category;
0124 int m_cond0Index;
0125 int m_cond1Index;
0126 CorrelationParameter m_correlationParameter;
0127 };
0128
0129 #endif