Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-06-18 07:06:21

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:: 274                         $: revision of last commit
0024 // $Author:: butter                   $: author of last commit
0025 // $Date:: 2016-09-11 23:40:25 +0100 #$: date of last commit
0026 //
0027 // Description:
0028 //
0029 //
0030 //
0031 ///////////////////////////////////////////////////////////////////////////
0032 
0033 
0034 #ifndef GAMMAGAMMASINGLE_H
0035 #define GAMMAGAMMASINGLE_H
0036 
0037 
0038 #include <vector>
0039 
0040 #include "starlightconstants.h"
0041 #include "readinluminosity.h"
0042 #include "beambeamsystem.h"
0043 #include "randomgenerator.h"
0044 #include "eventchannel.h"
0045 #include "starlightconfig.h"
0046 #include "inputParameters.h"
0047 #ifdef ENABLE_PYTHIA
0048 #include "pythiadecayer.h"
0049 #endif
0050 
0051 class Gammagammasingle : public eventChannel
0052 {
0053  public:
0054   Gammagammasingle(const inputParameters& input, beamBeamSystem& bbsystem);
0055   ~Gammagammasingle();
0056   
0057   void singleCrossSection();
0058   starlightConstants::event produceEvent(int &ievent);
0059 
0060   eXEvent e_produceEvent();
0061 
0062  private:
0063   double _sigmax[starlightLimits::MAXWBINS][starlightLimits::MAXYBINS];
0064   double _wdelta;  //Added 7/26/07 for passing sigmadelta to pickw
0065   double _remainwd;// "
0066   int _ivalwd;     // "
0067   
0068   void pickw(double &w);
0069   void picky(double &y);
0070   
0071   void parentMomentum(double w,double y,double &E,double &px,double &py,double&pz);
0072   // Duplicated old function pp into pp1 and pp2 to handle the two nuclei separately, allowing for asymmetric species
0073   double pp1(double E);
0074   double pp2(double E);
0075   void twoBodyDecay(starlightConstants::particleTypeEnum &ipid,double W,double px0,double py0,double pz0,double &px1,double &py1,double&pz1,double &px2,double &py2,double &pz2,int &iFbadevent);
0076   
0077   double getMass();
0078   double getWidth();
0079   double getSpin();
0080   
0081   starlightConstants::particleTypeEnum _GGsingInputpidtest;
0082   int _GGsingInputnumw;
0083   int _GGsingInputnumy;
0084   double _GGsingInputGamma_em;
0085   double _axionMass; // AXION HACK
0086 //  double _axionWidth;// AXION HACK--unused
0087 #ifdef ENABLE_PYTHIA 
0088   pythiaDecayer _pyDecayer;
0089 #endif
0090   
0091 };
0092 
0093 
0094 #endif  // GAMMAGAMMASINGLE_H