]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STARLIGHT/starlight/include/twophotonluminosity.h
STARLIGHT code and interface
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / include / twophotonluminosity.h
diff --git a/STARLIGHT/starlight/include/twophotonluminosity.h b/STARLIGHT/starlight/include/twophotonluminosity.h
new file mode 100644 (file)
index 0000000..b60fbad
--- /dev/null
@@ -0,0 +1,86 @@
+///////////////////////////////////////////////////////////////////////////
+//
+//    Copyright 2010
+//
+//    This file is part of starlight.
+//
+//    starlight is free software: you can redistribute it and/or modify
+//    it under the terms of the GNU General Public License as published by
+//    the Free Software Foundation, either version 3 of the License, or
+//    (at your option) any later version.
+//
+//    starlight is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//    GNU General Public License for more details.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with starlight. If not, see <http://www.gnu.org/licenses/>.
+//
+///////////////////////////////////////////////////////////////////////////
+//
+// File and Version Information:
+// $Rev:: 164                         $: revision of last commit
+// $Author:: odjuvsla                 $: author of last commit
+// $Date:: 2013-10-06 16:18:08 +0200 #$: date of last commit
+//
+// Description:
+//
+//
+//
+///////////////////////////////////////////////////////////////////////////
+
+
+#ifndef TWOPHOTONLUMINOSITY_H
+#define TWOPHOTONLUMINOSITY_H
+
+#include "nucleus.h"
+#include "beam.h"
+#include "beambeamsystem.h"
+#include "starlightlimits.h"
+
+
+class twoPhotonLuminosity : public beamBeamSystem
+{
+public:
+    twoPhotonLuminosity(beam beam_1, beam beam_2);
+    ~twoPhotonLuminosity();
+
+protected:
+
+   
+
+private:
+    struct difflumiargs
+    {
+       twoPhotonLuminosity *self;
+        double m;
+        double y;
+        double res;
+    };
+    void twoPhotonDifferentialLuminosity();
+    double D2LDMDY(double M,double Y,double &Normalize);
+    double D2LDMDY(double M,double Y) const;
+    static void * D2LDMDY_Threaded(void *a);
+
+    double integral(double Normalize);
+    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);
+    double integrand(double N,double X[15]);
+    double Nphoton(double W,double gamma,double Rho);
+
+    double _W1; //Energy of photon #1
+    double _W2; //Energy of photon #2
+    double _gamma; //Gamma of the system
+    
+    const unsigned int _nWbins;
+    const unsigned int _nYbins;
+    
+    const double _wMin;
+    const double _yMin;
+    const double _wMax;
+    const double _yMax;
+    
+};
+
+
+#endif  // TWOPHOTONLUMINOSITY_H