Back to home page

EIC code displayed by LXR

 
 

    


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