ROOT logo
// @(#)$Id: hphysicsconstants.cc,v 1.9 2009-07-03 12:10:14 halo Exp $
//*-- Author : Dan Magestro
//*-- Created: 03/09/01
//*-- Modified     : 24/02/03 by Marcin Jaskula
//                   new ids for fakes, get rid of TObject
//*-- Last modified: 24/02/03

//*-- Modified     : 03/11/06 by Alexander Belyaev
//                   leptonCharge, baryonCharge and strangeness are added

//_HADES_CLASS_DESCRIPTION 
////////////////////////////////////////////////////////////////////////////////
//
//  HPhysicsConstants
//
//  This class contains look-up information for particle properties.  The
//  design is based on a scheme written by Marios Kargalis in his PData.h
//  class for Pluto++.  See PStdData.h class documentation for references.
//
//  Note: Particle Id's are reserved for 'pion' (44) and 'kaon' (48), which
//        can be either + or -. This is useful for graphical cuts on all
//        particles regardless of sign; see HCutHadronId.
//
//  Particle Id's between 500 and 500 + nPart are mapped back to Id - 500.
//
//
////////////////////////////////////////////////////////////////////////////////

#include "hphysicsconstants.h"
#include "TError.h"

#include <string.h>
#include <iostream>
#include <iomanip>
using namespace std;

ClassImp(HPhysicsConstants)
// -----------------------------------------------------------------------------

#define NPART  70              // number of particles stored permanently
#define ARTIFICIAL_OFFSET 500


Bool_t HPhysicsConstants::isFake(Int_t iId)
{
// checks wheater the particle defined by its id is a fake

    return ( (iId >= ARTIFICIAL_OFFSET + NPART) || (iId == fakePos()) || (iId == fakeNeg()));
}

// -----------------------------------------------------------------------------

Bool_t HPhysicsConstants::isArtificial(Int_t iId)
{
// checks wheater the particle defined by its id is an artificial one

    return ((iId == artificialPos()) || (iId == artificialNeg()));
}

// -----------------------------------------------------------------------------

Bool_t HPhysicsConstants::addParticle(Int_t id, TString name, Double_t mass,Int_t chrg,Int_t leptchrg,Int_t barychrg,Int_t strange)
{
    if(idToProp.find(id) == idToProp.end() ){           // id was not used before
	if(nameToProp.find(name) == nameToProp.end() ){ // name was not used before
            particleproperties prop;
	    prop.fill(id,name,mass,chrg,leptchrg,barychrg,strange);
	    idToProp  [id]     = prop;
	    nameToProp[name]   = prop;
	    return kTRUE;
	} else {
	    ::Error("HPhysicsConstants::addParticle()","name was used already before!");
	    return kFALSE;
	}
    } else {
	::Error("HPhysicsConstants::addParticle()","id was used already before!");
	return kFALSE;
    }
}

Bool_t HPhysicsConstants::addParticle(particleproperties prop)
{
    if(idToProp.find(prop.fId) == idToProp.end() ){           // id was not used before
	if(nameToProp.find(prop.fName) == nameToProp.end() ){ // name was not used before
	    idToProp  [prop.fId]     = prop;
	    nameToProp[prop.fName]   = prop;
	    return kTRUE;
	} else {
	    ::Error("HPhysicsConstants::addParticle()","name was used already before!");
	    return kFALSE;
	}
    } else {
	::Error("HPhysicsConstants::addParticle()","id was used already before!");
	return kFALSE;
    }
}

// -----------------------------------------------------------------------------

particleproperties HPhysicsConstants::createParticle(Int_t id,TString name, Double_t mass,Int_t chrg,Int_t leptchrg,Int_t barychrg,Int_t strange)
{
    particleproperties prop;
    prop.fill(id,name,mass,chrg,leptchrg,barychrg,strange);
    return prop;
}

// -----------------------------------------------------------------------------

Bool_t HPhysicsConstants::removeParticle(Int_t id)
{
    // remove particle with ID id from data base
    map<Int_t,particleproperties>::iterator iter = idToProp.find(id);

    if(iter != idToProp.end() ) {
	nameToProp.erase(iter->second.fName);
	idToProp  .erase(id);
        return kTRUE;
    }
    return kFALSE;

}

// -----------------------------------------------------------------------------

Bool_t HPhysicsConstants::moveParticle(Int_t id,Int_t newId)
{
    // move particle with id to newId. Only performed if
    // newId is not used already
    map<Int_t,particleproperties>::iterator iter  = idToProp.find(id);
    map<Int_t,particleproperties>::iterator iter2 = idToProp.find(newId);

    if(iter != idToProp.end() ) {
	if(iter2 == idToProp.end() ) {

	    particleproperties prop = iter->second;
	    prop.fId = newId;
            removeParticle(id);
            addParticle(prop);

	    return kTRUE;
	} else {
           ::Error("HPhysicsConstants::moveParticle()","new id was used already before, cannot move id!");
	}
    }
    return kFALSE;

}

Bool_t HPhysicsConstants::cpParticle(Int_t id,Int_t newId,TString newName)
{
    // move particle with id to newId. Only performed if
    // newId is not used already
    map<Int_t,particleproperties>::iterator iter  = idToProp.find(id);
    map<Int_t,particleproperties>::iterator iter2 = idToProp.find(newId);

    if(iter != idToProp.end() ) {
	if(iter2 == idToProp.end() ) {

	    particleproperties prop = iter->second;
	    prop.fId = newId;
            prop.fName = newName;
            addParticle(prop);

	    return kTRUE;
	} else {
           ::Error("HPhysicsConstants::moveParticle()","new id was used already before, cannot move id!");
	}
    }
    return kFALSE;

}

// -----------------------------------------------------------------------------

void HPhysicsConstants::clearParticles()
{
    // clear all particles in data base
    idToProp  .clear();
    nameToProp.clear();
}

// -----------------------------------------------------------------------------

map<Int_t,particleproperties> HPhysicsConstants::initParticleID()
{
    // to be called only for init of static vectors


    map<Int_t,particleproperties> idToPropL;

    //                           id, name,         mass       chrg lep bar strange
    idToPropL[-4]=createParticle(-4,"artificial+", -1.,        1,  1,  1, 1);  /* -4 artificial+*/
    idToPropL[-3]=createParticle(-3,"artificial-", -1.,       -1, -1, -1,-1);  /* -3 artificial-*/
    idToPropL[-2]=createParticle(-2,"fake+",       -1.,        1,  1,  1, 1);  /* -2 fake+      */
    idToPropL[-1]=createParticle(-1,"fake-",       -1.,       -1, -1, -1,-1);  /* -1 fake-      */
    idToPropL[ 0]=createParticle( 0,"dummy",       0.0,        0,  0,  0, 0);  /* 0: dummy      */
    idToPropL[ 1]=createParticle( 1,"g",           0.0,        0,  0,  0, 0);  /* 1: Photon     */
    idToPropL[ 2]=createParticle( 2,"e+",          0.51099906, 1, -1,  0, 0);  /* 2: Positron   */
    idToPropL[ 3]=createParticle( 3,"e-",          0.51099906,-1, +1,  0, 0);  /* 3: Electron   */
    idToPropL[ 4]=createParticle( 4,"nu",          0.0,        0, +1,  0, 0);  /* 4: Neutrino   */
    idToPropL[ 5]=createParticle( 5,"mu+",         105.658389, 1, -1,  0, 0);  /* 5: mu+        */
    idToPropL[ 6]=createParticle( 6,"mu-",         105.658389,-1, +1,  0, 0);  /* 6: mu-        */
    idToPropL[ 7]=createParticle( 7,"pi0",         134.9764,   0,  0,  0, 0);  /* 7: pi0        */
    idToPropL[ 8]=createParticle( 8,"pi+",         139.56995,  1,  0,  0, 0);  /* 8: pi+        */
    idToPropL[ 9]=createParticle( 9,"pi-",         139.56995, -1,  0,  0, 0);  /* 9: pi-        */
    idToPropL[10]=createParticle(10,"K0L",         497.672,    0,  0,  0,+1);  /*10: K0_long    */
    idToPropL[11]=createParticle(11,"K+",          493.677,    1,  0,  0,+1);  /*11: K+         */
    idToPropL[12]=createParticle(12,"K-",          493.677,   -1,  0,  0,-1);  /*12: K-         */
    idToPropL[13]=createParticle(13,"n",           939.56563,  0,  0, +1, 0);  /*13: Neutron    */
    idToPropL[14]=createParticle(14,"p",           938.27231,  1,  0, +1, 0);  /*14: Proton     */
    idToPropL[15]=createParticle(15,"anti_p",      938.27231, -1,  0, -1, 0);  /*15: Antiproton */
    idToPropL[16]=createParticle(16,"K0S",         497.672,    0,  0,  0,+1);  /*16: K0_short   */
    idToPropL[17]=createParticle(17,"eta",         547.45,     0,  0,  0, 0);  /*17: Eta        */
    idToPropL[18]=createParticle(18,"Lambda",      1115.684,   0,  0, +1,-1);  /*18: Lambda     */
    idToPropL[19]=createParticle(19,"Sigma+",      1189.37,    1,  0, +1,-1);  /*19: Sigma+     */
    idToPropL[20]=createParticle(20,"Sigma0",      1192.55,    0,  0, +1,-1);  /*20: Sigma0     */
    idToPropL[21]=createParticle(21,"Sigma-",      1197.436,  -1,  0, +1,-1);  /*21: Sigma-     */
    idToPropL[22]=createParticle(22,"Xi0",         1314.9,     0,  0, +1,-2);  /*22: Xi0        */
    idToPropL[23]=createParticle(23,"Xi-",         1321.32,   -1,  0, +1,-2);  /*23: Xi-        */
    idToPropL[24]=createParticle(24,"Omega",       1672.45,   -1,  0, +1,-3);  /*24: Omega-     */
    idToPropL[25]=createParticle(25,"anti_n",      939.56563,  0,  0, -1, 0);  /*25: Antineutrn */
    idToPropL[26]=createParticle(26,"anti_Lambda", 1115.684,   0,  0, -1,+1);  /*26: Antilambda */
    idToPropL[27]=createParticle(27,"anti_Sigma-", 1189.37,   -1,  0, -1,+1);  /*27: Antisigma- */
    idToPropL[28]=createParticle(28,"anti_Sigma0", 1192.55,    0,  0, -1,+1);  /*28: Antisigma0 */
    idToPropL[29]=createParticle(29,"anti_Sigma+", 1197.436,  +1,  0, -1,+1);  /*29: Antisigma+ */
    idToPropL[30]=createParticle(30,"anti_Xi0",    1314.9,     0,  0, -1,+2);  /*30: Antixi0    */
    idToPropL[31]=createParticle(31,"anti_Xi+",    1321.32,    1,  0, -1,+2);  /*31: Antixi+    */
    idToPropL[32]=createParticle(32,"anti_Omega+", 1672.45,    1,  0, -1,+3);  /*32: Antiomega+ */
    idToPropL[33]=createParticle(33,"TC",          0.0,        0,  0,  0, 0);  /*33: TC         */
    idToPropL[34]=createParticle(34,"D0",          1232.0,     0,  0, +1, 0);  /*34: Delta0     */
    idToPropL[35]=createParticle(35,"D++",         1232.0,     2,  0, +1, 0);  /*35: Delta++    */
    idToPropL[36]=createParticle(36,"D+",          1232.0,     1,  0, +1, 0);  /*36: Delta+     */
    idToPropL[37]=createParticle(37,"D-",          1232.0,    -1,  0, +1, 0);  /*37: Delta-     */
    idToPropL[38]=createParticle(38,"NP11+",       1440.0,     1,  0, +1, 0);  /*38: NP11+      */
    idToPropL[39]=createParticle(39,"ND13+",       1520.0,     1,  0, +1, 0);  /*39: ND13+      */
    idToPropL[40]=createParticle(40,"NS11+",       1535.0,     1,  0, +1, 0);  /*40: NS11+      */
    idToPropL[41]=createParticle(41,"rho0",        769.9,      0,  0,  0, 0);  /*41: rho0       */
    idToPropL[42]=createParticle(42,"rho+",        769.9,      1,  0,  0, 0);  /*42: rho+       */
    idToPropL[43]=createParticle(43,"rho-",        769.9,     -1,  0,  0, 0);  /*43: rho-       */
    idToPropL[44]=createParticle(44,"pion",        139.56995,  0,  0,  0, 0);  /*44: PION       */
    idToPropL[45]=createParticle(45,"d",           1875.613,   1,  0, +2, 0);  /*45: Deuteron   */
    idToPropL[46]=createParticle(46,"t",           2809.25,    1,  0, +3, 0);  /*46: Tritium    */
    idToPropL[47]=createParticle(47,"alpha",       3727.417,   2,  0, +4, 0);  /*47: Alpha      */
    idToPropL[48]=createParticle(48,"kaon",        493.677,    0,  0,  0, 0);  /*48: KAON       */
    idToPropL[49]=createParticle(49,"He3",         2809.23,    2,  0, +3, 0);  /*49: He3        */
    idToPropL[50]=createParticle(50,"dimuon",      211.31678,  0,  0,  0, 0);  /*50: dimuon     */
    idToPropL[51]=createParticle(51,"dilepton",     1.022,     0,  0,  0, 0);  /*51: dilepton   */
    idToPropL[52]=createParticle(52,"w",           781.94,     0,  0,  0, 0);  /*52: omega      */
    idToPropL[53]=createParticle(53,"eta'",        957.7,      0,  0,  0, 0);  /*53: eta'       */
    idToPropL[54]=createParticle(54,"sigma",       600.,       0,  0,  0, 0);  /*54: sigma      */
    idToPropL[55]=createParticle(55,"phi",         1019.413,   0,  0,  0, 0);  /*55: phi        */
    idToPropL[56]=createParticle(56,"DP330",       1600.,      0,  0,  1, 0);  /*56: Delta0*P33 */
    idToPropL[57]=createParticle(57,"DP33++",      1600.,      2,  0,  1, 0);  /*57: Delta++ *P33*/
    idToPropL[58]=createParticle(58,"DP33+",       1600.,      1,  0,  1, 0);  /*58: Delta+*P33 */
    idToPropL[59]=createParticle(59,"DP33-",       1600.,     -1,  0,  1, 0);  /*59: Delta- *P33*/
    idToPropL[60]=createParticle(60,"DS310",       1620.,      0,  0,  1, 0);  /*60: Delta0*S31*/
    idToPropL[61]=createParticle(61,"DS31++",      1620.,      2,  0,  1, 0);  /*61: Delta++ *S31*/
    idToPropL[62]=createParticle(62,"DS31+",       1620.,      1,  0,  1, 0);  /*62: Delta+*S31 */
    idToPropL[63]=createParticle(63,"DS31-",       1620.,     -1,  0,  1, 0);  /*63: Delta- *S31 */
    idToPropL[64]=createParticle(64,"NP110",       1440.,      0,  0,  1, 0);  /*64: NP110      */
    idToPropL[65]=createParticle(65,"ND130",       1520.,      0,  0,  1, 0);  /*65: ND130      */
    idToPropL[66]=createParticle(66,"NS110",       1535.,      0,  0,  1, 0);  /*66: NS110      */
    idToPropL[67]=createParticle(67,"J/Psi",       3096.88,    0,  0,  0, 0);  /*67: J/Psi      */
    idToPropL[68]=createParticle(68,"Psi'",        3685.96,    0,  0,  0, 0);  /*68: Psi'       */
    idToPropL[69]=createParticle(69,"pn"  ,        2650.,      1,  0,  2, 0);  /*69: pn         */
    idToPropL[120]=createParticle(120,"Hypertriton",2991.,     1,  0,  3, 0);  /*69: Hypertriton */

    HPhysicsConstants::setDefaultGraphic(kMagenta,1);
    HPhysicsConstants::setGraphic(14,kGray    ,1); // proton
    HPhysicsConstants::setGraphic(13,kGreen-2 ,1); // neutron
    HPhysicsConstants::setGraphic(8 ,kRed-9   ,1); // pi+
    HPhysicsConstants::setGraphic(9 ,kBlue-9  ,1); // pi-
    HPhysicsConstants::setGraphic(7 ,kYellow  ,1); // pi0

    HPhysicsConstants::setGraphic(2 ,kRed     ,1); // e+
    HPhysicsConstants::setGraphic(3 ,kBlue    ,1); // e-
    HPhysicsConstants::setGraphic(1 ,kWhite   ,1); // gamma

    HPhysicsConstants::setGraphic(10,kGreen   ,1); // K0L
    HPhysicsConstants::setGraphic(11,kGreen-7 ,1); // K+
    HPhysicsConstants::setGraphic(12,kGreen-6 ,1); // K-
    HPhysicsConstants::setGraphic(45,kOrange  ,1); // d
    HPhysicsConstants::setGraphic(46,kOrange-3,1); // t



    return idToPropL;
}

// -----------------------------------------------------------------------------

map<TString,particleproperties> HPhysicsConstants::initParticleName()
{
    // to be called only for init of static vectors

    map<TString,particleproperties> nameToPropL;

    map<Int_t,particleproperties>::iterator iter;
    for( iter = idToProp.begin(); iter != idToProp.end(); ++iter ) {
          nameToPropL[iter->second.fName] = iter->second;
    }

    return nameToPropL;
}
// -----------------------------------------------------------------------------


map<Int_t,TString> HPhysicsConstants::initGeantProcess()
{
    // to be called only for init of static vectors

    map <Int_t,TString> mprocess;       // geant process code

    mprocess  [0] ="No Process";
    mprocess  [1] ="NEXT  : particle has reached the boundary of current volume";
    mprocess  [2] ="MULS  : multiple scattering";
    mprocess  [3] ="LOSS  : continuous energy loss";
    mprocess  [4] ="FIEL  : bending in magnetic field";
    mprocess  [5] ="DCAY  : particle decay";
    mprocess  [6] ="PAIR  : photon pair-production or muon direct pair production";
    mprocess  [7] ="COMP  : Compton scattering";
    mprocess  [8] ="PHOT  : photoelectric effect";
    mprocess  [9] ="BREM  : bremsstrahlung";
    mprocess [10] ="DRAY  : delta-ray production";
    mprocess [11] ="ANNI  : positron annihilation";
    mprocess [12] ="HADR  : hadronic interaction";
    mprocess [13] ="ECOH  : hadronic elastic coherent scattering";
    mprocess [14] ="EVAP  : nuclear evaporation";
    mprocess [15] ="FISS  : nuclear fission";
    mprocess [16] ="ABSO  : nuclear absorption";
    mprocess [17] ="ANNH  : anti-proton annihilation";
    mprocess [18] ="CAPT  : neutron capture";
    mprocess [19] ="EINC  : hadronic elastic incoherent scattering";
    mprocess [20] ="INHE  : hadronic inelastic scattering";
    mprocess [21] ="MUNU  : muon-nuclear interaction";
    mprocess [22] ="TOFM  : exceeded time of flight cut";
    mprocess [23] ="PFIS  : nuclear photo-fission";
    mprocess [24] ="SCUT  : the particle due to magnetic field was unexp. crossing vol. boundaries";
    mprocess [25] ="RAYL  : Rayleigh effect";
    mprocess [26] ="PARA  : parametrisation activated";
    mprocess [27] ="PRED  : error matrix computed (GEANE tracking)";
    mprocess [28] ="LOOP  : not used";
    mprocess [29] ="NULL  : no mechanism is active, usually at the entrance of a new volume";
    mprocess [30] ="STOP  : particle has fallen below energy threshold and tracking stops";
    mprocess [31] ="HADES : (pair creat. with immediate annihilation of stopped positron";
    mprocess [32] ="HADES : as 31, but electron also stopped";
    mprocess[101] ="LABS  : Cerenkov photon absorption";
    mprocess[102] ="LREF  : Cerenkov photon reflection/refraction";
    mprocess[103] ="SMAX  : step limited by STEMAX";
    mprocess[104] ="SCOR  : correction against loss of precision in boundary crossing";
    mprocess[105] ="CKOV  : Cerenkov photon generation";
    mprocess[106] ="REFL  : Cerenkov photon reflection";
    mprocess[107] ="REFR  : Cerenkov photon refraction";
    mprocess[108] ="SYNC  : synchrotron radiation generation";
    mprocess[109] ="STRA  : PAI or ASHO model used for energy loss fluctuations.";



    return mprocess;
}

// -----------------------------------------------------------------------------


// -----------------------------------------------------------------------------

void HPhysicsConstants::loadGeantIons()
{
    // load the table of ions know by Geant3 (id 61-112). The pluto particles
    // with ids 61-69 will be removed.

    ::Info("loadGeantIons()","Adding new Particles(Fragments) - remove Patricle 61-69 -- Re-Intialize HPhysicsConstants with GEANT3 numbering ... ");
    for(UInt_t jj = 61 ; jj < 70; jj ++) HPhysicsConstants::removeParticle(jj);
    
    // Mass from GEANT3 gpions.F
    // and information from shield to evt convert.sh

//                                 id, name,           mass, chrg,leptc, baryc, strange
    HPhysicsConstants::addParticle(61,"Li_3_6",      5603.05,      3,  0,  6, 0);  //
    HPhysicsConstants::addParticle(62,"Li_3_7",      6535.36,      3,  0,  7, 0);  //
    HPhysicsConstants::addParticle(63,"Be_4_7",      6536.22,      4,  0,  7, 0);  //
    HPhysicsConstants::addParticle(64,"Be_4_9",      8394.79,      4,  0,  9, 0);  //
    HPhysicsConstants::addParticle(65,"Be_5_10",     9326.99,      5,  0, 10, 0);  //
    HPhysicsConstants::addParticle(66,"Be_5_11",    10255.10,      5,  0, 11, 0);  //
    HPhysicsConstants::addParticle(67,"C_6_12" ,    11177.93,      6,  0, 12, 0);  //
    HPhysicsConstants::addParticle(68,"N_7_14" ,    13043.78,      7,  0, 14, 0);  //
    HPhysicsConstants::addParticle(69,"O_8_16" ,    14899.17,      8,  0, 16, 0);  //
    HPhysicsConstants::addParticle(70,"F_9_19" ,    17696.90,      9,  0, 19, 0);  //
    HPhysicsConstants::addParticle(71,"Ne_10_20",   18622.84,     10,  0, 20, 0);  //
    HPhysicsConstants::addParticle(72,"Na_11_23",   21414.83,     11,  0, 23, 0);  //
    HPhysicsConstants::addParticle(73,"Mg_12_24",   22341.93,     12,  0, 24, 0);  //
    HPhysicsConstants::addParticle(74,"Al_13_27",   25133.14,     13,  0, 27, 0);  //
    HPhysicsConstants::addParticle(75,"Si_14_28",   26060.34,     14,  0, 28, 0);  //
    HPhysicsConstants::addParticle(76,"P_15_31" ,   28851.88,     15,  0, 31, 0);  //
    HPhysicsConstants::addParticle(77,"S_16_32" ,   29781.80,     16,  0, 32, 0);  //
    HPhysicsConstants::addParticle(78,"Cl_17_35",   32573.28,     17,  0, 35, 0);  //
    HPhysicsConstants::addParticle(79,"Ar_18_36",   33503.56,     18,  0, 36, 0);  //
    HPhysicsConstants::addParticle(80,"K_19_39" ,   36294.47,     19,  0, 39, 0);  //
    HPhysicsConstants::addParticle(81,"Ca_20_40",   37224.92,     20,  0, 40, 0);  //
    HPhysicsConstants::addParticle(82,"Sc_21_45",   41876.17,     21,  0, 45, 0);  //
    HPhysicsConstants::addParticle(83,"Ti_22_48",   44663.24,     22,  0, 48, 0);  //
    HPhysicsConstants::addParticle(84,"V_23_51" ,   47454.01,     23,  0, 51, 0);  //
    HPhysicsConstants::addParticle(85,"Cr_24_52",   48382.28,     24,  0, 52, 0);  //
    HPhysicsConstants::addParticle(86,"Mn_25_55",   51174.47,     25,  0, 55, 0);  //
    HPhysicsConstants::addParticle(87,"Fe_26_56",   52103.07,     26,  0, 56, 0);  //
    HPhysicsConstants::addParticle(88,"Co_27_59",   54895.93,     27,  0, 59, 0);  //
    HPhysicsConstants::addParticle(89,"Ni_28_58",   53966.44,     28,  0, 58, 0);  //
    HPhysicsConstants::addParticle(90,"Cu_29_63",   58618.56,     29,  0, 63, 0);  //
    HPhysicsConstants::addParticle(91,"Zn_30_64",   59549.63,     30,  0, 64, 0);  //
    HPhysicsConstants::addParticle(92,"Ge_32_74 ",  68857.15,     32,  0, 74, 0);  //
    HPhysicsConstants::addParticle(93,"Se_34_80 ",  74441.78,     34,  0, 80, 0);  //
    HPhysicsConstants::addParticle(94,"Kr_36_84 ",  78163.09,     36,  0, 84, 0);  //
    HPhysicsConstants::addParticle(95,"Sr_38_88 ",  81883.58,     38,  0, 88, 0);  //
    HPhysicsConstants::addParticle(96,"Zr_40_90 ",  83745.71,     40,  0, 90, 0);  //
    HPhysicsConstants::addParticle(97,"Mo_42_98 ",  91198.32,     42,  0, 98, 0);  //
    HPhysicsConstants::addParticle(98,"Pd_46_106",  98649.97,     46,  0, 106, 0);  //
    HPhysicsConstants::addParticle(99,"Cd_48_114", 106109.97,     48,  0, 114, 0);  //
    HPhysicsConstants::addParticle(100,"Sn_50_120",111688.21,     50,  0, 120, 0);  //
    HPhysicsConstants::addParticle(101,"Xe_54_132",122867.96,     54,  0, 132, 0);  //
    HPhysicsConstants::addParticle(102,"Ba_56_138",128457.93,     56,  0, 138, 0);  //
    HPhysicsConstants::addParticle(103,"Ce_58_140",130321.11,     58,  0, 140, 0);  //
    HPhysicsConstants::addParticle(104,"Sm_62_152",141512.36,     62,  0, 152, 0);  //
    HPhysicsConstants::addParticle(105,"Dy_66_164",152699.09,     66,  0, 164, 0);  //
    HPhysicsConstants::addParticle(106,"Yb_70_174",162022.45,     70,  0, 174, 0);  //
    HPhysicsConstants::addParticle(107,"W_74_184" ,171349.24,     74,  0, 184, 0);  //
    HPhysicsConstants::addParticle(108,"Pt_78_194",180675.13,     78,  0, 194, 0);  //
    HPhysicsConstants::addParticle(109,"Au_79_197",183473.24,     79,  0, 197, 0);  //
    HPhysicsConstants::addParticle(110,"Hg_80_202",188134.51,     80,  0, 110, 0);  //
    HPhysicsConstants::addParticle(111,"Pb_82_208",193729.07,     82,  0, 111, 0);  //
    HPhysicsConstants::addParticle(112,"U_92_238" ,221742.95,     92,  0, 112, 0);  //

    HPhysicsConstants::print();

    return;
} 


void HPhysicsConstants::print(){

    ::Info("HPhysicsConstants::print()","Printing table of all known particles and processes:");

    map<Int_t,particleproperties>::iterator iter;
    for( iter = idToProp.begin(); iter != idToProp.end(); ++iter ) {
          iter->second.print();
    }
    cout<<endl;
    cout<<"HGEANT processes :"<<endl;

    map<Int_t,TString>::iterator iter2;
    for( iter2 = mGeantProcess.begin(); iter2 != mGeantProcess.end(); ++iter2 ) {
	cout<<setw(3)<<iter2->first<<" "<<iter2->second<<endl;;
    }



}

// -----------------------------------------------------------------------------

Int_t HPhysicsConstants::pid(const Char_t *n)
{
    // Return integer id given a particle's name

    map<TString,particleproperties>::iterator iter = nameToProp.find(TString(n));
    if(iter != nameToProp.end()) return iter->second.fId;
    else {
	::Error("HPhysicsConstants::pid", "No particle with name=%s", n);
    }
    return 0;
}

// -----------------------------------------------------------------------------

const Char_t *HPhysicsConstants::pid(Short_t pid)
{
    // Return name of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fName.Data();
    else {
	::Error("HPhysicsConstants::pid", "No particle with id=%d", newPid);
    }
    return NULL;
}

// -----------------------------------------------------------------------------

Int_t HPhysicsConstants::charge(const Int_t pid)
{
    // Return charge of the particle
    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fCharge;
    else {
	::Error("HPhysicsConstants::charge", "No particle with id=%d", newPid);
    }
    return 0;
}

// -----------------------------------------------------------------------------

Int_t HPhysicsConstants::leptonCharge(const Int_t pid)
{
    // Return leptonCharge of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fLeptonCharge;
    else {
	::Error("HPhysicsConstants::leptonCharge", "No particle with id=%d", newPid);
    }
    return 0;
}

// -----------------------------------------------------------------------------

Int_t HPhysicsConstants::baryonCharge(const Int_t pid)
{
// Return baryonCharge of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fBaryonCharge;
    else {
	::Error("HPhysicsConstants::baryonCharge", "No particle with id=%d", newPid);
    }
    return 0;
}

// -----------------------------------------------------------------------------

Int_t HPhysicsConstants::strangeness(const Int_t pid)
{
    // Return strangeness of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fStrangeness;
    else {
	::Error("HPhysicsConstants::strangeness", "No particle with id=%d", newPid);
    }
    return 0;
}

// -----------------------------------------------------------------------------

Float_t HPhysicsConstants::mass(const Int_t pid)
{
// Return mass of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fMass;
    else {
	::Error("HPhysicsConstants::mass", "No particle with id=%d", newPid);
    }
    return -1;
}

const Char_t* HPhysicsConstants::geantProcess(Int_t mech)
{
    // Return geant process description (kine mechanism)

    map<Int_t,TString>::iterator iter = mGeantProcess.find(mech);
    if(iter != mGeantProcess.end()) return iter->second.Data();
    else {
	::Error("HPhysicsConstants::geantProcess", "No mechanism with id=%d", mech);
    }
    return NULL;
}

Int_t HPhysicsConstants::lineColor(const Int_t pid)
{
    // Return line color of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fLineColor;
    else {
	::Error("HPhysicsConstants::lineColor", "No particle with id=%d", newPid);
    }
    return 1;
}

Int_t HPhysicsConstants::lineStyle(const Int_t pid)
{
    // Return line style  of the particle

    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) return iter->second.fLineStyle;
    else {
	::Error("HPhysicsConstants::lineColor", "No particle with id=%d", newPid);
    }
    return 1;
}


void HPhysicsConstants::setGraphic(Short_t pid, Int_t col, Int_t style)
{
    Int_t newPid = pid;
    if(pid >= ARTIFICIAL_OFFSET && pid < ARTIFICIAL_OFFSET + NPART) newPid = pid - ARTIFICIAL_OFFSET;

    map<Int_t,particleproperties>::iterator iter = idToProp.find(newPid);
    if(iter != idToProp.end()) {
	iter->second.fLineColor=col;
	iter->second.fLineStyle=style;
    }
    else {
	::Error("HPhysicsConstants::setGraphic", "No particle with id=%d", newPid);
    }

}
void HPhysicsConstants::setDefaultGraphic(Int_t col, Int_t style)
{
    map<Int_t,particleproperties>::iterator iter;
    for( iter = idToProp.begin(); iter != idToProp.end(); ++iter ) {
	iter->second.fLineColor=col;
        iter->second.fLineStyle=style;
    }
}



map<Int_t,particleproperties  > HPhysicsConstants::idToProp      = HPhysicsConstants::initParticleID();
map<TString,particleproperties> HPhysicsConstants::nameToProp    = HPhysicsConstants::initParticleName();
map<Int_t,TString>              HPhysicsConstants::mGeantProcess = HPhysicsConstants::initGeantProcess();




 hphysicsconstants.cc:1
 hphysicsconstants.cc:2
 hphysicsconstants.cc:3
 hphysicsconstants.cc:4
 hphysicsconstants.cc:5
 hphysicsconstants.cc:6
 hphysicsconstants.cc:7
 hphysicsconstants.cc:8
 hphysicsconstants.cc:9
 hphysicsconstants.cc:10
 hphysicsconstants.cc:11
 hphysicsconstants.cc:12
 hphysicsconstants.cc:13
 hphysicsconstants.cc:14
 hphysicsconstants.cc:15
 hphysicsconstants.cc:16
 hphysicsconstants.cc:17
 hphysicsconstants.cc:18
 hphysicsconstants.cc:19
 hphysicsconstants.cc:20
 hphysicsconstants.cc:21
 hphysicsconstants.cc:22
 hphysicsconstants.cc:23
 hphysicsconstants.cc:24
 hphysicsconstants.cc:25
 hphysicsconstants.cc:26
 hphysicsconstants.cc:27
 hphysicsconstants.cc:28
 hphysicsconstants.cc:29
 hphysicsconstants.cc:30
 hphysicsconstants.cc:31
 hphysicsconstants.cc:32
 hphysicsconstants.cc:33
 hphysicsconstants.cc:34
 hphysicsconstants.cc:35
 hphysicsconstants.cc:36
 hphysicsconstants.cc:37
 hphysicsconstants.cc:38
 hphysicsconstants.cc:39
 hphysicsconstants.cc:40
 hphysicsconstants.cc:41
 hphysicsconstants.cc:42
 hphysicsconstants.cc:43
 hphysicsconstants.cc:44
 hphysicsconstants.cc:45
 hphysicsconstants.cc:46
 hphysicsconstants.cc:47
 hphysicsconstants.cc:48
 hphysicsconstants.cc:49
 hphysicsconstants.cc:50
 hphysicsconstants.cc:51
 hphysicsconstants.cc:52
 hphysicsconstants.cc:53
 hphysicsconstants.cc:54
 hphysicsconstants.cc:55
 hphysicsconstants.cc:56
 hphysicsconstants.cc:57
 hphysicsconstants.cc:58
 hphysicsconstants.cc:59
 hphysicsconstants.cc:60
 hphysicsconstants.cc:61
 hphysicsconstants.cc:62
 hphysicsconstants.cc:63
 hphysicsconstants.cc:64
 hphysicsconstants.cc:65
 hphysicsconstants.cc:66
 hphysicsconstants.cc:67
 hphysicsconstants.cc:68
 hphysicsconstants.cc:69
 hphysicsconstants.cc:70
 hphysicsconstants.cc:71
 hphysicsconstants.cc:72
 hphysicsconstants.cc:73
 hphysicsconstants.cc:74
 hphysicsconstants.cc:75
 hphysicsconstants.cc:76
 hphysicsconstants.cc:77
 hphysicsconstants.cc:78
 hphysicsconstants.cc:79
 hphysicsconstants.cc:80
 hphysicsconstants.cc:81
 hphysicsconstants.cc:82
 hphysicsconstants.cc:83
 hphysicsconstants.cc:84
 hphysicsconstants.cc:85
 hphysicsconstants.cc:86
 hphysicsconstants.cc:87
 hphysicsconstants.cc:88
 hphysicsconstants.cc:89
 hphysicsconstants.cc:90
 hphysicsconstants.cc:91
 hphysicsconstants.cc:92
 hphysicsconstants.cc:93
 hphysicsconstants.cc:94
 hphysicsconstants.cc:95
 hphysicsconstants.cc:96
 hphysicsconstants.cc:97
 hphysicsconstants.cc:98
 hphysicsconstants.cc:99
 hphysicsconstants.cc:100
 hphysicsconstants.cc:101
 hphysicsconstants.cc:102
 hphysicsconstants.cc:103
 hphysicsconstants.cc:104
 hphysicsconstants.cc:105
 hphysicsconstants.cc:106
 hphysicsconstants.cc:107
 hphysicsconstants.cc:108
 hphysicsconstants.cc:109
 hphysicsconstants.cc:110
 hphysicsconstants.cc:111
 hphysicsconstants.cc:112
 hphysicsconstants.cc:113
 hphysicsconstants.cc:114
 hphysicsconstants.cc:115
 hphysicsconstants.cc:116
 hphysicsconstants.cc:117
 hphysicsconstants.cc:118
 hphysicsconstants.cc:119
 hphysicsconstants.cc:120
 hphysicsconstants.cc:121
 hphysicsconstants.cc:122
 hphysicsconstants.cc:123
 hphysicsconstants.cc:124
 hphysicsconstants.cc:125
 hphysicsconstants.cc:126
 hphysicsconstants.cc:127
 hphysicsconstants.cc:128
 hphysicsconstants.cc:129
 hphysicsconstants.cc:130
 hphysicsconstants.cc:131
 hphysicsconstants.cc:132
 hphysicsconstants.cc:133
 hphysicsconstants.cc:134
 hphysicsconstants.cc:135
 hphysicsconstants.cc:136
 hphysicsconstants.cc:137
 hphysicsconstants.cc:138
 hphysicsconstants.cc:139
 hphysicsconstants.cc:140
 hphysicsconstants.cc:141
 hphysicsconstants.cc:142
 hphysicsconstants.cc:143
 hphysicsconstants.cc:144
 hphysicsconstants.cc:145
 hphysicsconstants.cc:146
 hphysicsconstants.cc:147
 hphysicsconstants.cc:148
 hphysicsconstants.cc:149
 hphysicsconstants.cc:150
 hphysicsconstants.cc:151
 hphysicsconstants.cc:152
 hphysicsconstants.cc:153
 hphysicsconstants.cc:154
 hphysicsconstants.cc:155
 hphysicsconstants.cc:156
 hphysicsconstants.cc:157
 hphysicsconstants.cc:158
 hphysicsconstants.cc:159
 hphysicsconstants.cc:160
 hphysicsconstants.cc:161
 hphysicsconstants.cc:162
 hphysicsconstants.cc:163
 hphysicsconstants.cc:164
 hphysicsconstants.cc:165
 hphysicsconstants.cc:166
 hphysicsconstants.cc:167
 hphysicsconstants.cc:168
 hphysicsconstants.cc:169
 hphysicsconstants.cc:170
 hphysicsconstants.cc:171
 hphysicsconstants.cc:172
 hphysicsconstants.cc:173
 hphysicsconstants.cc:174
 hphysicsconstants.cc:175
 hphysicsconstants.cc:176
 hphysicsconstants.cc:177
 hphysicsconstants.cc:178
 hphysicsconstants.cc:179
 hphysicsconstants.cc:180
 hphysicsconstants.cc:181
 hphysicsconstants.cc:182
 hphysicsconstants.cc:183
 hphysicsconstants.cc:184
 hphysicsconstants.cc:185
 hphysicsconstants.cc:186
 hphysicsconstants.cc:187
 hphysicsconstants.cc:188
 hphysicsconstants.cc:189
 hphysicsconstants.cc:190
 hphysicsconstants.cc:191
 hphysicsconstants.cc:192
 hphysicsconstants.cc:193
 hphysicsconstants.cc:194
 hphysicsconstants.cc:195
 hphysicsconstants.cc:196
 hphysicsconstants.cc:197
 hphysicsconstants.cc:198
 hphysicsconstants.cc:199
 hphysicsconstants.cc:200
 hphysicsconstants.cc:201
 hphysicsconstants.cc:202
 hphysicsconstants.cc:203
 hphysicsconstants.cc:204
 hphysicsconstants.cc:205
 hphysicsconstants.cc:206
 hphysicsconstants.cc:207
 hphysicsconstants.cc:208
 hphysicsconstants.cc:209
 hphysicsconstants.cc:210
 hphysicsconstants.cc:211
 hphysicsconstants.cc:212
 hphysicsconstants.cc:213
 hphysicsconstants.cc:214
 hphysicsconstants.cc:215
 hphysicsconstants.cc:216
 hphysicsconstants.cc:217
 hphysicsconstants.cc:218
 hphysicsconstants.cc:219
 hphysicsconstants.cc:220
 hphysicsconstants.cc:221
 hphysicsconstants.cc:222
 hphysicsconstants.cc:223
 hphysicsconstants.cc:224
 hphysicsconstants.cc:225
 hphysicsconstants.cc:226
 hphysicsconstants.cc:227
 hphysicsconstants.cc:228
 hphysicsconstants.cc:229
 hphysicsconstants.cc:230
 hphysicsconstants.cc:231
 hphysicsconstants.cc:232
 hphysicsconstants.cc:233
 hphysicsconstants.cc:234
 hphysicsconstants.cc:235
 hphysicsconstants.cc:236
 hphysicsconstants.cc:237
 hphysicsconstants.cc:238
 hphysicsconstants.cc:239
 hphysicsconstants.cc:240
 hphysicsconstants.cc:241
 hphysicsconstants.cc:242
 hphysicsconstants.cc:243
 hphysicsconstants.cc:244
 hphysicsconstants.cc:245
 hphysicsconstants.cc:246
 hphysicsconstants.cc:247
 hphysicsconstants.cc:248
 hphysicsconstants.cc:249
 hphysicsconstants.cc:250
 hphysicsconstants.cc:251
 hphysicsconstants.cc:252
 hphysicsconstants.cc:253
 hphysicsconstants.cc:254
 hphysicsconstants.cc:255
 hphysicsconstants.cc:256
 hphysicsconstants.cc:257
 hphysicsconstants.cc:258
 hphysicsconstants.cc:259
 hphysicsconstants.cc:260
 hphysicsconstants.cc:261
 hphysicsconstants.cc:262
 hphysicsconstants.cc:263
 hphysicsconstants.cc:264
 hphysicsconstants.cc:265
 hphysicsconstants.cc:266
 hphysicsconstants.cc:267
 hphysicsconstants.cc:268
 hphysicsconstants.cc:269
 hphysicsconstants.cc:270
 hphysicsconstants.cc:271
 hphysicsconstants.cc:272
 hphysicsconstants.cc:273
 hphysicsconstants.cc:274
 hphysicsconstants.cc:275
 hphysicsconstants.cc:276
 hphysicsconstants.cc:277
 hphysicsconstants.cc:278
 hphysicsconstants.cc:279
 hphysicsconstants.cc:280
 hphysicsconstants.cc:281
 hphysicsconstants.cc:282
 hphysicsconstants.cc:283
 hphysicsconstants.cc:284
 hphysicsconstants.cc:285
 hphysicsconstants.cc:286
 hphysicsconstants.cc:287
 hphysicsconstants.cc:288
 hphysicsconstants.cc:289
 hphysicsconstants.cc:290
 hphysicsconstants.cc:291
 hphysicsconstants.cc:292
 hphysicsconstants.cc:293
 hphysicsconstants.cc:294
 hphysicsconstants.cc:295
 hphysicsconstants.cc:296
 hphysicsconstants.cc:297
 hphysicsconstants.cc:298
 hphysicsconstants.cc:299
 hphysicsconstants.cc:300
 hphysicsconstants.cc:301
 hphysicsconstants.cc:302
 hphysicsconstants.cc:303
 hphysicsconstants.cc:304
 hphysicsconstants.cc:305
 hphysicsconstants.cc:306
 hphysicsconstants.cc:307
 hphysicsconstants.cc:308
 hphysicsconstants.cc:309
 hphysicsconstants.cc:310
 hphysicsconstants.cc:311
 hphysicsconstants.cc:312
 hphysicsconstants.cc:313
 hphysicsconstants.cc:314
 hphysicsconstants.cc:315
 hphysicsconstants.cc:316
 hphysicsconstants.cc:317
 hphysicsconstants.cc:318
 hphysicsconstants.cc:319
 hphysicsconstants.cc:320
 hphysicsconstants.cc:321
 hphysicsconstants.cc:322
 hphysicsconstants.cc:323
 hphysicsconstants.cc:324
 hphysicsconstants.cc:325
 hphysicsconstants.cc:326
 hphysicsconstants.cc:327
 hphysicsconstants.cc:328
 hphysicsconstants.cc:329
 hphysicsconstants.cc:330
 hphysicsconstants.cc:331
 hphysicsconstants.cc:332
 hphysicsconstants.cc:333
 hphysicsconstants.cc:334
 hphysicsconstants.cc:335
 hphysicsconstants.cc:336
 hphysicsconstants.cc:337
 hphysicsconstants.cc:338
 hphysicsconstants.cc:339
 hphysicsconstants.cc:340
 hphysicsconstants.cc:341
 hphysicsconstants.cc:342
 hphysicsconstants.cc:343
 hphysicsconstants.cc:344
 hphysicsconstants.cc:345
 hphysicsconstants.cc:346
 hphysicsconstants.cc:347
 hphysicsconstants.cc:348
 hphysicsconstants.cc:349
 hphysicsconstants.cc:350
 hphysicsconstants.cc:351
 hphysicsconstants.cc:352
 hphysicsconstants.cc:353
 hphysicsconstants.cc:354
 hphysicsconstants.cc:355
 hphysicsconstants.cc:356
 hphysicsconstants.cc:357
 hphysicsconstants.cc:358
 hphysicsconstants.cc:359
 hphysicsconstants.cc:360
 hphysicsconstants.cc:361
 hphysicsconstants.cc:362
 hphysicsconstants.cc:363
 hphysicsconstants.cc:364
 hphysicsconstants.cc:365
 hphysicsconstants.cc:366
 hphysicsconstants.cc:367
 hphysicsconstants.cc:368
 hphysicsconstants.cc:369
 hphysicsconstants.cc:370
 hphysicsconstants.cc:371
 hphysicsconstants.cc:372
 hphysicsconstants.cc:373
 hphysicsconstants.cc:374
 hphysicsconstants.cc:375
 hphysicsconstants.cc:376
 hphysicsconstants.cc:377
 hphysicsconstants.cc:378
 hphysicsconstants.cc:379
 hphysicsconstants.cc:380
 hphysicsconstants.cc:381
 hphysicsconstants.cc:382
 hphysicsconstants.cc:383
 hphysicsconstants.cc:384
 hphysicsconstants.cc:385
 hphysicsconstants.cc:386
 hphysicsconstants.cc:387
 hphysicsconstants.cc:388
 hphysicsconstants.cc:389
 hphysicsconstants.cc:390
 hphysicsconstants.cc:391
 hphysicsconstants.cc:392
 hphysicsconstants.cc:393
 hphysicsconstants.cc:394
 hphysicsconstants.cc:395
 hphysicsconstants.cc:396
 hphysicsconstants.cc:397
 hphysicsconstants.cc:398
 hphysicsconstants.cc:399
 hphysicsconstants.cc:400
 hphysicsconstants.cc:401
 hphysicsconstants.cc:402
 hphysicsconstants.cc:403
 hphysicsconstants.cc:404
 hphysicsconstants.cc:405
 hphysicsconstants.cc:406
 hphysicsconstants.cc:407
 hphysicsconstants.cc:408
 hphysicsconstants.cc:409
 hphysicsconstants.cc:410
 hphysicsconstants.cc:411
 hphysicsconstants.cc:412
 hphysicsconstants.cc:413
 hphysicsconstants.cc:414
 hphysicsconstants.cc:415
 hphysicsconstants.cc:416
 hphysicsconstants.cc:417
 hphysicsconstants.cc:418
 hphysicsconstants.cc:419
 hphysicsconstants.cc:420
 hphysicsconstants.cc:421
 hphysicsconstants.cc:422
 hphysicsconstants.cc:423
 hphysicsconstants.cc:424
 hphysicsconstants.cc:425
 hphysicsconstants.cc:426
 hphysicsconstants.cc:427
 hphysicsconstants.cc:428
 hphysicsconstants.cc:429
 hphysicsconstants.cc:430
 hphysicsconstants.cc:431
 hphysicsconstants.cc:432
 hphysicsconstants.cc:433
 hphysicsconstants.cc:434
 hphysicsconstants.cc:435
 hphysicsconstants.cc:436
 hphysicsconstants.cc:437
 hphysicsconstants.cc:438
 hphysicsconstants.cc:439
 hphysicsconstants.cc:440
 hphysicsconstants.cc:441
 hphysicsconstants.cc:442
 hphysicsconstants.cc:443
 hphysicsconstants.cc:444
 hphysicsconstants.cc:445
 hphysicsconstants.cc:446
 hphysicsconstants.cc:447
 hphysicsconstants.cc:448
 hphysicsconstants.cc:449
 hphysicsconstants.cc:450
 hphysicsconstants.cc:451
 hphysicsconstants.cc:452
 hphysicsconstants.cc:453
 hphysicsconstants.cc:454
 hphysicsconstants.cc:455
 hphysicsconstants.cc:456
 hphysicsconstants.cc:457
 hphysicsconstants.cc:458
 hphysicsconstants.cc:459
 hphysicsconstants.cc:460
 hphysicsconstants.cc:461
 hphysicsconstants.cc:462
 hphysicsconstants.cc:463
 hphysicsconstants.cc:464
 hphysicsconstants.cc:465
 hphysicsconstants.cc:466
 hphysicsconstants.cc:467
 hphysicsconstants.cc:468
 hphysicsconstants.cc:469
 hphysicsconstants.cc:470
 hphysicsconstants.cc:471
 hphysicsconstants.cc:472
 hphysicsconstants.cc:473
 hphysicsconstants.cc:474
 hphysicsconstants.cc:475
 hphysicsconstants.cc:476
 hphysicsconstants.cc:477
 hphysicsconstants.cc:478
 hphysicsconstants.cc:479
 hphysicsconstants.cc:480
 hphysicsconstants.cc:481
 hphysicsconstants.cc:482
 hphysicsconstants.cc:483
 hphysicsconstants.cc:484
 hphysicsconstants.cc:485
 hphysicsconstants.cc:486
 hphysicsconstants.cc:487
 hphysicsconstants.cc:488
 hphysicsconstants.cc:489
 hphysicsconstants.cc:490
 hphysicsconstants.cc:491
 hphysicsconstants.cc:492
 hphysicsconstants.cc:493
 hphysicsconstants.cc:494
 hphysicsconstants.cc:495
 hphysicsconstants.cc:496
 hphysicsconstants.cc:497
 hphysicsconstants.cc:498
 hphysicsconstants.cc:499
 hphysicsconstants.cc:500
 hphysicsconstants.cc:501
 hphysicsconstants.cc:502
 hphysicsconstants.cc:503
 hphysicsconstants.cc:504
 hphysicsconstants.cc:505
 hphysicsconstants.cc:506
 hphysicsconstants.cc:507
 hphysicsconstants.cc:508
 hphysicsconstants.cc:509
 hphysicsconstants.cc:510
 hphysicsconstants.cc:511
 hphysicsconstants.cc:512
 hphysicsconstants.cc:513
 hphysicsconstants.cc:514
 hphysicsconstants.cc:515
 hphysicsconstants.cc:516
 hphysicsconstants.cc:517
 hphysicsconstants.cc:518
 hphysicsconstants.cc:519
 hphysicsconstants.cc:520
 hphysicsconstants.cc:521
 hphysicsconstants.cc:522
 hphysicsconstants.cc:523
 hphysicsconstants.cc:524
 hphysicsconstants.cc:525
 hphysicsconstants.cc:526
 hphysicsconstants.cc:527
 hphysicsconstants.cc:528
 hphysicsconstants.cc:529
 hphysicsconstants.cc:530
 hphysicsconstants.cc:531
 hphysicsconstants.cc:532
 hphysicsconstants.cc:533
 hphysicsconstants.cc:534
 hphysicsconstants.cc:535
 hphysicsconstants.cc:536
 hphysicsconstants.cc:537
 hphysicsconstants.cc:538
 hphysicsconstants.cc:539
 hphysicsconstants.cc:540
 hphysicsconstants.cc:541
 hphysicsconstants.cc:542
 hphysicsconstants.cc:543
 hphysicsconstants.cc:544
 hphysicsconstants.cc:545
 hphysicsconstants.cc:546
 hphysicsconstants.cc:547
 hphysicsconstants.cc:548
 hphysicsconstants.cc:549
 hphysicsconstants.cc:550
 hphysicsconstants.cc:551
 hphysicsconstants.cc:552
 hphysicsconstants.cc:553
 hphysicsconstants.cc:554
 hphysicsconstants.cc:555
 hphysicsconstants.cc:556
 hphysicsconstants.cc:557
 hphysicsconstants.cc:558
 hphysicsconstants.cc:559
 hphysicsconstants.cc:560
 hphysicsconstants.cc:561
 hphysicsconstants.cc:562
 hphysicsconstants.cc:563
 hphysicsconstants.cc:564
 hphysicsconstants.cc:565
 hphysicsconstants.cc:566
 hphysicsconstants.cc:567
 hphysicsconstants.cc:568
 hphysicsconstants.cc:569
 hphysicsconstants.cc:570
 hphysicsconstants.cc:571
 hphysicsconstants.cc:572
 hphysicsconstants.cc:573
 hphysicsconstants.cc:574
 hphysicsconstants.cc:575
 hphysicsconstants.cc:576
 hphysicsconstants.cc:577
 hphysicsconstants.cc:578
 hphysicsconstants.cc:579
 hphysicsconstants.cc:580
 hphysicsconstants.cc:581
 hphysicsconstants.cc:582
 hphysicsconstants.cc:583
 hphysicsconstants.cc:584
 hphysicsconstants.cc:585
 hphysicsconstants.cc:586
 hphysicsconstants.cc:587
 hphysicsconstants.cc:588
 hphysicsconstants.cc:589
 hphysicsconstants.cc:590
 hphysicsconstants.cc:591
 hphysicsconstants.cc:592
 hphysicsconstants.cc:593
 hphysicsconstants.cc:594
 hphysicsconstants.cc:595
 hphysicsconstants.cc:596
 hphysicsconstants.cc:597
 hphysicsconstants.cc:598
 hphysicsconstants.cc:599
 hphysicsconstants.cc:600
 hphysicsconstants.cc:601
 hphysicsconstants.cc:602
 hphysicsconstants.cc:603
 hphysicsconstants.cc:604
 hphysicsconstants.cc:605
 hphysicsconstants.cc:606
 hphysicsconstants.cc:607
 hphysicsconstants.cc:608
 hphysicsconstants.cc:609
 hphysicsconstants.cc:610
 hphysicsconstants.cc:611
 hphysicsconstants.cc:612
 hphysicsconstants.cc:613
 hphysicsconstants.cc:614
 hphysicsconstants.cc:615
 hphysicsconstants.cc:616
 hphysicsconstants.cc:617
 hphysicsconstants.cc:618
 hphysicsconstants.cc:619
 hphysicsconstants.cc:620
 hphysicsconstants.cc:621
 hphysicsconstants.cc:622
 hphysicsconstants.cc:623
 hphysicsconstants.cc:624
 hphysicsconstants.cc:625
 hphysicsconstants.cc:626
 hphysicsconstants.cc:627
 hphysicsconstants.cc:628
 hphysicsconstants.cc:629
 hphysicsconstants.cc:630
 hphysicsconstants.cc:631
 hphysicsconstants.cc:632
 hphysicsconstants.cc:633
 hphysicsconstants.cc:634
 hphysicsconstants.cc:635
 hphysicsconstants.cc:636
 hphysicsconstants.cc:637
 hphysicsconstants.cc:638
 hphysicsconstants.cc:639
 hphysicsconstants.cc:640
 hphysicsconstants.cc:641
 hphysicsconstants.cc:642
 hphysicsconstants.cc:643
 hphysicsconstants.cc:644
 hphysicsconstants.cc:645
 hphysicsconstants.cc:646
 hphysicsconstants.cc:647
 hphysicsconstants.cc:648