]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliPDG.cxx
Store the status code of the MC particle in the AOD, used the upper bits of fFlag...
[u/mrichter/AliRoot.git] / STEER / AliPDG.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 // Class to encapsulate the ALICE updates to TDatabasePDG.h
19 // Can be used by TGeant3 and TGeant4
20 // It contains also the constants for the PDG particle IDs.
21 // Should evolve towards dynamical loading from external data base.
22 // Comments to: andreas.morsch@cern.ch 
23
24 #include "AliPDG.h"
25 #include "TDatabasePDG.h"
26
27 ClassImp(AliPDG)
28
29
30
31 void AliPDG::AddParticlesToPdgDataBase()
32 {
33
34 //
35 // Add particles to the PDG data base
36 //
37   
38   static Bool_t bAdded = kFALSE;
39   // Check if already called
40   if(bAdded)return;
41   bAdded = true;
42
43   TDatabasePDG *pdgDB = TDatabasePDG::Instance();
44   const Int_t kspe=50000000;
45
46   // PDG nuclear states are 10-digit numbers
47   // 10LZZZAAAI e.g. deuteron is 
48   // 1000010020
49   const Int_t kion=1000000000;
50
51   const Double_t kAu2Gev=0.9314943228;
52   const Double_t khSlash = 1.0545726663e-27;
53   const Double_t kErg2Gev = 1/1.6021773349e-3;
54   const Double_t khShGev = khSlash*kErg2Gev;
55   const Double_t kYear2Sec = 3600*24*365.25;
56
57
58 //
59 // Bottom mesons
60 // mass and life-time from PDG
61 //
62   pdgDB->AddParticle("Upsilon(3S)","Upsilon(3S)",10.3552,kTRUE,
63                      0,1,"Bottonium",200553);
64
65 // QCD diffractive states
66   pdgDB->AddParticle("rho_diff0","rho_diff0",0,kTRUE,
67                      0,0,"QCD diffr. state",9900110);
68   pdgDB->AddParticle("pi_diffr+","pi_diffr+",0,kTRUE,
69                      0,1,"QCD diffr. state",9900210);
70   pdgDB->AddParticle("omega_di","omega_di",0,kTRUE,
71                      0,0,"QCD diffr. state",9900220);
72   pdgDB->AddParticle("phi_diff","phi_diff",0,kTRUE,
73                      0,0,"QCD diffr. state",9900330);
74   pdgDB->AddParticle("J/psi_di","J/psi_di",0,kTRUE,
75                      0,0,"QCD diffr. state",9900440);
76   pdgDB->AddParticle("n_diffr0","n_diffr0",0,kTRUE,
77                      0,0,"QCD diffr. state",9902110);
78   pdgDB->AddParticle("p_diffr+","p_diffr+",0,kTRUE,
79                      0,1,"QCD diffr. state",9902210);
80
81 // From Herwig
82   pdgDB->AddParticle("PSID    ", " ", 3.7699, kFALSE, 0.0, 0, "meson",   30443);
83   
84   pdgDB->AddParticle("A_00    ", " ", 0.9960, kFALSE, 0.0, 0, "meson",  9000111); 
85   pdgDB->AddParticle("A_0+    ", " ", 0.9960, kFALSE, 0.0,+1, "meson",  9000211);  
86   pdgDB->AddParticle("A_0-    ", " ", 0.9960, kFALSE, 0.0,-1, "meson", -9000211);  
87
88   pdgDB->AddParticle("F0P0    ", " ", 0.9960, kFALSE, 0.0, 0, "meson",  9010221); 
89   
90   pdgDB->AddParticle("KDL_2+  ", " ", 1.773,  kFALSE, 0.0,+1, "meson",   10325); 
91   pdgDB->AddParticle("KDL_2-  ", " ", 1.773,  kFALSE, 0.0,-1, "meson",  -10325); 
92
93   pdgDB->AddParticle("KDL_20  ", " ", 1.773,  kFALSE, 0.0, 0, "meson",   10315); 
94   pdgDB->AddParticle("KDL_2BR0", " ", 1.773,  kFALSE, 0.0, 0, "meson",  -10315); 
95
96   pdgDB->AddParticle("PI_2+   ", " ", 1.670,  kFALSE, 0.0,+1, "meson",   10215);
97   pdgDB->AddParticle("PI_2-   ", " ", 1.670,  kFALSE, 0.0,-1, "meson",  -10215);
98   pdgDB->AddParticle("PI_20   ", " ", 1.670,  kFALSE, 0.0, 0, "meson",   10115);
99   
100   
101   pdgDB->AddParticle("KD*+    ", " ", 1.717,  kFALSE, 0.0,+1, "meson",   30323); 
102   pdgDB->AddParticle("KD*-    ", " ", 1.717,  kFALSE, 0.0,-1, "meson",  -30323); 
103
104   pdgDB->AddParticle("KD*0    ", " ", 1.717,  kFALSE, 0.0, 0, "meson",   30313); 
105   pdgDB->AddParticle("KDBR*0  ", " ", 1.717,  kFALSE, 0.0, 0, "meson",  -30313); 
106
107   pdgDB->AddParticle("RHOD+   ", " ", 1.700,  kFALSE, 0.0,+1, "meson",   30213); 
108   pdgDB->AddParticle("RHOD-   ", " ", 1.700,  kFALSE, 0.0,-1, "meson",  -30213); 
109   pdgDB->AddParticle("RHOD0   ", " ", 1.700,  kFALSE, 0.0, 0, "meson",   30113); 
110   
111   pdgDB->AddParticle("ETA_2(L)", " ", 1.632,  kFALSE, 0.0, 0, "meson",   10225); 
112   pdgDB->AddParticle("ETA_2(H)", " ", 1.854,  kFALSE, 0.0, 0, "meson",   10335); 
113   pdgDB->AddParticle("OMEGA(H)", " ", 1.649,  kFALSE, 0.0, 0, "meson",   30223);
114   
115   
116   pdgDB->AddParticle("KDH_2+  ", " ", 1.816,  kFALSE, 0.0,+1, "meson",   20325);
117   pdgDB->AddParticle("KDH_2-  ", " ", 1.816,  kFALSE, 0.0,-1, "meson",  -20325);
118
119   pdgDB->AddParticle("KDH_20  ", " ", 1.816,  kFALSE, 0.0, 0, "meson",   20315);
120   pdgDB->AddParticle("KDH_2BR0", " ", 1.816,  kFALSE, 0.0, 0, "meson",  -20315);
121   
122   
123   pdgDB->AddParticle("KD_3+   ", " ", 1.773,  kFALSE, 0.0,+1, "meson",     327);
124   pdgDB->AddParticle("KD_3-   ", " ", 1.773,  kFALSE, 0.0,-1, "meson",    -327);
125
126   pdgDB->AddParticle("KD_30   ", " ", 1.773,  kFALSE, 0.0, 0, "meson",     317);
127   pdgDB->AddParticle("KD_3BR0 ", " ", 1.773,  kFALSE, 0.0, 0, "meson",    -317);
128   
129   pdgDB->AddParticle("RHO_3+  ", " ", 1.691,  kFALSE, 0.0,+1, "meson",     217);
130   pdgDB->AddParticle("RHO_3-  ", " ", 1.691,  kFALSE, 0.0,-1, "meson",    -217);
131   pdgDB->AddParticle("RHO_30  ", " ", 1.691,  kFALSE, 0.0, 0, "meson",     117);
132   pdgDB->AddParticle("OMEGA_3 ", " ", 1.667,  kFALSE, 0.0, 0, "meson",     227);
133   pdgDB->AddParticle("PHI_3   ", " ", 1.854,  kFALSE, 0.0, 0, "meson",     337);
134   
135   pdgDB->AddParticle("CHI2P_B0", " ", 10.232, kFALSE, 0.0, 0, "meson", 110551);
136   pdgDB->AddParticle("CHI2P_B1", " ", 10.255, kFALSE, 0.0, 0, "meson", 120553);
137   pdgDB->AddParticle("CHI2P_B2", " ", 10.269, kFALSE, 0.0, 0, "meson", 100555);
138   pdgDB->AddParticle("UPSLON4S", " ", 10.580, kFALSE, 0.0, 0, "meson", 300553);
139   
140
141   // IONS
142   //
143   // Done by default now from Pythia6 table
144   // Needed for other generators
145   // So check if already defined
146
147
148   Int_t ionCode = kion+10020;
149   if(!pdgDB->GetParticle(ionCode)){
150       pdgDB->AddParticle("Deuteron","Deuteron",2*kAu2Gev+8.071e-3,kTRUE,
151                          0,1,"Ion",ionCode);
152   }
153
154   pdgDB->AddAntiParticle("Anti Deuteron", - ionCode);
155
156   ionCode = kion+10030;
157   if(!pdgDB->GetParticle(ionCode)){
158     pdgDB->AddParticle("Triton","Triton",3*kAu2Gev+14.931e-3,kFALSE,
159                      khShGev/(12.33*kYear2Sec),1,"Ion",ionCode);
160   }
161
162   ionCode = kion+20030;
163   if(!pdgDB->GetParticle(ionCode)){
164     pdgDB->AddParticle("HE3","HE3",3*kAu2Gev+14.931e-3,kFALSE,
165                      0,2,"Ion",ionCode);
166   }
167
168   ionCode = kion+20040;
169   if(!pdgDB->GetParticle(ionCode)){
170     pdgDB->AddParticle("Alpha","Alpha",4*kAu2Gev+2.424e-3,kTRUE,
171                        khShGev/(12.33*kYear2Sec),2,"Ion",ionCode);
172   }
173
174
175 // Special particles
176 // 
177   pdgDB->AddParticle("Cherenkov","Cherenkov",0,kFALSE,
178                      0,0,"Special",kspe+50);
179   pdgDB->AddParticle("FeedbackPhoton","FeedbackPhoton",0,kFALSE,
180                      0,0,"Special",kspe+51);
181   pdgDB->AddParticle("Lambda1520","Lambda1520",1.5195,kFALSE,
182                      0.0156,0,"Resonance",3124);
183   pdgDB->AddAntiParticle("Lambda1520bar",-3124);
184 }
185
186