]> git.uio.no Git - u/mrichter/AliRoot.git/blame - 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
CommitLineData
da32329d
AM
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
43class beamBeamSystem
44{
45
46public:
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
65private:
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