CMS 3D CMS Logo

IntegralOverPhiFunction.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_IsolationUtils_IntegralOverPhiFunction_h
2 #define PhysicsTools_IsolationUtils_IntegralOverPhiFunction_h
3 
4 // -*- C++ -*-
5 //
6 // Package: IntegralOverPhiFunction
7 // Class: IntegralOverPhiFunction
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 
26 //
27 // class declaration
28 //
29 
30 class IntegralOverPhiFunction : public ROOT::Math::ParamFunction<ROOT::Math::IParametricGradFunctionOneDim> {
31 public:
33  ~IntegralOverPhiFunction() override;
34 
35  void SetParameterTheta0(double theta0);
36  void SetParameterPhi0(double phi0);
37  void SetParameterAlpha(double alpha);
38 
39  ROOT::Math::IGenFunction* Clone() const override { return new IntegralOverPhiFunction(*this); }
40 
41 private:
42  void SetParameters(double const* param) override;
43 
44  double DoEval(double x) const override;
45  double DoEvalPar(double x, const double* param) const override;
46  double DoDerivative(double x) const;
47  double DoParameterDerivative(double, const double*, unsigned int) const override;
48  void DoParameterGradient(double x, double* paramGradient) const;
49 
50  mutable double theta0_; // polar angle of cone axis
51  mutable double phi0_; // azimuth angle of cone axis
52  mutable double alpha_; // opening angle of cone (measured from cone axis)
53 
54  // !!! ONLY FOR TESTING
55  mutable unsigned int numSolutionMin1_;
56  mutable unsigned int numSolutionMax1_;
57  mutable unsigned int numSolutionMin2_;
58  mutable unsigned int numSolutionMax2_;
59  mutable unsigned int numSolutionMin3_;
60  mutable unsigned int numSolutionMax3_;
61  mutable unsigned int numSolutionMin4_;
62  mutable unsigned int numSolutionMax4_;
63  // FOR TESTING ONLY !!!
64 
65  static const unsigned int debugLevel_ = 0;
66 };
67 
68 #endif
IntegralOverPhiFunction::SetParameterTheta0
void SetParameterTheta0(double theta0)
Definition: IntegralOverPhiFunction.cc:87
IntegralOverPhiFunction::SetParameterPhi0
void SetParameterPhi0(double phi0)
Definition: IntegralOverPhiFunction.cc:89
zMuMuMuonUserData.alpha
alpha
zGenParticlesMatch = cms.InputTag(""),
Definition: zMuMuMuonUserData.py:9
IntegralOverPhiFunction::SetParameters
void SetParameters(double const *param) override
Definition: IntegralOverPhiFunction.cc:95
IntegralOverPhiFunction::numSolutionMin2_
unsigned int numSolutionMin2_
Definition: IntegralOverPhiFunction.h:57
DDAxes::x
IntegralOverPhiFunction::theta0_
double theta0_
Definition: IntegralOverPhiFunction.h:50
IntegralOverPhiFunction::numSolutionMax4_
unsigned int numSolutionMax4_
Definition: IntegralOverPhiFunction.h:62
IntegralOverPhiFunction::~IntegralOverPhiFunction
~IntegralOverPhiFunction() override
Definition: IntegralOverPhiFunction.cc:67
IntegralOverPhiFunction::numSolutionMax3_
unsigned int numSolutionMax3_
Definition: IntegralOverPhiFunction.h:60
IntegralOverPhiFunction::Clone
ROOT::Math::IGenFunction * Clone() const override
Definition: IntegralOverPhiFunction.h:39
IntegralOverPhiFunction::numSolutionMin1_
unsigned int numSolutionMin1_
Definition: IntegralOverPhiFunction.h:55
IntegralOverPhiFunction::DoEvalPar
double DoEvalPar(double x, const double *param) const override
Definition: IntegralOverPhiFunction.cc:101
IntegralOverPhiFunction::numSolutionMax2_
unsigned int numSolutionMax2_
Definition: IntegralOverPhiFunction.h:58
IntegralOverPhiFunction::SetParameterAlpha
void SetParameterAlpha(double alpha)
Definition: IntegralOverPhiFunction.cc:93
IntegralOverPhiFunction::debugLevel_
static const unsigned int debugLevel_
Definition: IntegralOverPhiFunction.h:65
IntegralOverPhiFunction::phi0_
double phi0_
Definition: IntegralOverPhiFunction.h:51
IntegralOverPhiFunction::IntegralOverPhiFunction
IntegralOverPhiFunction()
Definition: IntegralOverPhiFunction.cc:49
IntegralOverPhiFunction::numSolutionMin3_
unsigned int numSolutionMin3_
Definition: IntegralOverPhiFunction.h:59
IntegralOverPhiFunction::DoDerivative
double DoDerivative(double x) const
Definition: IntegralOverPhiFunction.cc:230
IntegralOverPhiFunction::numSolutionMin4_
unsigned int numSolutionMin4_
Definition: IntegralOverPhiFunction.h:61
IntegralOverPhiFunction::DoParameterDerivative
double DoParameterDerivative(double, const double *, unsigned int) const override
Definition: IntegralOverPhiFunction.cc:238
IntegralOverPhiFunction::numSolutionMax1_
unsigned int numSolutionMax1_
Definition: IntegralOverPhiFunction.h:56
IntegralOverPhiFunction::alpha_
double alpha_
Definition: IntegralOverPhiFunction.h:52
IntegralOverPhiFunction
Definition: IntegralOverPhiFunction.h:30
IntegralOverPhiFunction::DoEval
double DoEval(double x) const override
Definition: IntegralOverPhiFunction.cc:111
IntegralOverPhiFunction::DoParameterGradient
void DoParameterGradient(double x, double *paramGradient) const
Definition: IntegralOverPhiFunction.cc:246