File indexing completed on 2024-04-06 12:20:29
0001 #ifndef L1Trigger_L1TGlobal_CaloTemplate_h
0002 #define L1Trigger_L1TGlobal_CaloTemplate_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #include <string>
0030 #include <iosfwd>
0031
0032
0033
0034
0035 #include "L1Trigger/L1TGlobal/interface/GlobalCondition.h"
0036
0037
0038
0039
0040 class CaloTemplate : public GlobalCondition {
0041 public:
0042
0043 CaloTemplate();
0044
0045
0046 CaloTemplate(const std::string&);
0047
0048
0049 CaloTemplate(const std::string&, const l1t::GtConditionType&);
0050
0051
0052 CaloTemplate(const CaloTemplate&);
0053
0054
0055 ~CaloTemplate() override;
0056
0057
0058 CaloTemplate& operator=(const CaloTemplate&);
0059
0060 public:
0061 struct Window {
0062 unsigned int lower;
0063 unsigned int upper;
0064 };
0065
0066
0067 struct ObjectParameter {
0068 unsigned int etLowThreshold;
0069 unsigned int etHighThreshold;
0070 unsigned int indexLow;
0071 unsigned int indexHigh;
0072 unsigned int etaRange;
0073 unsigned int phiRange;
0074
0075 unsigned int isolationLUT;
0076 unsigned int qualityLUT;
0077 unsigned int displacedLUT;
0078
0079 std::vector<Window> etaWindows;
0080
0081 unsigned int phiWindow1Lower;
0082 unsigned int phiWindow1Upper;
0083 unsigned int phiWindow2Lower;
0084 unsigned int phiWindow2Upper;
0085 };
0086
0087
0088 struct CorrelationParameter {
0089 unsigned long long deltaEtaRange;
0090
0091 unsigned long long deltaPhiRange;
0092 unsigned int deltaPhiMaxbits;
0093
0094 unsigned int deltaEtaRangeLower;
0095 unsigned int deltaEtaRangeUpper;
0096
0097 unsigned int deltaPhiRangeLower;
0098 unsigned int deltaPhiRangeUpper;
0099 };
0100
0101 public:
0102 inline const std::vector<ObjectParameter>* objectParameter() const { return &m_objectParameter; }
0103
0104 inline const CorrelationParameter* correlationParameter() const { return &m_correlationParameter; }
0105
0106
0107 void setConditionParameter(const std::vector<ObjectParameter>& objParameter,
0108 const CorrelationParameter& corrParameter);
0109
0110
0111 void print(std::ostream& myCout) const override;
0112
0113
0114 friend std::ostream& operator<<(std::ostream&, const CaloTemplate&);
0115
0116 protected:
0117
0118 void copy(const CaloTemplate& cp);
0119
0120 protected:
0121
0122 std::vector<ObjectParameter> m_objectParameter;
0123 CorrelationParameter m_correlationParameter;
0124 };
0125
0126 #endif