CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FFTJetCorrectorTransient.h
Go to the documentation of this file.
1 //
2 // This is the type which gets updated by each level
3 // of jet corrections
4 //
5 // Igor Volobouev
6 // Aug 3, 2012
7 //
8 
9 #ifndef JetMETCorrections_FFTJetObjects_FFTJetCorrectorTransient_h
10 #define JetMETCorrections_FFTJetObjects_FFTJetCorrectorTransient_h
11 
12 #include <cmath>
14 
16 {
17 public:
19 
21  const double initialScale=1.0,
22  const double initialSigma=0.0)
23  : vec_(v), scale_(initialScale),
24  variance_(initialSigma*initialSigma) {}
25 
26  inline const LorentzVector& vec() const {return vec_;}
27  inline double scale() const {return scale_;}
28  inline double sigma() const {return sqrt(variance_);}
29  inline double variance() const {return variance_;}
30 
31  inline void setVec(const LorentzVector& v) {vec_ = v;}
32  inline void setScale(const double s) {scale_ = s;}
33  inline void setSigma(const double s) {variance_ = s*s;}
34  inline void setVariance(const double v) {variance_ = fabs(v);}
35 
36  inline FFTJetCorrectorTransient& operator*=(const double& d)
37  {
38  // Do not change the sigma -- assume that it is relative to jet Pt
39  vec_ *= d;
40  scale_ *= d;
41  return *this;
42  }
43 
44 private:
46 
48  double scale_;
49  double variance_;
50 };
51 
52 #endif // JetMETCorrections_FFTJetObjects_FFTJetCorrectorTransient_h
void setVariance(const double v)
FFTJetCorrectorTransient(const LorentzVector &v, const double initialScale=1.0, const double initialSigma=0.0)
void setVec(const LorentzVector &v)
tuple d
Definition: ztail.py:151
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
FFTJetCorrectorTransient & operator*=(const double &d)
T sqrt(T t)
Definition: SSEVec.h:48
const LorentzVector & vec() const
math::XYZTLorentzVector LorentzVector