CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/PhysicsTools/IsolationUtils/interface/IntegralOverPhiFunction.h

Go to the documentation of this file.
00001 #ifndef PhysicsTools_IsolationUtils_IntegralOverPhiFunction_h
00002 #define PhysicsTools_IsolationUtils_IntegralOverPhiFunction_h
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:    IntegralOverPhiFunction
00007 // Class:      IntegralOverPhiFunction
00008 // 
00017 //
00018 // Original Author:  Christian Veelken, UC Davis
00019 //         Created:  Thu Nov  2 13:47:40 CST 2006
00020 // $Id: IntegralOverPhiFunction.h,v 1.2 2009/01/14 10:53:14 hegner Exp $
00021 //
00022 //
00023 
00024 // ROOT include files
00025 #include <Math/ParamFunction.h>
00026 
00027 //
00028 // class declaration
00029 //
00030 
00031 class IntegralOverPhiFunction : public ROOT::Math::ParamFunction<ROOT::Math::IParametricGradFunctionOneDim>
00032 {
00033  public:
00034   IntegralOverPhiFunction();
00035   ~IntegralOverPhiFunction();
00036 
00037   void SetParameterTheta0(double theta0);
00038   void SetParameterPhi0(double phi0);
00039   void SetParameterAlpha(double alpha);
00040 
00041   virtual ROOT::Math::IGenFunction* Clone () const { return new IntegralOverPhiFunction(*this); }
00042 
00043  private:
00044   void SetParameters(double* param);
00045 
00046   double DoEval(double x) const;
00047   virtual double DoEvalPar(double x, const double* param) const;
00048   double DoDerivative(double x) const;
00049   virtual double DoParameterDerivative(double, const double*, unsigned int) const;
00050   void DoParameterGradient(double x, double* paramGradient) const;
00051 
00052   mutable double theta0_; // polar angle of cone axis
00053   mutable double phi0_; // azimuth angle of cone axis
00054   mutable double alpha_; // opening angle of cone (measured from cone axis)
00055 
00056 // !!! ONLY FOR TESTING
00057   mutable unsigned int numSolutionMin1_;
00058   mutable unsigned int numSolutionMax1_;
00059   mutable unsigned int numSolutionMin2_;
00060   mutable unsigned int numSolutionMax2_;
00061   mutable unsigned int numSolutionMin3_;
00062   mutable unsigned int numSolutionMax3_;
00063   mutable unsigned int numSolutionMin4_;
00064   mutable unsigned int numSolutionMax4_;
00065 //     FOR TESTING ONLY !!!
00066 
00067   static const unsigned int debugLevel_ = 0;
00068 };
00069 
00070 #endif