Some extra particles used by HERWIG added.
[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("F0P0    ", " ", 0.9960, kFALSE, 0.0, 0, "meson", 9010221); 
87   
88   pdgDB->AddParticle("KDL_2+  ", " ", 1.773,  kFALSE, 0.0, 1, "meson",   10325); 
89   pdgDB->AddParticle("KDL_20  ", " ", 1.773,  kFALSE, 0.0, 0, "meson",   10315); 
90   pdgDB->AddParticle("PI_2+   ", " ", 1.670,  kFALSE, 0.0, 1, "meson",   10215);
91   pdgDB->AddParticle("PI_20   ", " ", 1.670,  kFALSE, 0.0, 0, "meson",   10115);
92   
93   
94   pdgDB->AddParticle("KD*+    ", " ", 0.773,  kFALSE, 0.0, 1, "meson",   30323); 
95   pdgDB->AddParticle("KD*0    ", " ", 0.773,  kFALSE, 0.0, 0, "meson",   30313); 
96   pdgDB->AddParticle("RHOD+   ", " ", 1.700,  kFALSE, 0.0, 1, "meson",   30213); 
97   pdgDB->AddParticle("RHOD0   ", " ", 1.700,  kFALSE, 0.0, 0, "meson",   30113); 
98   
99   pdgDB->AddParticle("ETA_2(L)", " ", 1.632,  kFALSE, 0.0, 0, "meson",   10225); 
100   pdgDB->AddParticle("ETA_2(H)", " ", 1.854,  kFALSE, 0.0, 0, "meson",   10335); 
101   pdgDB->AddParticle("OMEGA(H)", " ", 1.649,  kFALSE, 0.0, 0, "meson",   30223);
102   
103   
104   pdgDB->AddParticle("KDH_2+  ", " ", 1.861,  kFALSE, 0.0, 1, "meson",   20325);
105   pdgDB->AddParticle("KDH_20  ", " ", 1.861,  kFALSE, 0.0, 0, "meson",   20315);
106   
107   
108   pdgDB->AddParticle("KD_3+   ", " ", 1.773,  kFALSE, 0.0, 1, "meson",     327);
109   pdgDB->AddParticle("KD_30   ", " ", 1.773,  kFALSE, 0.0, 0, "meson",     317);
110   
111   pdgDB->AddParticle("RHO_3+  ", " ", 1.691,  kFALSE, 0.0, 1, "meson",     217);
112   pdgDB->AddParticle("RHO_30  ", " ", 1.691,  kFALSE, 0.0, 0, "meson",     117);
113   pdgDB->AddParticle("OMEGA_3 ", " ", 1.667,  kFALSE, 0.0, 0, "meson",     227);
114   pdgDB->AddParticle("PHI_3   ", " ", 1.854,  kFALSE, 0.0, 0, "meson",     337);
115   
116   pdgDB->AddParticle("CHI2P_B0", " ", 10.232, kFALSE, 0.0, 0, "meson", 110551);
117   pdgDB->AddParticle("CHI2P_B1", " ", 10.255, kFALSE, 0.0, 0, "meson", 120553);
118   pdgDB->AddParticle("CHI2P_B2", " ", 10.269, kFALSE, 0.0, 0, "meson", 100555);
119   pdgDB->AddParticle("UPSLON4S", " ", 10.580, kFALSE, 0.0, 0, "meson", 300553);
120   
121
122   // IONS
123   //
124   // Done by default now from Pythia6 table
125   // Needed for other generators
126   // So check if already defined
127
128
129   Int_t ionCode = kion+10020;
130   if(!pdgDB->GetParticle(ionCode)){
131       pdgDB->AddParticle("Deuteron","Deuteron",2*kAu2Gev+8.071e-3,kTRUE,
132                          0,1,"Ion",ionCode);
133   }
134
135   ionCode = kion+10030;
136   if(!pdgDB->GetParticle(ionCode)){
137     pdgDB->AddParticle("Triton","Triton",3*kAu2Gev+14.931e-3,kFALSE,
138                      khShGev/(12.33*kYear2Sec),1,"Ion",ionCode);
139   }
140
141   ionCode = kion+20030;
142   if(!pdgDB->GetParticle(ionCode)){
143     pdgDB->AddParticle("HE3","HE3",3*kAu2Gev+14.931e-3,kFALSE,
144                      0,2,"Ion",ionCode);
145   }
146
147   ionCode = kion+20040;
148   if(!pdgDB->GetParticle(ionCode)){
149     pdgDB->AddParticle("Alpha","Alpha",4*kAu2Gev+2.424e-3,kTRUE,
150                        khShGev/(12.33*kYear2Sec),2,"Ion",ionCode);
151   }
152
153
154 // Special particles
155 // 
156   pdgDB->AddParticle("Cherenkov","Cherenkov",0,kFALSE,
157                      0,0,"Special",kspe+50);
158   pdgDB->AddParticle("FeedbackPhoton","FeedbackPhoton",0,kFALSE,
159                      0,0,"Special",kspe+51);
160   pdgDB->AddParticle("Lambda1520","Lambda1520",1.5195,kFALSE,
161                      0.0156,0,"Resonance",3124);
162   pdgDB->AddAntiParticle("Lambda1520bar",-3124);
163 }
164
165