Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:54:34

0001 // -*- C++ -*-
0002 // $Id: AssociatedLaguerre.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
0003 //---------------------AssociatedLaguerre-----------------------------------//
0004 //                                                                          //
0005 // Class AssociatedLaguerre.  An associated laguerre polynomial L_n^k(x)    //
0006 // Joe Boudreau, Petar Maksimovic, November 1999                            //
0007 //                                                                          //
0008 //                                                                          //
0009 // Different definitions exist.  These are taken from Arfken, Mathematical  //
0010 // Methods for physicists                                                   //
0011 //                                                                          //
0012 //--------------------------------------------------------------------------//
0013 #ifndef AssociatedLaguerre_h
0014 #define AssociatedLaguerre_h 1
0015 #include "CLHEP/GenericFunctions/AbsFunction.hh"
0016 
0017 namespace Genfun {
0018 
0019   /**
0020    * @author
0021    * @ingroup genfun
0022    */
0023   class AssociatedLaguerre : public AbsFunction  {
0024   
0025     FUNCTION_OBJECT_DEF(AssociatedLaguerre)
0026 
0027       public:
0028 
0029     // Constructor
0030     AssociatedLaguerre(unsigned int n, unsigned int k);
0031 
0032     // Copy constructor
0033     AssociatedLaguerre(const AssociatedLaguerre &right);
0034   
0035     // Destructor
0036     virtual ~AssociatedLaguerre();
0037   
0038     // Retreive function value
0039 
0040     virtual double operator ()(double argument) const override;
0041     virtual double operator ()(const Argument & a) const override {return operator() (a[0]);}
0042   
0043     // Get the integer variable n
0044     unsigned int n() const;
0045 
0046     // Get the integer variable k
0047     unsigned int k() const;
0048 
0049   private:
0050 
0051     // It is illegal to assign an adjustable constant
0052     const AssociatedLaguerre & operator=(const AssociatedLaguerre &right);
0053 
0054     // Here is the decay constant
0055     unsigned int _n;
0056 
0057     // Here is the sigma
0058     unsigned int _k;
0059 
0060     // Here is the "work function"
0061     const AbsFunction *_function;
0062 
0063     // This function is needed in all constructors:
0064     void create(); 
0065   };
0066 
0067 } // namespace Genfun
0068 
0069 
0070 
0071 #endif
0072 
0073