|
||||
File indexing completed on 2024-09-27 07:03:37
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:: 213 $: revision of last commit 0024 // $Author:: butter $: author of last commit 0025 // $Date:: 2015-08-15 22:08:02 +0100 #$: date of last commit 0026 // 0027 // Description: 0028 // this class covers a coliding beam system SK 0029 // 0030 // 0031 // 0032 /////////////////////////////////////////////////////////////////////////// 0033 0034 0035 #ifndef BEAMBEAMSYSTEM_H 0036 #define BEAMBEAMSYSTEM_H 0037 0038 0039 #include "nucleus.h" 0040 #include "beam.h" 0041 #include <vector> 0042 #include "inputParameters.h" 0043 0044 class beamBeamSystem 0045 { 0046 0047 public: 0048 0049 beamBeamSystem(const inputParameters& input, 0050 const beam& electronBeam, 0051 const beam& targetBeam); 0052 beamBeamSystem(const inputParameters& input); 0053 ~beamBeamSystem(); 0054 0055 const beam& electronBeam() const { return _electronBeam; } ///< returns beam particle 1 0056 const beam& targetBeam() const { return _targetBeam; } ///< returns beam particle 2 0057 0058 double probabilityOfBreakup(const double D) const; 0059 0060 double cmsBoost() const { return _cmsBoost; } 0061 0062 double beamLorentzGamma() const { return _beamLorentzGamma; } 0063 0064 void init(); 0065 0066 private: 0067 void generateBreakupProbabilities(); 0068 double probabilityOfHadronBreakup(const double impactparameter); 0069 double probabilityOfPhotonBreakup(const double impactparameter, const int mode); 0070 0071 double _pHadronBreakup; 0072 double _pPhotonBreakup; 0073 0074 double _beamLorentzGamma; ///< Lorentz gamma factor of beams in collider frame 0075 const double _electronBeamLorentzGamma; ///< Lorentz gamma factor of beam1 in collider frame 0076 const double _targetBeamLorentzGamma; ///< Lorentz gamma factor of beam2 in collider frame 0077 const int _beamBreakupMode; ///< \brief breakup mode for beam particles 0078 ///< 0079 ///< 1 = hard sphere nuclei (b > 2R), 0080 ///< 2 = both nuclei break up (XnXn), 0081 ///< 3 = a single neutron from each nucleus (1n1n), 0082 ///< 4 = neither nucleon breaks up (with b > 2R), 0083 ///< 5 = no hadronic break up (similar to option 1, but with the actual hadronic interaction) 0084 0085 beam _electronBeam; ///< beam particle 1 0086 beam _targetBeam; ///< beam particle 2 0087 0088 double _cmsBoost; ///< Rapidity boost of the CMS wrt the lab system 0089 0090 std::vector<double> _breakupProbabilities; ///< Vector containing breakup probabilities for impact parameters 0091 // double _breakupImpactParameterStep; ///< Step size in the calculation of the breakup probs 0092 // double _breakupCutOff; ///< Cut off for minimum impact parameter probability 0093 }; 0094 0095 0096 #endif // BEAMBEAMSYSTEM_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |