]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STARLIGHT/starlight/include/.svn/text-base/beambeamsystem.h.svn-base
STARLIGHT code and interface
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / include / .svn / text-base / beambeamsystem.h.svn-base
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 //
20 ///////////////////////////////////////////////////////////////////////////
21 //
22 // File and Version Information:
23 // $Rev::                             $: revision of last commit
24 // $Author::                          $: author of last commit
25 // $Date::                            $: date of last commit
26 //
27 // Description:
28 //     this class covers a coliding beam system SK
29 //
30 //
31 //
32 ///////////////////////////////////////////////////////////////////////////
33
34
35 #ifndef BEAMBEAMSYSTEM_H
36 #define BEAMBEAMSYSTEM_H
37
38
39 #include "nucleus.h"
40 #include "beam.h"
41 #include <vector>
42
43 class beamBeamSystem
44 {
45
46 public:
47
48         beamBeamSystem(const beam&            beam1,
49                        const beam&            beam2);
50         beamBeamSystem();
51         ~beamBeamSystem();
52
53         const beam& beam1() const { return _beam1; }  ///< returns beam particle 1
54         const beam& beam2() const { return _beam2; }  ///< returns beam particle 2
55
56         //      double getluminosity();
57         double probabilityOfBreakup(const double D) const;
58         
59         double cmsBoost() const { return _cmsBoost; }
60         
61         double beamLorentzGamma() const { return _beamLorentzGamma; }
62         
63         void init();
64
65 private:
66         void generateBreakupProbabilities();
67         //      int _ibreakup;//temporary solution until read in parameters are done
68         double probabilityOfHadronBreakup(const double impactparameter);
69         double probabilityOfPhotonBreakup(const double impactparameter, const int mode);
70
71         double _pHadronBreakup;
72         double _pPhotonBreakup;
73         //inputParameters inputbbs;
74         //              double luminosity;
75
76         double _beamLorentzGamma;  ///< Lorentz gamma factor of beams in collider frame
77         int    _beamBreakupMode;   ///< \brief breakup mode for beam particles
78                                    ///<
79                                    ///< 1 = hard sphere nuclei (b > 2R),
80                                    ///< 2 = both nuclei break up (XnXn),
81                                    ///< 3 = a single neutron from each nucleus (1n1n),
82                                    ///< 4 = neither nucleon breaks up (with b > 2R),
83                                    ///< 5 = no hadronic break up (similar to option 1, but with the actual hadronic interaction)
84                        
85         beam   _beam1;             ///< beam particle 1
86         beam   _beam2;             ///< beam particle 2
87
88         double _cmsBoost;          ///< Rapidity boost of the CMS wrt the lab system
89         
90         std::vector<double> _breakupProbabilities; ///< Vector containing breakup probabilities for impact parameters
91         double _breakupImpactParameterStep; ///< Step size in the calculation of the breakup probs
92         double _breakupCutOff;  ///< Cut off for minimum impact parameter probability
93 };
94
95
96 #endif  // BEAMBEAMSYSTEM_H