File indexing completed on 2024-04-06 12:02:20
0001 #ifndef L1TObjects_L1RCTParameters_h
0002 #define L1TObjects_L1RCTParameters_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include "CondFormats/Serialization/interface/Serializable.h"
0023
0024 #include <vector>
0025 #include <ostream>
0026
0027 class L1RCTParameters {
0028 public:
0029
0030 L1RCTParameters() {}
0031
0032 L1RCTParameters(double eGammaLSB,
0033 double jetMETLSB,
0034 double eMinForFGCut,
0035 double eMaxForFGCut,
0036 double hOeCut,
0037 double eMinForHoECut,
0038 double eMaxForHoECut,
0039 double hMinForHoECut,
0040 double eActivityCut,
0041 double hActivityCut,
0042 unsigned eicIsolationThreshold,
0043 unsigned jscQuietThresholdBarrel,
0044 unsigned jscQuietThresholdEndcap,
0045 bool noiseVetoHB,
0046 bool noiseVetoHEplus,
0047 bool noiseVetoHEminus,
0048 bool useLindsey,
0049 const std::vector<double>& eGammaECalScaleFactors,
0050 const std::vector<double>& eGammaHCalScaleFactors,
0051 const std::vector<double>& jetMETECalScaleFactors,
0052 const std::vector<double>& jetMETHCalScaleFactors,
0053 const std::vector<double>& ecal_calib,
0054 const std::vector<double>& hcal_calib,
0055 const std::vector<double>& hcal_high_calib,
0056 const std::vector<double>& cross_terms,
0057 const std::vector<double>& lowHoverE_smear,
0058 const std::vector<double>& highHoverE_smear);
0059
0060
0061 ~L1RCTParameters() { ; }
0062
0063
0064
0065 double eGammaLSB() const { return eGammaLSB_; }
0066 double jetMETLSB() const { return jetMETLSB_; }
0067 double eMinForFGCut() const { return eMinForFGCut_; }
0068 double eMaxForFGCut() const { return eMaxForFGCut_; }
0069 double hOeCut() const { return hOeCut_; }
0070 double eMinForHoECut() const { return eMinForHoECut_; }
0071 double eMaxForHoECut() const { return eMaxForHoECut_; }
0072 double hMinForHoECut() const { return hMinForHoECut_; }
0073 double eActivityCut() const { return eActivityCut_; }
0074 double hActivityCut() const { return hActivityCut_; }
0075 unsigned eicIsolationThreshold() const { return eicIsolationThreshold_; }
0076 unsigned jscQuietThresholdBarrel() const { return jscQuietThresholdBarrel_; }
0077 unsigned jscQuietThresholdEndcap() const { return jscQuietThresholdEndcap_; }
0078 bool noiseVetoHB() const { return noiseVetoHB_; }
0079 bool noiseVetoHEplus() const { return noiseVetoHEplus_; }
0080 bool noiseVetoHEminus() const { return noiseVetoHEminus_; }
0081 const std::vector<double>& eGammaECalScaleFactors() const { return eGammaECalScaleFactors_; }
0082 const std::vector<double>& eGammaHCalScaleFactors() const { return eGammaHCalScaleFactors_; }
0083 const std::vector<double>& jetMETECalScaleFactors() const { return jetMETECalScaleFactors_; }
0084 const std::vector<double>& jetMETHCalScaleFactors() const { return jetMETHCalScaleFactors_; }
0085
0086
0087
0088
0089 unsigned short calcCrate(unsigned short rct_iphi, short ieta) const;
0090 unsigned short calcCard(unsigned short rct_iphi, unsigned short absIeta) const;
0091 unsigned short calcTower(unsigned short rct_iphi, unsigned short absIeta) const;
0092 short calcIEta(unsigned short iCrate, unsigned short iCard, unsigned short iTower) const;
0093 unsigned short calcIPhi(unsigned short iCrate, unsigned short iCard, unsigned short iTower) const;
0094 unsigned short calcIAbsEta(unsigned short iCrate, unsigned short iCard, unsigned short iTower) const;
0095
0096
0097 float JetMETTPGSum(const float& ecal, const float& hcal, const unsigned& iAbsEta) const;
0098 float EGammaTPGSum(const float& ecal, const float& hcal, const unsigned& iAbsEta) const;
0099
0100 void print(std::ostream& s) const;
0101
0102 private:
0103
0104
0105
0106
0107
0108
0109 double eGammaLSB_;
0110
0111
0112
0113 double jetMETLSB_;
0114
0115
0116
0117 double eMinForFGCut_;
0118
0119
0120
0121 double eMaxForFGCut_;
0122
0123
0124
0125 double hOeCut_;
0126
0127
0128
0129 double eMinForHoECut_;
0130
0131
0132
0133 double eMaxForHoECut_;
0134
0135
0136
0137 double hMinForHoECut_;
0138
0139
0140
0141
0142
0143 double eActivityCut_;
0144
0145
0146
0147
0148
0149 double hActivityCut_;
0150
0151
0152
0153
0154
0155
0156 unsigned eicIsolationThreshold_;
0157
0158
0159
0160
0161 unsigned jscQuietThresholdBarrel_;
0162
0163
0164
0165
0166 unsigned jscQuietThresholdEndcap_;
0167
0168
0169
0170
0171
0172 bool noiseVetoHB_;
0173
0174
0175
0176
0177 bool noiseVetoHEplus_;
0178
0179
0180
0181
0182 bool noiseVetoHEminus_;
0183
0184
0185 bool useCorrections_;
0186
0187
0188
0189
0190
0191 std::vector<double> eGammaECalScaleFactors_;
0192 std::vector<double> eGammaHCalScaleFactors_;
0193
0194
0195
0196
0197
0198 std::vector<double> jetMETECalScaleFactors_;
0199 std::vector<double> jetMETHCalScaleFactors_;
0200
0201
0202
0203 float correctedTPGSum(const float& ecal, const float& hcal, const unsigned& index) const;
0204
0205
0206
0207
0208 std::vector<std::vector<double> > ecal_calib_;
0209 std::vector<std::vector<double> > hcal_calib_;
0210 std::vector<std::vector<double> > hcal_high_calib_;
0211 std::vector<std::vector<double> > cross_terms_;
0212
0213
0214
0215 std::vector<double> HoverE_smear_low_;
0216 std::vector<double> HoverE_smear_high_;
0217
0218 COND_SERIALIZABLE;
0219 };
0220
0221 #endif