00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef O2SCL_BOSON_H
00024 #define O2SCL_BOSON_H
00025
00026 #include <string>
00027 #include <iostream>
00028 #include <fstream>
00029 #include <math.h>
00030 #include <o2scl/constants.h>
00031 #include <o2scl/mroot.h>
00032 #include <o2scl/inte.h>
00033 #include <o2scl/part.h>
00034
00035 #ifndef DOXYGENP
00036 namespace o2scl {
00037 #endif
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 class boson : virtual public part {
00048
00049 public:
00050
00051
00052
00053
00054
00055
00056
00057 double co;
00058
00059
00060 boson(double m=0.0, double g=0.0);
00061
00062 virtual int calc_mu(const double temper);
00063 virtual int calc_density(const double temper);
00064 virtual int pair_mu(const double temper);
00065 virtual int pair_density(const double temper);
00066
00067
00068
00069
00070
00071
00072
00073
00074 virtual int massless_calc_mu(const double temper);
00075
00076
00077 virtual const char *type() { return "boson"; }
00078
00079 #ifndef DOXYGEN_INTERNAL
00080
00081 friend class io_tlate<boson>;
00082
00083 #endif
00084
00085 protected:
00086
00087 };
00088
00089 template<> int io_tlate<boson>::input
00090 (cinput *co, in_file_format *ins, boson *b);
00091 template<> int io_tlate<boson>::output
00092 (coutput *co, out_file_format *outs, boson *b);
00093 template<> const char *io_tlate<boson>::type();
00094
00095 typedef io_tlate<boson> boson_io_type;
00096
00097 #ifndef DOXYGENP
00098 }
00099 #endif
00100
00101 #endif