CLHEP/GenericFunctions/Psi2Hydrogen.hh

00001 // -*- C++ -*-
00002 // $Id: 
00003 //----------------------------Psi2Hydrogen----------------------------------//
00004 //                                                                          //
00005 // Class Psi2Hydrogen.  The hydrogen wavefunction^2 as a function of r      //
00006 // theta, and phi.                                                          //
00007 //                                                                          //
00008 // Joe Boudreau April 2002                                                  //
00009 //                                                                          //
00010 //--------------------------------------------------------------------------//
00011 #ifndef Psi2Hydrogen_h
00012 #define Psi2Hydrogen_h 1
00013 #include "CLHEP/GenericFunctions/AbsFunction.hh"
00014 #include "CLHEP/GenericFunctions/Parameter.hh"
00015 #include "CLHEP/config/CLHEP.h"
00016 
00017 namespace Genfun {
00018 
00019   class Psi2Hydrogen : public AbsFunction  {
00020   
00021     FUNCTION_OBJECT_DEF(Psi2Hydrogen)
00022 
00023  public:
00024 
00025     // Constructor
00026     Psi2Hydrogen(unsigned int n, unsigned int l, unsigned int m);
00027 
00028     // Copy constructor
00029     Psi2Hydrogen(const Psi2Hydrogen &right);
00030   
00031     // Destructor
00032     virtual ~Psi2Hydrogen();
00033   
00034     // Retreive function value
00035     virtual double operator ()(double argument) const;   // Gives an error
00036     virtual double operator ()(const Argument & a) const;// Must use this one
00037   
00038     // Get the integer variable n
00039     unsigned int n() const;
00040 
00041     // Get the integer variable l
00042     unsigned int l() const;
00043 
00044     // Get the integer variable m
00045     unsigned int m() const;
00046 
00047   private:
00048 
00049     // It is illegal to assign an adjustable constant
00050     const Psi2Hydrogen & operator=(const Psi2Hydrogen &right);
00051 
00052     // Here is the constant n
00053     unsigned int _n;
00054 
00055     // Here is the constant l 
00056     unsigned int _l;
00057 
00058     // Here is the constant m
00059     unsigned int _m;
00060 
00061     // Here is the "work function"
00062     const AbsFunction *_function;
00063 
00064     // This function is needed in all constructors:
00065     void create(); 
00066   };
00067 
00068 }
00069 
00070 
00071 
00072 #endif
00073 

Class Library for High Energy Physics (version 1.8)