/*************************************************************************** PGKT_LF.h Author: Andreas Suter e-mail: andreas.suter@psi.ch ***************************************************************************/ /*************************************************************************** * Copyright (C) 2007-2025 by Andreas Suter * * andreas.suter@psi.ch * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef _PGKT_LF_ #define _PGKT_LF_ #include class PGKT_LF { public: PGKT_LF(std::vector ¶m); int DynamicGaussKTLF(); bool IsValid() { return fValid; } std::vector GetTime() { return fTime; } std::vector GetPol() { return fPol; } private: const double fGammaMu=8.5161545577e-2; std::vector fDynLFFuncValue; std::vector fLFIntegral; double fSamplingTime{0.0001}; double fDynLFdt{0.0001}; bool fValid{false}; std::vector fParam; std::vector fTime; std::vector fPol; void CalculateDynKTLF(); void CalculateGaussLFIntegral(); double GetLFIntegralValue(const double t) const; double GetDynKTLFValue(const double t) const; }; #endif // _PGKT_LF_