]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TTherminator/Therminator/ParticleType.cxx
9279ad8439bf4b8b54e910adbe95c4d510f6171e
[u/mrichter/AliRoot.git] / TTherminator / Therminator / ParticleType.cxx
1 /******************************************************************************
2  *                      T H E R M I N A T O R                                 *
3  *                   THERMal heavy-IoN generATOR                              *
4  *                           version 1.0                                      *
5  *                                                                            *
6  * Authors of the model: Wojciech Broniowski, Wojciech.Broniowski@ifj.edu.pl, *
7  *                       Wojciech Florkowski, Wojciech.Florkowski@ifj.edu.pl  *
8  * Authors of the code:  Adam Kisiel, kisiel@if.pw.edu.pl                     *
9  *                       Tomasz Taluc, ttaluc@if.pw.edu.pl                    *
10  * Code designers: Adam Kisiel, Tomasz Taluc, Wojciech Broniowski,            *
11  *                 Wojciech Florkowski                                        *
12  *                                                                            *
13  * For the detailed description of the program and furhter references         * 
14  * to the description of the model plesase refer to: nucl-th/0504047,         *
15  * accessibile at: http://www.arxiv.org/nucl-th/0504047                       *
16  *                                                                            *
17  * Homepage: http://hirg.if.pw.edu.pl/en/therminator/                         *
18  *                                                                            *
19  * This code can be freely used and redistributed. However if you decide to   *
20  * make modifications to the code, please contact the authors, especially     *
21  * if you plan to publish the results obtained with such modified code.       *
22  * Any publication of results obtained using this code must include the       *
23  * reference to nucl-th/0504047 and the published version of it, when         *
24  * available.                                                                 *
25  *                                                                            *
26  *****************************************************************************/
27 #include "ParticleType.h"
28 #include "DecayTable.h"
29
30 ParticleType::ParticleType()
31 {
32   mName = "";
33   mNumber=0;
34   mMass=-1.;
35   mStrangeness=-1;
36   mBarionN=-1;
37   mCharmN=-1;
38   mSpin=-1.;
39   mI=-1.;
40   mI3=-1.;
41   mGamma=-1.;
42   mDecayChannelCount2=0;
43   mDecayChannelCount3=0;
44   mTable = new DecayTable();
45   mPDGCode = 0;
46   mFMax = 0.0;
47 }
48
49 ParticleType::ParticleType(const ParticleType& aParticleType)
50 {
51   mName = aParticleType.GetName();
52   mNumber = aParticleType.GetNumber();
53   mMass = aParticleType.GetMass();
54   mStrangeness = aParticleType.GetStrangeness();
55   mBarionN=aParticleType.GetBarionN();
56   mCharmN=aParticleType.GetCharmN();
57   mSpin=aParticleType.GetSpin();
58   mI=aParticleType.GetI();
59   mI3=aParticleType.GetI3();
60   mGamma=aParticleType.GetGamma();
61   mDecayChannelCount2=aParticleType.GetDecayChannelCount2();
62   mDecayChannelCount3=aParticleType.GetDecayChannelCount3();
63   mPDGCode = aParticleType.GetPDGCode();
64   mFMax = aParticleType.GetFMax();
65   mTable = new DecayTable(*(aParticleType.GetTable()));
66 }
67
68 ParticleType::~ParticleType()
69 {
70   if (mTable)
71     delete mTable;
72 }
73
74 void ParticleType::WriteParticle(int /*i*/)
75 {
76     mMass=-1;
77     mStrangeness=-1;
78     mBarionN=-1;
79     mCharmN=-1;
80     mSpin=-1;
81     mName="1";
82 }
83
84 int    ParticleType::GetNumber() const { return mNumber; }
85 float  ParticleType::GetMass() const { return mMass; }
86 int    ParticleType::GetStrangeness() const { return mStrangeness; }
87 int    ParticleType::GetBarionN() const { return mBarionN; }
88 int    ParticleType::GetCharmN() const { return mCharmN; }
89 float  ParticleType::GetSpin() const { return mSpin; }
90 float  ParticleType::GetI() const { return mI; }
91 float  ParticleType::GetI3() const { return mI3; }
92 float  ParticleType::GetGamma() const { return mGamma; }
93 std::string ParticleType::GetName() const { return mName; }
94 int    ParticleType::GetDecayChannelCount2() const { return mDecayChannelCount2; }
95 int    ParticleType::GetDecayChannelCount3() const { return mDecayChannelCount3; }
96 int    ParticleType::GetCharge() { return int(mI3+(mBarionN+mStrangeness)/2.); }        /*MCH int() added */
97 int    ParticleType::GetPDGCode() const { return mPDGCode; }
98
99   
100
101 void ParticleType::SetNumber(int aNumber) { mNumber = aNumber; }
102 void ParticleType::SetMass(float aMass) { mMass = aMass; }
103 void ParticleType::SetStrangeness(int aStrangeness) { mStrangeness = aStrangeness; }
104 void ParticleType::SetBarionN(int aBarionN) { mBarionN = aBarionN; }
105 void ParticleType::SetCharmN(int aCharmN) { mCharmN = aCharmN; }
106 void ParticleType::SetSpin(float aSpin) { mSpin = aSpin; }
107 void ParticleType::SetI(float aI) { mI = aI; }
108 void ParticleType::SetI3(float aI3) { mI3 = aI3; }
109 void ParticleType::SetGamma(float aGamma) { mGamma = aGamma; }
110 void ParticleType::SetName(char *aName) { mName = aName; }
111 void ParticleType::SetDecayChannelCount2(int aDCCount2) { mDecayChannelCount2 = aDCCount2; }
112 void ParticleType::SetDecayChannelCount3(int aDCCount3) { mDecayChannelCount3 = aDCCount3; }
113 void ParticleType::SetPDGCode(int aCode) { mPDGCode = aCode; }
114
115 DecayTable* 
116 ParticleType::GetTable() const
117 {
118   if (mTable)
119     return mTable;
120   else
121     return NULL;
122 }
123
124 void        
125 ParticleType::AddDecayChannel(DecayChannel aChannel)
126 {
127   if (!mTable)
128     mTable = new DecayTable();
129   mTable->AddDecayChannel(aChannel);
130 }
131
132 float  
133 ParticleType::GetFMax() const
134 {
135   return mFMax;
136 }
137
138 void 
139 ParticleType::SetFMax(float aFMax)
140 {
141   mFMax = aFMax;
142 }