File indexing completed on 2024-09-27 07:03:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #ifndef TWOPHOTONLUMINOSITY_H
0035 #define TWOPHOTONLUMINOSITY_H
0036
0037 #include "nucleus.h"
0038 #include "beam.h"
0039 #include "beambeamsystem.h"
0040 #include "starlightlimits.h"
0041
0042
0043 class twoPhotonLuminosity : public beamBeamSystem
0044 {
0045 public:
0046 twoPhotonLuminosity(const inputParameters& input, beam beam_1, beam beam_2);
0047 ~twoPhotonLuminosity();
0048
0049 protected:
0050
0051
0052
0053 private:
0054 struct difflumiargs
0055 {
0056 twoPhotonLuminosity *self;
0057 double m;
0058 double y;
0059 double res;
0060 };
0061 void twoPhotonDifferentialLuminosity();
0062 double D2LDMDY(double M,double Y,double &Normalize);
0063 double D2LDMDY(double M,double Y) const;
0064 static void * D2LDMDY_Threaded(void *a);
0065
0066 double integral(double Normalize);
0067 double radmul(int N,double *Lower,double *Upper,int NIterMin,int NIterMax,double EPS,double *WK,int NIter,double &Result,double &ResErr,double &NFNEVL,double &Summary);
0068 double integrand(double N,double X[15]);
0069 double Nphoton(double W,double gamma,double Rho);
0070
0071 double _W1;
0072 double _W2;
0073 double _gamma;
0074
0075 const unsigned int _nWbins;
0076 const unsigned int _nYbins;
0077
0078 const double _wMin;
0079 const double _yMin;
0080 const double _wMax;
0081 const double _yMax;
0082 const int _productionMode;
0083 const int _beamBreakupMode;
0084 const int _interferenceEnabled;
0085 const double _interferenceStrength;
0086 const double _maxPtInterference;
0087 const int _nmbPtBinsInterference;
0088 const int _xsecCalcMethod;
0089 const std::string _baseFileName;
0090 };
0091
0092
0093 #endif