Go to the documentation of this file.00001 #ifndef L1TObjects_L1RCTParameters_h
00002 #define L1TObjects_L1RCTParameters_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022 #include <boost/cstdint.hpp>
00023 #include <vector>
00024 #include <ostream>
00025
00026 class L1RCTParameters {
00027
00028 public:
00029
00030
00031 L1RCTParameters() {}
00032
00033 L1RCTParameters(double eGammaLSB,
00034 double jetMETLSB,
00035 double eMinForFGCut,
00036 double eMaxForFGCut,
00037 double hOeCut,
00038 double eMinForHoECut,
00039 double eMaxForHoECut,
00040 double hMinForHoECut,
00041 double eActivityCut,
00042 double hActivityCut,
00043 unsigned eicIsolationThreshold,
00044 unsigned jscQuietThresholdBarrel,
00045 unsigned jscQuietThresholdEndcap,
00046 bool noiseVetoHB,
00047 bool noiseVetoHEplus,
00048 bool noiseVetoHEminus,
00049 bool useLindsey,
00050 const std::vector<double>& eGammaECalScaleFactors,
00051 const std::vector<double>& eGammaHCalScaleFactors,
00052 const std::vector<double>& jetMETECalScaleFactors,
00053 const std::vector<double>& jetMETHCalScaleFactors,
00054 const std::vector<double>& ecal_calib,
00055 const std::vector<double>& hcal_calib,
00056 const std::vector<double>& hcal_high_calib,
00057 const std::vector<double>& cross_terms,
00058 const std::vector<double>& lowHoverE_smear,
00059 const std::vector<double>& highHoverE_smear
00060 );
00061
00062
00063 ~L1RCTParameters() {;}
00064
00065
00066
00067 double eGammaLSB() const {return eGammaLSB_;}
00068 double jetMETLSB() const {return jetMETLSB_;}
00069 double eMinForFGCut() const {return eMinForFGCut_;}
00070 double eMaxForFGCut() const {return eMaxForFGCut_;}
00071 double hOeCut() const {return hOeCut_;}
00072 double eMinForHoECut() const {return eMinForHoECut_;}
00073 double eMaxForHoECut() const {return eMaxForHoECut_;}
00074 double hMinForHoECut() const {return hMinForHoECut_;}
00075 double eActivityCut() const {return eActivityCut_;}
00076 double hActivityCut() const {return hActivityCut_;}
00077 unsigned eicIsolationThreshold() const {return eicIsolationThreshold_;}
00078 unsigned jscQuietThresholdBarrel() const {return jscQuietThresholdBarrel_;}
00079 unsigned jscQuietThresholdEndcap() const {return jscQuietThresholdEndcap_;}
00080 bool noiseVetoHB() const {return noiseVetoHB_;}
00081 bool noiseVetoHEplus() const {return noiseVetoHEplus_;}
00082 bool noiseVetoHEminus() const {return noiseVetoHEminus_;}
00083 const std::vector<double>& eGammaECalScaleFactors() const {return eGammaECalScaleFactors_;}
00084 const std::vector<double>& eGammaHCalScaleFactors() const {return eGammaHCalScaleFactors_;}
00085 const std::vector<double>& jetMETECalScaleFactors() const {return jetMETECalScaleFactors_;}
00086 const std::vector<double>& jetMETHCalScaleFactors() const {return jetMETHCalScaleFactors_;}
00087
00088
00089
00090
00091 unsigned short calcCrate(unsigned short rct_iphi, short ieta) const;
00092 unsigned short calcCard(unsigned short rct_iphi, unsigned short absIeta) const;
00093 unsigned short calcTower(unsigned short rct_iphi, unsigned short absIeta) const;
00094 short calcIEta(unsigned short iCrate, unsigned short iCard, unsigned short iTower) const;
00095 unsigned short calcIPhi(unsigned short iCrate, unsigned short iCard, unsigned short iTower) const;
00096 unsigned short calcIAbsEta(unsigned short iCrate, unsigned short iCard, unsigned short iTower) const;
00097
00098
00099 float JetMETTPGSum(const float& ecal, const float& hcal, const unsigned& iAbsEta) const;
00100 float EGammaTPGSum(const float& ecal, const float& hcal, const unsigned& iAbsEta) const;
00101
00102 void print(std::ostream& s) const;
00103
00104 private:
00105
00106
00107
00108
00109
00110
00111
00112 double eGammaLSB_;
00113
00114
00115
00116 double jetMETLSB_;
00117
00118
00119
00120 double eMinForFGCut_;
00121
00122
00123
00124 double eMaxForFGCut_;
00125
00126
00127
00128 double hOeCut_;
00129
00130
00131
00132 double eMinForHoECut_;
00133
00134
00135
00136 double eMaxForHoECut_;
00137
00138
00139
00140 double hMinForHoECut_;
00141
00142
00143
00144
00145
00146 double eActivityCut_;
00147
00148
00149
00150
00151
00152 double hActivityCut_;
00153
00154
00155
00156
00157
00158
00159 unsigned eicIsolationThreshold_;
00160
00161
00162
00163
00164 unsigned jscQuietThresholdBarrel_;
00165
00166
00167
00168
00169 unsigned jscQuietThresholdEndcap_;
00170
00171
00172
00173
00174
00175 bool noiseVetoHB_;
00176
00177
00178
00179
00180 bool noiseVetoHEplus_;
00181
00182
00183
00184
00185 bool noiseVetoHEminus_;
00186
00187
00188 bool useCorrections_;
00189
00190
00191
00192
00193
00194 std::vector<double> eGammaECalScaleFactors_;
00195 std::vector<double> eGammaHCalScaleFactors_;
00196
00197
00198
00199
00200
00201 std::vector<double> jetMETECalScaleFactors_;
00202 std::vector<double> jetMETHCalScaleFactors_;
00203
00204
00205
00206
00207 float correctedTPGSum(const float& ecal, const float& hcal, const unsigned& index) const;
00208
00209
00210
00211
00212 std::vector<std::vector<double> > ecal_calib_;
00213 std::vector<std::vector<double> > hcal_calib_;
00214 std::vector<std::vector<double> > hcal_high_calib_;
00215 std::vector<std::vector<double> > cross_terms_;
00216
00217
00218
00219 std::vector<double> HoverE_smear_low_;
00220 std::vector<double> HoverE_smear_high_;
00221
00222
00223 };
00224
00225 #endif