From 4466c6480069740f0a2511b2365f3e7a88d0a24a Mon Sep 17 00:00:00 2001
From: Rene Brun <Rene.Brun@cern.ch>
Date: Thu, 9 Jun 2005 06:23:47 +0000
Subject: [PATCH] From Constantin Loizides Add a new function converting from
 PDG to Geant numbering scheme.

git-svn-id: http://root.cern.ch/svn/root/trunk@12000 27541ba8-7e3a-0410-8455-c3a389f83636
---
 eg/inc/TDatabasePDG.h   |  3 ++-
 eg/src/TDatabasePDG.cxx | 58 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 59 insertions(+), 2 deletions(-)

diff --git a/eg/inc/TDatabasePDG.h b/eg/inc/TDatabasePDG.h
index d687feb916b..da685a70cbe 100644
--- a/eg/inc/TDatabasePDG.h
+++ b/eg/inc/TDatabasePDG.h
@@ -1,4 +1,4 @@
-// @(#)root/eg:$Name:  $:$Id: TDatabasePDG.h,v 1.5 2001/11/22 07:38:21 brun Exp $
+// @(#)root/eg:$Name: v4-04-02 $:$Id: TDatabasePDG.h,v 1.6 2004/08/19 20:00:14 brun Exp $
 // Author: Pasha Murat   12/02/99
 
 /*************************************************************************
@@ -48,6 +48,7 @@ public:
 					Int_t        TrackingCode=0);
 
   virtual Int_t  ConvertGeant3ToPdg(Int_t Geant3Number);
+  virtual Int_t  ConvertPdgToGeant3(Int_t pdgNumber);
   virtual Int_t  ConvertIsajetToPdg(Int_t isaNumber);
 
   virtual TParticlePDG* AddAntiParticle(const char* Name, Int_t PdgCode);
diff --git a/eg/src/TDatabasePDG.cxx b/eg/src/TDatabasePDG.cxx
index cc1cb1a6a73..00e2f1eaf7c 100644
--- a/eg/src/TDatabasePDG.cxx
+++ b/eg/src/TDatabasePDG.cxx
@@ -1,4 +1,4 @@
-// @(#)root/eg:$Name:  $:$Id: TDatabasePDG.cxx,v 1.19 2002/07/19 08:28:32 rdm Exp $
+// @(#)root/eg:$Name: v4-04-02 $:$Id: TDatabasePDG.cxx,v 1.20 2002/12/02 18:50:02 rdm Exp $
 // Author: Pasha Murat   12/02/99
 
 #ifdef HAVE_CONFIG
@@ -276,6 +276,62 @@ Int_t TDatabasePDG::ConvertGeant3ToPdg(Int_t Geant3number) {
   }
 }
 
+//______________________________________________________________________________
+Int_t TDatabasePDG::ConvertPdgToGeant3(Int_t pdgNumber) {
+  // Converts pdg code to geant3 id
+
+  switch(pdgNumber) {
+
+     case   22     : return  1;    // photon
+     case   -2112  : return  25;   // anti-neutron
+     case   -11    : return  2;    // e+
+     case   -3122  : return  26;   // anti-Lambda
+     case   11     : return  3;    // e-
+     case   -3222  : return  27;   // Sigma-
+     case   12     : return  4;    // e-neutrino (NB: flavour undefined by Geant)
+     case   -3212  : return  28;   // Sigma0
+     case   -13    : return  5;    // mu+
+     case   -3112  : return  29;   // Sigma+ (PB)*/
+     case   13     : return  6;    // mu-
+     case   -3322  : return  30;   // Xi0
+     case   111    : return  7;    // pi0
+     case   -3312  : return  31;   // Xi+
+     case   211    : return  8;    // pi+
+     case   -3334  : return  32;   // Omega+ (PB)
+     case   -211   : return  9;    // pi-
+     case   -15    : return  33;   // tau+
+     case   130    : return  10;   // K long
+     case   15     : return  34;   // tau-
+     case   321    : return  11;   // K+
+     case   411    : return  35;   // D+
+     case   -321   : return  12;   // K-
+     case   -411   : return  36;   // D-
+     case   2112   : return  13;   // n
+     case   421    : return  37;   // D0
+     case   2212   : return  14;   // p
+     case   -421   : return  38;   // D0
+     case   -2212  : return  15;   // anti-proton
+     case   431    : return  39;   // Ds+
+     case   310    : return  16;   // K short
+     case   -431   : return  40;   // anti Ds-
+     case   221    : return  17;   // eta
+     case   4122   : return  41;   // Lamba_c+
+     case   3122   : return  18;   // Lambda
+     case   24     : return  42;   // W+
+     case   3222   : return  19;   // Sigma+
+     case   -24    : return  43;   // W-
+     case   3212   : return  20;   // Sigma0
+     case   23     : return  44;   // Z
+     case   3112   : return  21;   // Sigma-
+     case   3322   : return  22;   // Xi0
+     case   3312   : return  23;   // Xi-
+     case   3334   : return  24;   // Omega- (PB)
+
+     default  : return 0;
+
+  }
+}
+
 //______________________________________________________________________________
 Int_t TDatabasePDG::ConvertIsajetToPdg(Int_t isaNumber)
 {
-- 
GitLab