|
|
|||
File indexing completed on 2026-08-06 09:20:06
0001 0002 /*********************************************************************** 0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors * 0004 * * 0005 * This file is part of EvtGen. * 0006 * * 0007 * EvtGen is free software: you can redistribute it and/or modify * 0008 * it under the terms of the GNU General Public License as published by * 0009 * the Free Software Foundation, either version 3 of the License, or * 0010 * (at your option) any later version. * 0011 * * 0012 * EvtGen is distributed in the hope that it will be useful, * 0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0015 * GNU General Public License for more details. * 0016 * * 0017 * You should have received a copy of the GNU General Public License * 0018 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. * 0019 ***********************************************************************/ 0020 0021 #ifndef EVTITGABSINTEGRATOR_HH 0022 #define EVTITGABSINTEGRATOR_HH 0023 0024 #include "EvtGenModels/EvtItgAbsFunction.hh" 0025 0026 // Description: 0027 // Abstraction of a generic integrator (Stolen and modified from 0028 // the BaBar IntegrationUtils package - author: Phil Strother). 0029 0030 class EvtItgAbsIntegrator { 0031 public: 0032 EvtItgAbsIntegrator( const EvtItgAbsFunction& ); 0033 0034 virtual ~EvtItgAbsIntegrator() = default; 0035 0036 double evaluate( double lower, double upper ) const; 0037 0038 double normalisation() const; 0039 0040 protected: 0041 double trapezoid( double lower, double higher, int n, double& result ) const; 0042 0043 virtual double evaluateIt( double lower, double higher ) const = 0; 0044 0045 double myFunction( double x ) const { return _myFunction( x ); } 0046 0047 private: 0048 const EvtItgAbsFunction& _myFunction; 0049 0050 void boundsCheck( double&, double& ) const; 0051 0052 // Note: if your class needs a copy constructor or an assignment operator, 0053 // make one of the following public and implement it. 0054 EvtItgAbsIntegrator(); 0055 //EvtItgAbsIntegrator( const EvtItgAbsIntegrator& ); // Copy Constructor 0056 //EvtItgAbsIntegrator& operator= ( const EvtItgAbsIntegrator& ); // Assignment op 0057 }; 0058 0059 #endif // EVTITGABSINTEGRATOR_HH
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|