LCOV - code coverage report
Current view: top level - STEER/STEERBase - AliPDG.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 146 150 97.3 %
Date: 2016-06-14 17:26:59 Functions: 2 2 100.0 %

          Line data    Source code
       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         176 : 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          12 :   if(bAdded)return;
      41           5 :   bAdded = true;
      42             : 
      43           5 :   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             : /*
      52             :   const Double_t kAu2Gev=0.9314943228;
      53             : */
      54             : 
      55             :   const Double_t khSlash = 1.0545726663e-27;
      56             :   const Double_t kErg2Gev = 1/1.6021773349e-3;
      57             :   const Double_t khShGev = khSlash*kErg2Gev;
      58             :   const Double_t kYear2Sec = 3600*24*365.25;
      59             : 
      60             : //
      61             : // Bottom mesons
      62             : // mass and life-time from PDG
      63             : //
      64           5 :   pdgDB->AddParticle("Upsilon(3S)","Upsilon(3S)",10.3552,kTRUE,
      65             :                      0,1,"Bottonium",200553);
      66             : 
      67             : // QCD diffractive states
      68           5 :   pdgDB->AddParticle("rho_diff0","rho_diff0",0,kTRUE,
      69             :                      0,0,"QCD diffr. state",9900110);
      70           5 :   pdgDB->AddParticle("pi_diffr+","pi_diffr+",0,kTRUE,
      71             :                      0,1,"QCD diffr. state",9900210);
      72           5 :   pdgDB->AddParticle("omega_di","omega_di",0,kTRUE,
      73             :                      0,0,"QCD diffr. state",9900220);
      74           5 :   pdgDB->AddParticle("phi_diff","phi_diff",0,kTRUE,
      75             :                      0,0,"QCD diffr. state",9900330);
      76           5 :   pdgDB->AddParticle("J/psi_di","J/psi_di",0,kTRUE,
      77             :                      0,0,"QCD diffr. state",9900440);
      78           5 :   pdgDB->AddParticle("n_diffr0","n_diffr0",0,kTRUE,
      79             :                      0,0,"QCD diffr. state",9902110);
      80           5 :   pdgDB->AddParticle("p_diffr+","p_diffr+",0,kTRUE,
      81             :                      0,1,"QCD diffr. state",9902210);
      82             : 
      83             : // From Herwig
      84           5 :   pdgDB->AddParticle("PSID    ", " ", 3.7699, kFALSE, 0.0, 0, "meson",   30443);
      85             : 
      86           5 :   pdgDB->AddParticle("A_00    ", " ", 0.9960, kFALSE, 0.0, 0, "meson",  9000111);
      87           5 :   pdgDB->AddParticle("A_0+    ", " ", 0.9960, kFALSE, 0.0,+3, "meson",  9000211);
      88           5 :   pdgDB->AddParticle("A_0-    ", " ", 0.9960, kFALSE, 0.0,-3, "meson", -9000211);
      89             : 
      90           5 :   pdgDB->AddParticle("F0P0    ", " ", 0.9960, kFALSE, 0.0, 0, "meson",  9010221);
      91             : 
      92           5 :   pdgDB->AddParticle("KDL_2+  ", " ", 1.773,  kFALSE, 0.0,+3, "meson",   10325);
      93           5 :   pdgDB->AddParticle("KDL_2-  ", " ", 1.773,  kFALSE, 0.0,-3, "meson",  -10325);
      94             : 
      95           5 :   pdgDB->AddParticle("KDL_20  ", " ", 1.773,  kFALSE, 0.0, 0, "meson",   10315);
      96           5 :   pdgDB->AddParticle("KDL_2BR0", " ", 1.773,  kFALSE, 0.0, 0, "meson",  -10315);
      97             : 
      98           5 :   pdgDB->AddParticle("PI_2+   ", " ", 1.670,  kFALSE, 0.0,+3, "meson",   10215);
      99           5 :   pdgDB->AddParticle("PI_2-   ", " ", 1.670,  kFALSE, 0.0,-3, "meson",  -10215);
     100           5 :   pdgDB->AddParticle("PI_20   ", " ", 1.670,  kFALSE, 0.0, 0, "meson",   10115);
     101             : 
     102             : 
     103           5 :   pdgDB->AddParticle("KD*+    ", " ", 1.717,  kFALSE, 0.0,+3, "meson",   30323);
     104           5 :   pdgDB->AddParticle("KD*-    ", " ", 1.717,  kFALSE, 0.0,-3, "meson",  -30323);
     105             : 
     106           5 :   pdgDB->AddParticle("KD*0    ", " ", 1.717,  kFALSE, 0.0, 0, "meson",   30313);
     107           5 :   pdgDB->AddParticle("KDBR*0  ", " ", 1.717,  kFALSE, 0.0, 0, "meson",  -30313);
     108             : 
     109           5 :   pdgDB->AddParticle("RHOD+   ", " ", 1.700,  kFALSE, 0.0,+3, "meson",   30213);
     110           5 :   pdgDB->AddParticle("RHOD-   ", " ", 1.700,  kFALSE, 0.0,-3, "meson",  -30213);
     111           5 :   pdgDB->AddParticle("RHOD0   ", " ", 1.700,  kFALSE, 0.0, 0, "meson",   30113);
     112             : 
     113           5 :   pdgDB->AddParticle("ETA_2(L)", " ", 1.632,  kFALSE, 0.0, 0, "meson",   10225);
     114           5 :   pdgDB->AddParticle("ETA_2(H)", " ", 1.854,  kFALSE, 0.0, 0, "meson",   10335);
     115           5 :   pdgDB->AddParticle("OMEGA(H)", " ", 1.649,  kFALSE, 0.0, 0, "meson",   30223);
     116             : 
     117             : 
     118           5 :   pdgDB->AddParticle("KDH_2+  ", " ", 1.816,  kFALSE, 0.0,+3, "meson",   20325);
     119           5 :   pdgDB->AddParticle("KDH_2-  ", " ", 1.816,  kFALSE, 0.0,-3, "meson",  -20325);
     120             : 
     121           5 :   pdgDB->AddParticle("KDH_20  ", " ", 1.816,  kFALSE, 0.0, 0, "meson",   20315);
     122           5 :   pdgDB->AddParticle("KDH_2BR0", " ", 1.816,  kFALSE, 0.0, 0, "meson",  -20315);
     123             : 
     124             : 
     125           5 :   pdgDB->AddParticle("KD_3+   ", " ", 1.773,  kFALSE, 0.0,+3, "meson",     327);
     126           5 :   pdgDB->AddParticle("KD_3-   ", " ", 1.773,  kFALSE, 0.0,-3, "meson",    -327);
     127             : 
     128           5 :   pdgDB->AddParticle("KD_30   ", " ", 1.773,  kFALSE, 0.0, 0, "meson",     317);
     129           5 :   pdgDB->AddParticle("KD_3BR0 ", " ", 1.773,  kFALSE, 0.0, 0, "meson",    -317);
     130             : 
     131           5 :   pdgDB->AddParticle("RHO_3+  ", " ", 1.691,  kFALSE, 0.0,+3, "meson",     217);
     132           5 :   pdgDB->AddParticle("RHO_3-  ", " ", 1.691,  kFALSE, 0.0,-3, "meson",    -217);
     133           5 :   pdgDB->AddParticle("RHO_30  ", " ", 1.691,  kFALSE, 0.0, 0, "meson",     117);
     134           5 :   pdgDB->AddParticle("OMEGA_3 ", " ", 1.667,  kFALSE, 0.0, 0, "meson",     227);
     135           5 :   pdgDB->AddParticle("PHI_3   ", " ", 1.854,  kFALSE, 0.0, 0, "meson",     337);
     136             : 
     137           5 :   pdgDB->AddParticle("CHI2P_B0", " ", 10.232, kFALSE, 0.0, 0, "meson", 110551);
     138           5 :   pdgDB->AddParticle("CHI2P_B1", " ", 10.255, kFALSE, 0.0, 0, "meson", 120553);
     139           5 :   pdgDB->AddParticle("CHI2P_B2", " ", 10.269, kFALSE, 0.0, 0, "meson", 100555);
     140           5 :   pdgDB->AddParticle("UPSLON4S", " ", 10.580, kFALSE, 0.0, 0, "meson", 300553);
     141             : 
     142             : 
     143             :   // IONS
     144             :   //
     145             :   // Done by default now from Pythia6 table
     146             :   // Needed for other generators
     147             :   // So check if already defined
     148             : 
     149             : 
     150             :   Int_t ionCode = kion+10020;
     151           5 :   if(!pdgDB->GetParticle(ionCode)){
     152           5 :       pdgDB->AddParticle("Deuteron","Deuteron", 1.875613, kTRUE,
     153             :                          0,3,"Ion",ionCode);
     154           5 :   }
     155           5 :   pdgDB->AddAntiParticle("AntiDeuteron", - ionCode);
     156             : 
     157             :   ionCode = kion+10030;
     158           5 :   if(!pdgDB->GetParticle(ionCode)){
     159           5 :     pdgDB->AddParticle("Triton","Triton", 2.80925, kFALSE,
     160             :                      khShGev/(12.33*kYear2Sec),3,"Ion",ionCode);
     161           5 :   }
     162           5 :   pdgDB->AddAntiParticle("AntiTriton", - ionCode);
     163             : 
     164             :   ionCode = kion+20030;
     165           5 :   if(!pdgDB->GetParticle(ionCode)){
     166           5 :     pdgDB->AddParticle("HE3","HE3", 2.80923,kFALSE,
     167             :                      0,6,"Ion",ionCode);
     168           5 :   }
     169           5 :   pdgDB->AddAntiParticle("AntiHE3", - ionCode);
     170             : 
     171             :   ionCode = kion+20040;
     172           5 :   if(!pdgDB->GetParticle(ionCode)){
     173           5 :     pdgDB->AddParticle("Alpha","Alpha", 3.727379, kTRUE,
     174             :                        khShGev/(12.33*kYear2Sec), 6, "Ion", ionCode);
     175           5 :   }
     176           5 :   pdgDB->AddAntiParticle("AntiAlpha", - ionCode);
     177             : 
     178             : // Special particles
     179             : //
     180           5 :   pdgDB->AddParticle("Cherenkov","Cherenkov",0,kFALSE,
     181             :                      0,0,"Special",kspe+50);
     182           5 :   pdgDB->AddParticle("FeedbackPhoton","FeedbackPhoton",0,kFALSE,
     183             :                      0,0,"Special",kspe+51);
     184           5 :   pdgDB->AddParticle("Lambda1520","Lambda1520",1.5195,kFALSE,
     185             :                      0.0156,0,"Resonance",3124);
     186           5 :   pdgDB->AddAntiParticle("Lambda1520bar",-3124);
     187             : 
     188             :   //Hyper nuclei and exotica
     189             :   ionCode = 1010010030;
     190           5 :   if(!pdgDB->GetParticle(ionCode)){
     191           5 :     pdgDB->AddParticle("HyperTriton","HyperTriton", 2.99131, kFALSE,
     192             :                        2.5e-15, 3, "Ion", ionCode);
     193           5 :   }
     194             : 
     195             :   ionCode = -1010010030;
     196           5 :   if(!pdgDB->GetParticle(ionCode)){
     197           5 :     pdgDB->AddParticle("AntiHyperTriton","AntiHyperTriton", 2.99131, kFALSE,
     198             :                        2.5e-15, 3, "Ion", ionCode);
     199           5 :   }
     200             : 
     201             :   ionCode = 1010010040;
     202           5 :   if(!pdgDB->GetParticle(ionCode)){
     203           5 :     pdgDB->AddParticle("Hyperhydrog4","Hyperhydrog4", 3.931, kFALSE,
     204             :                        2.5e-15, 3, "Ion", ionCode);
     205           5 :   }
     206             : 
     207             :   ionCode = -1010010040;
     208           5 :   if(!pdgDB->GetParticle(ionCode)){
     209           5 :     pdgDB->AddParticle("AntiHyperhydrog4","AntiHyperhydrog4", 3.931, kFALSE,
     210             :                        2.5e-15, 3, "Ion", ionCode);
     211           5 :   }
     212             : 
     213             :   ionCode = 1010020040;
     214           5 :   if(!pdgDB->GetParticle(ionCode)){
     215           5 :     pdgDB->AddParticle("Hyperhelium4","Hyperhelium4", 3.929, kFALSE,
     216             :                        2.5e-15, 6, "Ion", ionCode);
     217           5 :   }
     218             : 
     219             :   ionCode = -1010020040;
     220           5 :   if(!pdgDB->GetParticle(ionCode)){
     221           5 :     pdgDB->AddParticle("AntiHyperTriton","AntiHyperTriton", 3.929, kFALSE,
     222             :                        2.5e-15, 6, "Ion", ionCode);
     223           5 :   }
     224             : 
     225             :   ionCode = 1010000020;
     226           5 :   if(!pdgDB->GetParticle(ionCode)){
     227           5 :     pdgDB->AddParticle("LambdaNeutron","LambdaNeutron", 2.054, kFALSE,
     228             :                        2.5e-15, 0, "Special", ionCode);
     229           5 :   }
     230             : 
     231             :   ionCode = -1010000020;
     232           5 :   if(!pdgDB->GetParticle(ionCode)){
     233           5 :     pdgDB->AddParticle("AntiLambdaNeutron","AntiLambdaNeutron", 2.054, kFALSE,
     234             :                        2.5e-15, 0, "Special", ionCode);
     235           5 :   }
     236             : 
     237             :   ionCode = 1020000020;
     238           5 :   if(!pdgDB->GetParticle(ionCode)){
     239           5 :     pdgDB->AddParticle("Hdibaryon","Hdibaryon", 2.23, kFALSE,
     240             :                        2.5e-15, 0, "Special", ionCode);
     241           5 :   }
     242             : 
     243             :   ionCode = -1020000020;
     244           5 :   if(!pdgDB->GetParticle(ionCode)){
     245           5 :     pdgDB->AddParticle("AntiHdibaryon","AntiHdibaryon", 2.23, kFALSE,
     246             :                        2.5e-15, 0, "Special", ionCode);
     247           5 :   }
     248             : 
     249             :   ionCode = 1010000030;
     250           5 :   if(!pdgDB->GetParticle(ionCode)){
     251           5 :     pdgDB->AddParticle("LambdaNeutronNeutron","LambdaNeutronNeutron", 2.982, kFALSE,
     252             :                        2.5e-15, 0, "Special", ionCode);
     253           5 :   }
     254             : 
     255             :   ionCode = -1010000030;
     256           5 :   if(!pdgDB->GetParticle(ionCode)){
     257           5 :     pdgDB->AddParticle("AntiLambdaNeutronNeutron","AntiLambdaNeutronNeutron", 2.982, kFALSE,
     258             :                        2.5e-15, 0, "Special", ionCode);
     259           5 :   }
     260             : 
     261             :   ionCode = 1020010020;
     262           5 :   if(!pdgDB->GetParticle(ionCode)){
     263           5 :     pdgDB->AddParticle("Xi0Proton","Xi0Proton", 2.248, kFALSE,
     264             :                        5e-15, 3, "Ion", ionCode);
     265           5 :   }
     266             : 
     267             :   ionCode = -1020010020;
     268           5 :   if(!pdgDB->GetParticle(ionCode)){
     269           5 :     pdgDB->AddParticle("AntiXi0Proton","AntiXi0Proton", 2.248, kFALSE,
     270             :                        5e-15, 3, "Ion", ionCode);
     271           5 :   }
     272             : 
     273             :   ionCode = 1030000020;
     274           5 :   if(!pdgDB->GetParticle(ionCode)){
     275           5 :     pdgDB->AddParticle("OmegaProton","OmegaProton", 2.592, kFALSE,
     276             :                        2.5e-15, 0, "Special", ionCode);
     277           5 :   }
     278             : 
     279             :   ionCode = -1030000020;
     280           5 :   if(!pdgDB->GetParticle(ionCode)){
     281           5 :     pdgDB->AddParticle("AntiOmegaProton","AntiOmegaProton", 2.592, kFALSE,
     282             :                        2.5e-15, 0, "Special", ionCode);
     283           5 :   }
     284             : 
     285             :   ionCode = 1030010020;
     286           5 :   if(!pdgDB->GetParticle(ionCode)){
     287           5 :     pdgDB->AddParticle("OmegaNeutron","OmegaNeutron", 2.472, kFALSE,
     288             :                        0.003, 3, "Special", ionCode);
     289           5 :   }
     290             : 
     291             :   ionCode = -1030010020;
     292           5 :   if(!pdgDB->GetParticle(ionCode)){
     293           5 :     pdgDB->AddParticle("AntiOmegaNeutron","AntiOmegaNeutron", 2.472, kFALSE,
     294             :                        0.003, 3, "Special", ionCode);
     295           5 :   }
     296             : 
     297             :   ionCode = 1060020020;
     298           5 :   if(!pdgDB->GetParticle(ionCode)){
     299           5 :     pdgDB->AddParticle("OmegaOmega","OmegaOmega", 3.229, kFALSE,
     300             :                        2.5e-15, 6, "Special", ionCode);
     301           5 :   }
     302             : 
     303             :   ionCode = -1060020020;
     304           5 :   if(!pdgDB->GetParticle(ionCode)){
     305           5 :     pdgDB->AddParticle("AntiOmegaOmega","AntiOmegaOmega", 3.229, kFALSE,
     306             :                        2.5e-15, 6, "Special", ionCode);
     307           5 :   }
     308             : 
     309             :   ionCode = 1010010021;
     310           5 :   if(!pdgDB->GetParticle(ionCode)){
     311           5 :     pdgDB->AddParticle("Lambda1405Proton","Lambda1405Proton", 2.295, kFALSE,
     312             :                        0.05, 3, "Special", ionCode);
     313           5 :   }
     314             : 
     315             :   ionCode = -1010010021;
     316           5 :   if(!pdgDB->GetParticle(ionCode)){
     317           5 :     pdgDB->AddParticle("AntiLambda1405Proton","AntiLambda1405Proton", 2.295, kFALSE,
     318             :                        0.05, 3, "Special", ionCode);
     319           5 :   }
     320             : 
     321             :   ionCode = 1020000021;
     322           5 :   if(!pdgDB->GetParticle(ionCode)){
     323           5 :     pdgDB->AddParticle("Lambda1405Lambda1405","Lambda1405Lambda1405", 2.693, kFALSE,
     324             :                        0.05, 0, "Special", ionCode);
     325           5 :   }
     326             : 
     327             :   ionCode = -1020000021;
     328           5 :   if(!pdgDB->GetParticle(ionCode)){
     329           5 :     pdgDB->AddParticle("AntiLambda1405Lambda1405","AntiLambda1405Lambda1405", 2.693, kFALSE,
     330             :                        0.05, 0, "Special", ionCode);
     331           5 :   }
     332             : 
     333             : 
     334             : 
     335             : 
     336             :   // Special resonances
     337             : 
     338             :   ionCode = 9010221;
     339           5 :   if(!pdgDB->GetParticle(ionCode)){
     340           0 :     pdgDB->AddParticle("f0_980","f0_980", 0.980, kFALSE,
     341             :                        0.07, 0, "Resonance", ionCode);
     342           0 :   }
     343             : 
     344             :   ionCode = 225;
     345           5 :   if(!pdgDB->GetParticle(ionCode)){
     346           0 :     pdgDB->AddParticle("f2_1270","f2_1270", 1.275, kFALSE,
     347             :                        0.185, 0, "Resonance", ionCode);
     348           0 :   }
     349             : 
     350          11 : }

Generated by: LCOV version 1.11