EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gammaavm.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file gammaavm.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:: 276 $: revision of last commit
24 // $Author:: jnystrand $: author of last commit
25 // $Date:: 2016-09-13 19:54:42 +0100 #$: date of last commit
26 //
27 // Description:
28 //
29 //
30 //
32 
33 
34 #ifndef GAMMAAVM_H
35 #define GAMMAAVM_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 "eXevent.h"
46 #include "nBodyPhaseSpaceGen.h"
47 //Now here for eSTARlight
49 
51 {
52 
53  public:
54  Gammaavectormeson(const inputParameters& ipnut, beamBeamSystem& bbsystem);
55  virtual ~Gammaavectormeson();
56 
58 
59  void pickwy(double &W, double &Y);
60  void pickwEgamq2(double &W, double &cmsEgamma, double &targetEgamma,
61  double &Q2, double &gamma_pz, double & gamma_pt,
62  double &E_prime, double &cos_theta_e);
63  void momenta(double W,double Y,double &E,double &px,double &py,double &pz,int &tcheck);
64  void momenta(double W,double Egam,double Q2, double gamma_pz, double gamma_pt,
65  double &rapidity, double &E,double &px,double &py,double &pz,
66  double &t_px, double &t_py, double &t_pz, double &t_E,
67  double &e_phi,int &tcheck);
68  double pTgamma(double E);
69  void vmpt(double W,double Y,double &E,double &px,double &py, double &pz,int &tcheck);
70  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);
71  void twoBodyDecay(starlightConstants::particleTypeEnum &ipid,double W,double px0,double py0,double pz0,double spin_element,
72  double &px1,double &py1,double&pz1,double &px2,double &py2,double &pz2,int &iFbadevent);
73  bool fourBodyDecay(starlightConstants::particleTypeEnum& ipid, const double E, const double W, const double* p, lorentzVector* decayMoms, int& iFbadevent);
74  void pi0Decay(double& px_pi0, double& py_pi0, double& pz_pi0,double& e_g1, double& px_g1, double& py_g1, double& pz_g1,double& e_g2, double& px_g2, double& py_g2, double& pz_g2,int& iFbadevent);
75  double getMass();
76  double getWidth();
77  virtual double getTheta(starlightConstants::particleTypeEnum ipid, double r_04_00);
78  double getSpinMatrixElement(double W, double Q2, double epsilon);
79  double getSpin();
80  double _VMbslope;
82  double pseudoRapidity(double px, double py, double pz);
83 
84  private:
85  std::string gammaTableParse(int ii, int jj);
87  int _VMnumw;
88  int _VMnumy;
89  int _VMnumega;
90  int _VMnumQ2;
99  double _rap_CM;
102  int N0;
103  int N1;
104  int N2;
105  double _VMgamma_em;
106  double _VMNPT;
107  double _VMWmax;
108  double _VMWmin;
109  double _VMYmax;
110  double _VMYmin;
111  double _mass;
112  double _width;
113  double _VMptmax;
114  double _VMdpt;
116  double _bslopeVal;
117  double _pEnergy;
119  double _eEnergy;
121  // eSTARlight
123  double _angular_max[100][200];
125 };
126 
128 {
129  public:
130  Gammaanarrowvm(const inputParameters& input, beamBeamSystem& bbsystem);
131  virtual ~Gammaanarrowvm();
132 };
133 
135 {
136  public:
137  Gammaawidevm(const inputParameters& input, beamBeamSystem& bbsystem);
138  virtual ~Gammaawidevm();
139 };
140 
142 {
143  public:
144  Gammaaincoherentvm(const inputParameters& input, beamBeamSystem& bbsystem);
145  virtual ~Gammaaincoherentvm();
146 };
148 {
149  public:
150  e_Gammaanarrowvm(const inputParameters& input, beamBeamSystem& bbsystem);
151  virtual ~e_Gammaanarrowvm();
152 };
153 
155 {
156  public:
157  e_Gammaawidevm(const inputParameters& input, beamBeamSystem& bbsystem);
158  virtual ~e_Gammaawidevm();
159 };
160 
161 #endif // GAMMAAVM_H