Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-06-01 07:07:25

0001 ///////////////////////////////////////////////////////////////////////////
0002 //
0003 //    Copyright 2010
0004 //
0005 //    This file is part of starlight.
0006 //
0007 //    starlight is free software: you can redistribute it and/or modify
0008 //    it under the terms of the GNU General Public License as published by
0009 //    the Free Software Foundation, either version 3 of the License, or
0010 //    (at your option) any later version.
0011 //
0012 //    starlight is distributed in the hope that it will be useful,
0013 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
0014 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0015 //    GNU General Public License for more details.
0016 //
0017 //    You should have received a copy of the GNU General Public License
0018 //    along with starlight. If not, see <http://www.gnu.org/licenses/>.
0019 //
0020 ///////////////////////////////////////////////////////////////////////////
0021 //
0022 // File and Version Information:
0023 // $Rev:: 259                         $: revision of last commit
0024 // $Author:: jseger                   $: author of last commit
0025 // $Date:: 2016-04-19 01:58:25 +0100 #$: date of last commit
0026 //
0027 // Description:
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; //Energy of photon #1
0072     double _W2; //Energy of photon #2
0073     double _gamma; //Gamma of the system
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  // TWOPHOTONLUMINOSITY_H