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 PHOTONNUCLEUSCROSSSECTION_H
0035 #define PHOTONNUCLEUSCROSSSECTION_H
0036
0037
0038 #include "starlightconstants.h"
0039 #include "beambeamsystem.h"
0040 #include "inputParameters.h"
0041
0042 class photonNucleusCrossSection{
0043
0044 public:
0045
0046 photonNucleusCrossSection(const inputParameters& input, const beamBeamSystem& bbsystem);
0047 ~photonNucleusCrossSection();
0048
0049 double slopeParameter () const { return _slopeParameter; }
0050 double getChannelMass () const { return _channelMass; }
0051 double getBNORM () const { return _BNORM; }
0052 beamBeamSystem getbbs () const { return _bbs; }
0053 double vmPhotonCoupling() const { return _vmPhotonCoupling; }
0054 double vmQ2Power (double Q2) const { return _vmQ2Power_c1+ _vmQ2Power_c2*(_channelMass*_channelMass + Q2); }
0055 double getDefaultC () const { return _defaultC; }
0056 double maxPhotonEnergy () const { return _maxPhotonEnergy; }
0057
0058 void crossSectionCalculation(const double bwnormsave);
0059 double backwardsPropagationOmegaCrossSection(const double targetEgamma);
0060
0061
0062
0063 double getcsgA(const double Egamma,
0064 const double Q2,
0065 const int beam);
0066 double e_getcsgA(const double Egamma, double Q2,
0067 const double W,
0068 const int beam);
0069
0070 double getcsgA_Q2_dep(const double Q2);
0071 double photonFlux(const double Egamma,
0072 const int beam);
0073
0074 double photonFlux(const double Egamma,
0075 const double Q2);
0076 double integrated_Q2_dep(const double Egamma, const double _min = 0 , const double _max = 0);
0077 double integrated_x_section(const double Egamma, const double _min = 0 , const double _max = 0);
0078 std::pair<double,double>* Q2arraylimits(double const Egamma);
0079 double g(double const Egamma, double const Q2);
0080
0081 double sigmagp(const double Wgp);
0082 double sigma_A(const double sig_N,
0083 const int beam);
0084 double sigma_N(const double Wgp);
0085 double breitWigner(const double W,
0086 const double C);
0087 double nepoint(const double Egamma,
0088 const double bmin);
0089
0090 double getPhotonNucleusSigma () const {return _photonNucleusSigma;}
0091 void setPhotonNucleusSigma (double sigma) {_photonNucleusSigma = sigma;}
0092
0093 protected:
0094 const unsigned int _nWbins;
0095 const unsigned int _nYbins;
0096
0097 const double _wMin;
0098 const double _wMax;
0099 const double _yMax;
0100
0101 const double _beamLorentzGamma;
0102
0103 double _photonNucleusSigma;
0104
0105 int _printDef;
0106 int _impulseSelected;
0107 int _quantumGlauber;
0108
0109 private:
0110
0111 beamBeamSystem _bbs;
0112
0113
0114 double _protonEnergy;
0115 double _electronEnergy;
0116 starlightConstants::particleTypeEnum _particleType;
0117 int _beamBreakupMode;
0118 bool _backwardsProduction;
0119 int _productionMode;
0120 int _sigmaNucleus;
0121
0122
0123 double _slopeParameter;
0124 double _vmPhotonCoupling;
0125 double _vmQ2Power_c1;
0126 double _vmQ2Power_c2;
0127 double _ANORM;
0128 double _BNORM;
0129 double _defaultC;
0130 double _width;
0131 double _channelMass;
0132 double _fixedQ2range;
0133 double _minQ2;
0134 double _maxQ2;
0135 double _maxPhotonEnergy;
0136 double _cmsMinPhotonEnergy;
0137 double _targetRadii;
0138 double _maxW_GP;
0139 double _minW_GP;
0140
0141 };
0142
0143
0144 #endif