StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
photonNucleusCrossSection.h
1 //
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:: $: revision of last commit
24 // $Author: jwebb $: author of last commit
25 // $Date: 2012/11/27 22:27:32 $: date of last commit
26 //
27 // Description:
28 //
29 //
30 //
32 
33 
34 #ifndef PHOTONNUCLEUSCROSSSECTION_H
35 #define PHOTONNUCLEUSCROSSSECTION_H
36 
37 
38 #include "starlightconstants.h"
39 #include "beambeamsystem.h"
40 
41 
43 
44 public:
45 
47  const beamBeamSystem& bbsystem);
49 
50  double slopeParameter () const { return _slopeParameter; }
51  double getChannelMass () const { return _channelMass; }
52  double getBNORM () const { return _BNORM; }
53  double luminosity () const { return _luminosity; }
54  beamBeamSystem getbbs () const { return _bbs; }
55  double vmPhotonCoupling() const { return _vmPhotonCoupling; }
56  double getDefaultC () const { return _defaultC; }
57  double maxPhotonEnergy () const { return _maxPhotonEnergy; }
58 
59  void crossSectionCalculation(const double bwnormsave);
60  // Will think about it...For VMs we just calculate it
61  // So just use the wide or narrow constructor to calculate it
62  // wide/narrow will inherit this.
63  double getcsgA(const double Egamma,
64  const double W);
65  double photonFlux(const double Egamma);
66  double sigmagp(const double Wgp);
67  double sigma_A(const double sig_N);
68  double breitWigner(const double W,
69  const double C);
70 
71 private:
72 
73  double nepoint(const double Egamma,
74  const double bmin);
75 
76  beamBeamSystem _bbs;
77 
78  // copied from inputParameters
79  double _protonEnergy;
80  double _beamLorentzGamma;
81  starlightConstants::particleTypeEnum _particleType;
82  int _beamBreakupMode;
83  bool _coherentProduction;
84  double _incoherentFactor;
85  int _sigmaNucleus;
86 
87  // locally defined parameters
88  double _slopeParameter;
89  double _vmPhotonCoupling;
90  double _ANORM;
91  double _BNORM;
92  double _defaultC;
93  double _luminosity;
94  double _maxPhotonEnergy;
95  double _width;
96  double _channelMass;
97 };
98 
99 
100 #endif // PHOTONNUCLEUSCROSSSECTION_H
double slopeParameter() const
returns slope of t-distribution [(GeV/c)^{-2}]
double luminosity() const
returns luminosity [10^{26} cm^{-2} sec^{-1}]
double getChannelMass() const
returns mass of the produced system [GeV/c^2]
beamBeamSystem getbbs() const
returns beamBeamSystem
double maxPhotonEnergy() const
returns max photon energy in lab frame [GeV] (for vectormesons only)
double vmPhotonCoupling() const
vectormeson-photon coupling constant f_v / 4 pi (cf. Eq. 10 in KN PRC 60 (1999) 014903) ...