File indexing completed on 2024-04-06 12:02:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef CaloParams_h
0013 #define CaloParams_h
0014
0015 #include <memory>
0016 #include <iostream>
0017 #include <vector>
0018 #include <cmath>
0019
0020 #include "CondFormats/Serialization/interface/Serializable.h"
0021 #include "CondFormats/L1TObjects/interface/LUT.h"
0022
0023 namespace l1t {
0024
0025 class CaloParams {
0026 public:
0027 enum { Version = 2 };
0028
0029 class Node {
0030 public:
0031 std::string type_;
0032 unsigned version_;
0033 l1t::LUT LUT_;
0034 std::vector<double> dparams_;
0035 std::vector<unsigned> uparams_;
0036 std::vector<int> iparams_;
0037 std::vector<std::string> sparams_;
0038 Node() {
0039 type_ = "unspecified";
0040 version_ = 1;
0041 }
0042 COND_SERIALIZABLE;
0043 };
0044
0045 class TowerParams {
0046 public:
0047
0048
0049
0050 double lsbH_;
0051
0052
0053 double lsbE_;
0054
0055
0056 double lsbSum_;
0057
0058
0059 int nBitsH_;
0060
0061
0062 int nBitsE_;
0063
0064
0065 int nBitsSum_;
0066
0067
0068 int nBitsRatio_;
0069
0070
0071 int maskH_;
0072
0073
0074 int maskE_;
0075
0076
0077 int maskSum_;
0078
0079
0080 int maskRatio_;
0081
0082
0083 bool doEncoding_;
0084
0085 TowerParams()
0086 : lsbH_(0),
0087 lsbE_(0),
0088 lsbSum_(0),
0089 nBitsH_(0),
0090 nBitsE_(0),
0091 nBitsSum_(0),
0092 nBitsRatio_(0),
0093 maskH_(0),
0094 maskE_(0),
0095 maskSum_(0),
0096 maskRatio_(0),
0097 doEncoding_(false) {
0098 }
0099
0100 COND_SERIALIZABLE;
0101 };
0102
0103 class EgParams {
0104 public:
0105
0106 double lsb_;
0107
0108
0109 double seedThreshold_;
0110
0111
0112 double neighbourThreshold_;
0113
0114
0115 double hcalThreshold_;
0116
0117
0118 double maxHcalEt_;
0119
0120
0121 double maxPtHOverE_;
0122
0123
0124 int minPtJetIsolation_;
0125 int maxPtJetIsolation_;
0126
0127
0128 int minPtHOverEIsolation_;
0129 int maxPtHOverEIsolation_;
0130
0131
0132 unsigned isoAreaNrTowersEta_;
0133
0134
0135 unsigned isoAreaNrTowersPhi_;
0136
0137
0138 unsigned isoVetoNrTowersPhi_;
0139
0140 EgParams()
0141 : lsb_(0),
0142 seedThreshold_(0),
0143 neighbourThreshold_(0),
0144 hcalThreshold_(0),
0145 maxHcalEt_(0),
0146 maxPtHOverE_(0),
0147 minPtJetIsolation_(0),
0148 maxPtJetIsolation_(0),
0149 minPtHOverEIsolation_(0),
0150 maxPtHOverEIsolation_(0),
0151 isoAreaNrTowersEta_(0),
0152 isoAreaNrTowersPhi_(0),
0153 isoVetoNrTowersPhi_(0) {
0154 }
0155
0156 COND_SERIALIZABLE;
0157 };
0158
0159 class TauParams {
0160 public:
0161
0162 double lsb_;
0163
0164
0165 double seedThreshold_;
0166
0167
0168 double neighbourThreshold_;
0169
0170
0171 double maxPtTauVeto_;
0172
0173
0174 double minPtJetIsolationB_;
0175
0176
0177 double maxJetIsolationB_;
0178
0179
0180 double maxJetIsolationA_;
0181
0182
0183 int isoEtaMin_;
0184 int isoEtaMax_;
0185
0186
0187 unsigned isoAreaNrTowersEta_;
0188
0189
0190 unsigned isoAreaNrTowersPhi_;
0191
0192
0193 unsigned isoVetoNrTowersPhi_;
0194
0195 TauParams()
0196 : lsb_(0),
0197 seedThreshold_(0),
0198 neighbourThreshold_(0),
0199 maxPtTauVeto_(0),
0200 minPtJetIsolationB_(0),
0201 maxJetIsolationB_(0),
0202 maxJetIsolationA_(0),
0203 isoEtaMin_(0),
0204 isoEtaMax_(0),
0205 isoAreaNrTowersEta_(0),
0206 isoAreaNrTowersPhi_(0),
0207 isoVetoNrTowersPhi_(0) {
0208 }
0209
0210 COND_SERIALIZABLE;
0211 };
0212
0213 class JetParams {
0214 public:
0215
0216 double lsb_;
0217
0218
0219 double seedThreshold_;
0220
0221
0222 double neighbourThreshold_;
0223
0224 JetParams() : lsb_(0), seedThreshold_(0), neighbourThreshold_(0) {
0225 }
0226
0227 COND_SERIALIZABLE;
0228 };
0229
0230 CaloParams() : pnode_(0) { version_ = Version; }
0231 ~CaloParams() {}
0232
0233 protected:
0234 unsigned version_;
0235
0236 std::vector<Node> pnode_;
0237
0238 TowerParams towerp_;
0239
0240
0241 double regionLsb_;
0242
0243 EgParams egp_;
0244 TauParams taup_;
0245 JetParams jetp_;
0246
0247
0248
0249
0250 double etSumLsb_;
0251
0252
0253 std::vector<int> etSumEtaMin_;
0254
0255
0256 std::vector<int> etSumEtaMax_;
0257
0258
0259 std::vector<double> etSumEtThreshold_;
0260
0261 COND_SERIALIZABLE;
0262 };
0263
0264 }
0265 #endif