EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gammagammasingle.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file gammagammasingle.h
1 
2 //
3 // Copyright 2010
4 //
5 // This file is part of starlight.
6 //
7 // starlight is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // starlight is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with starlight. If not, see <http://www.gnu.org/licenses/>.
19 //
21 //
22 // File and Version Information:
23 // $Rev:: 274 $: revision of last commit
24 // $Author:: butter $: author of last commit
25 // $Date:: 2016-09-11 23:40:25 +0100 #$: date of last commit
26 //
27 // Description:
28 //
29 //
30 //
32 
33 
34 #ifndef GAMMAGAMMASINGLE_H
35 #define GAMMAGAMMASINGLE_H
36 
37 
38 #include <vector>
39 
40 #include "starlightconstants.h"
41 #include "readinluminosity.h"
42 #include "beambeamsystem.h"
43 #include "randomgenerator.h"
44 #include "eventchannel.h"
45 #include "starlightconfig.h"
46 #include "inputParameters.h"
47 #ifdef ENABLE_PYTHIA
48 #include "pythiadecayer.h"
49 #endif
50 
52 {
53  public:
54  Gammagammasingle(const inputParameters& input, beamBeamSystem& bbsystem);
56 
57  void singleCrossSection();
59 
61 
62  private:
64  double _wdelta; //Added 7/26/07 for passing sigmadelta to pickw
65  double _remainwd;// "
66  int _ivalwd; // "
67 
68  void pickw(double &w);
69  void picky(double &y);
70 
71  void parentMomentum(double w,double y,double &E,double &px,double &py,double&pz);
72  // Duplicated old function pp into pp1 and pp2 to handle the two nuclei separately, allowing for asymmetric species
73  double pp1(double E);
74  double pp2(double E);
75  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);
76 
77  double getMass();
78  double getWidth();
79  double getSpin();
80 
85  double _axionMass; // AXION HACK
86 // double _axionWidth;// AXION HACK--unused
87 #ifdef ENABLE_PYTHIA
88  pythiaDecayer _pyDecayer;
89 #endif
90 
91 };
92 
93 
94 #endif // GAMMAGAMMASINGLE_H