File indexing completed on 2024-04-06 12:19:17
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef JetMETCorrections_FFTJetObjects_FFTJetCorrectorTransient_h
0010 #define JetMETCorrections_FFTJetObjects_FFTJetCorrectorTransient_h
0011
0012 #include <cmath>
0013 #include "DataFormats/Math/interface/LorentzVector.h"
0014
0015 class FFTJetCorrectorTransient {
0016 public:
0017 typedef math::XYZTLorentzVector LorentzVector;
0018
0019 inline FFTJetCorrectorTransient(const LorentzVector& v,
0020 const double initialScale = 1.0,
0021 const double initialSigma = 0.0)
0022 : vec_(v), scale_(initialScale), variance_(initialSigma * initialSigma) {}
0023 FFTJetCorrectorTransient() = delete;
0024
0025 inline const LorentzVector& vec() const { return vec_; }
0026 inline double scale() const { return scale_; }
0027 inline double sigma() const { return sqrt(variance_); }
0028 inline double variance() const { return variance_; }
0029
0030 inline void setVec(const LorentzVector& v) { vec_ = v; }
0031 inline void setScale(const double s) { scale_ = s; }
0032 inline void setSigma(const double s) { variance_ = s * s; }
0033 inline void setVariance(const double v) { variance_ = fabs(v); }
0034
0035 inline FFTJetCorrectorTransient& operator*=(const double& d) {
0036
0037 vec_ *= d;
0038 scale_ *= d;
0039 return *this;
0040 }
0041
0042 private:
0043 LorentzVector vec_;
0044 double scale_;
0045 double variance_;
0046 };
0047
0048 #endif