CMS 3D CMS Logo

IntegrandThetaFunction.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_IsolationUtils_IntegrandThetaFunction_h
2 #define PhysicsTools_IsolationUtils_IntegrandThetaFunction_h
3 
4 // -*- C++ -*-
5 //
6 // Package: IntegrandThetaFunction
7 // Class: IntegrandThetaFunction
8 //
17 //
18 // Original Author: Christian Veelken, UC Davis
19 // Created: Thu Nov 2 13:47:40 CST 2006
20 //
21 //
22 
23 // ROOT include files
24 #include <Math/ParamFunction.h>
25 #include <Math/Integrator.h>
26 
28 
29 //
30 // class declaration
31 //
32 
33 class IntegrandThetaFunction : public ROOT::Math::ParamFunction<ROOT::Math::IParametricGradFunctionOneDim> {
34 public:
37  ~IntegrandThetaFunction() override;
38 
40 
41  void SetParameterTheta0(double theta0);
42  void SetParameterPhi0(double phi0);
43  void SetParameterAlpha(double alpha);
44 
45  ROOT::Math::IGenFunction* Clone() const override { return new IntegrandThetaFunction(*this); }
46 
47 private:
48  void SetParameters(double const* param) override;
49 
50  double DoEval(double x) const override;
51  double DoEvalPar(double, const double*) const override;
52  double DoDerivative(double x) const;
53  double DoParameterDerivative(double, const double*, unsigned int) const override;
54  void DoParameterGradient(double x, double* paramGradient) const;
55 
56  mutable double theta0_; // polar angle of cone axis
57  mutable double phi0_; // azimuth angle of cone axis
58  mutable double alpha_; // opening angle of cone (measured from cone axis)
59 
61 
62  static const unsigned int debugLevel_ = 0;
63 };
64 
65 #endif
IntegrandThetaFunction::SetParameters
void SetParameters(double const *param) override
Definition: IntegrandThetaFunction.cc:86
IntegrandThetaFunction::alpha_
double alpha_
Definition: IntegrandThetaFunction.h:58
IntegrandThetaFunction::SetParameterAlpha
void SetParameterAlpha(double alpha)
Definition: IntegrandThetaFunction.cc:84
IntegrandThetaFunction::DoEval
double DoEval(double x) const override
Definition: IntegrandThetaFunction.cc:101
zMuMuMuonUserData.alpha
alpha
zGenParticlesMatch = cms.InputTag(""),
Definition: zMuMuMuonUserData.py:9
IntegrandThetaFunction::IntegrandThetaFunction
IntegrandThetaFunction()
Definition: IntegrandThetaFunction.cc:40
IntegrandThetaFunction::SetParameterTheta0
void SetParameterTheta0(double theta0)
Definition: IntegrandThetaFunction.cc:78
IntegrandThetaFunction::SetParameterPhi0
void SetParameterPhi0(double phi0)
Definition: IntegrandThetaFunction.cc:80
IntegrandThetaFunction::~IntegrandThetaFunction
~IntegrandThetaFunction() override
Definition: IntegrandThetaFunction.cc:58
DDAxes::x
IntegrandThetaFunction::DoParameterGradient
void DoParameterGradient(double x, double *paramGradient) const
Definition: IntegrandThetaFunction.cc:164
IntegrandThetaFunction
Definition: IntegrandThetaFunction.h:33
IntegrandThetaFunction::fPhi_
IntegralOverPhiFunction * fPhi_
Definition: IntegrandThetaFunction.h:60
IntegrandThetaFunction::DoParameterDerivative
double DoParameterDerivative(double, const double *, unsigned int) const override
Definition: IntegrandThetaFunction.cc:156
IntegrandThetaFunction::debugLevel_
static const unsigned int debugLevel_
Definition: IntegrandThetaFunction.h:62
IntegrandThetaFunction::operator=
IntegrandThetaFunction & operator=(const IntegrandThetaFunction &bluePrint)
Definition: IntegrandThetaFunction.cc:64
IntegrandThetaFunction::theta0_
double theta0_
Definition: IntegrandThetaFunction.h:56
IntegrandThetaFunction::DoDerivative
double DoDerivative(double x) const
Definition: IntegrandThetaFunction.cc:148
IntegrandThetaFunction::phi0_
double phi0_
Definition: IntegrandThetaFunction.h:57
IntegrandThetaFunction::Clone
ROOT::Math::IGenFunction * Clone() const override
Definition: IntegrandThetaFunction.h:45
IntegrandThetaFunction::DoEvalPar
double DoEvalPar(double, const double *) const override
Definition: IntegrandThetaFunction.cc:92
IntegralOverPhiFunction
Definition: IntegralOverPhiFunction.h:30