Commit f8050021 authored by Lynn Garren's avatar Lynn Garren
Browse files

update PDGtable translations

add isPentaquark
various updates to make verifying translations easier
parent 6f814223
2005-03-16 Lynn Garren <garren@fnal.gov>
2005-03-17 Lynn Garren <garren@fnal.gov>
* fix a bug in the PDG to PDT translations
* use PDG 2004 numbering (only a few changes)
* ParticleID: The isNucleus method will recognize a proton (2212)
as a nuclear fragment.
* ParticleID: The isNucleus() method will recognize a proton (2212)
as a nuclear fragment. Add isPentaquark() method.
* The translation free functions are now in ParticleIDTranslations.hh
which is included in ParticleID.hh. Pythia, Isajet, and Herwig
which is included in ParticleID.hh. Pythia, Isajet, Herwig, and PDG
translation functions use static translation maps.
* examples are now installed
......
// $Id: ParticleDataT.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ParticleDataT.hh,v 1.1.1.1.2.1 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleDataT.hh
......@@ -112,7 +112,10 @@ public:
DDID getDecayData() const { return itsDDID; }
CPDID getCommonParticleData() const { return itsCPDID; }
// write prints all information about a particle INCLUDING its decays
// writeParticleInfo prints all information about a particle EXCEPT its decays
inline void write( std::ostream & os ) const;
inline void writeParticleInfo( std::ostream & os ) const;
// --- booleans:
//
......
// $Id: ParticleDataT.icc,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ParticleDataT.icc,v 1.1.1.1.2.1 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleDataT.icc
......@@ -48,6 +48,12 @@ void ParticleDataT<Config>::write( std::ostream & os ) const
itsDDID->write( os );
}
template< class Config >
void ParticleDataT<Config>::writeParticleInfo( std::ostream & os ) const
{
itsCPDID->write( os );
}
template< class Config >
bool ParticleDataT<Config>::decay( int i, const PT & parent, std::vector<PT> & daughters )
{
......
// $Id: ParticleDataTableT.hh,v 1.1.1.1.2.1 2004/06/23 23:27:07 garren Exp $
// $Id: ParticleDataTableT.hh,v 1.1.1.1.2.2 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleDataTableT.hh
......@@ -69,7 +69,10 @@ public:
inline ParticleData * operator [] ( std::string );
inline ParticleData const * operator [] ( std::string ) const;
// writeParticleData prints all information in the PDT
// writeParticleInfo prints all information about a particle EXCEPT its decays
void writeParticleData( std::ostream & outstr );
void writeParticleInfo( std::ostream & outstr );
void convertTemporaryMap( TempMap & tempPDT, std::ostream & err );
......
// $Id: ParticleDataTableT.icc,v 1.1.1.1.2.2 2004/11/08 20:51:06 garren Exp $
// $Id: ParticleDataTableT.icc,v 1.1.1.1.2.3 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleDataTableT.icc
......@@ -108,8 +108,8 @@ void ParticleDataTableT<Config>::writeParticleData( std::ostream & outstr )
outstr << " ( " << size() << " entries )" << std::endl;
outstr << "PARTICLE NAME ID CHARGE COLOR"
<< " SPIN: J S L"
<< " MASS"
<< " WIDTH"
<< " MASS"
<< " WIDTH"
<< " LIFETIME"
<< std::endl;
// write particle info
......@@ -122,6 +122,31 @@ void ParticleDataTableT<Config>::writeParticleData( std::ostream & outstr )
return;
}
template< class Config >
void ParticleDataTableT<Config>::writeParticleInfo( std::ostream & outstr )
{
// write header
outstr << std::endl;
outstr << "HepPDT-ParticleDataTable-Particle-Information-begin" << std::endl;
outstr << " ***** ParticleDataTable *****" << std::endl;
outstr << " Table Name : " << tableName() << std::endl;
outstr << " ( " << size() << " entries )" << std::endl;
outstr << "PARTICLE NAME ID CHARGE COLOR"
<< " SPIN: J S L"
<< " MASS"
<< " WIDTH"
<< " LIFETIME"
<< std::endl;
// write particle info
const_iterator cit;
for( cit=begin(); cit != end(); ++cit ) {
const ParticleData & pd = cit->second;
pd.writeParticleInfo( outstr );
}
outstr << "HepPDT-ParticleDataTable-Particle-Information-end" << std::endl;
return;
}
template< class Config >
typename ParticleDataTableT<Config>::DDID ParticleDataTableT<Config>::addDecayData( DecayData const & d )
{
......
// $Id: ParticleID.hh,v 1.1.1.1.2.2 2005/03/15 23:57:31 garren Exp $
// $Id: ParticleID.hh,v 1.1.1.1.2.3 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleID.hh
......@@ -86,6 +86,7 @@ public:
bool isHadron( ) const;
bool isLepton( ) const;
bool isNucleus( ) const;
bool isPentaquark( ) const;
//
inline bool hasUp( ) const;
inline bool hasDown( ) const;
......
......@@ -16,12 +16,10 @@ namespace HepPDT {
// translate between generator ID's and standard numbering scheme
int translateQQtoPDT( const int qqID);
int translateGeanttoPDT( const int geantID);
int translatePDGtabletoPDT( const int pdgID);
int translateEvtGentoPDT( const int evtGenID );
int translatePDTtoQQ( const int pid );
int translatePDTtoGeant( const int pid );
int translatePDTtoPDGtable( const int pid );
int translatePDTtoEvtGen( const int pid );
// Herwig translations
......@@ -48,6 +46,14 @@ PDTPythiaMap const & getPDTPythiaMap();
int translatePythiatoPDT( const int pythiaID );
int translatePDTtoPythia( const int pid );
// PDG table translations
typedef std::map< int, int > PDGtoPDTMap;
typedef std::map< int, int > PDTtoPDGMap;
PDGtoPDTMap const & getPDGtoPDTMap();
PDTtoPDGMap const & getPDTtoPDGMap();
int translatePDGtabletoPDT( const int pdgID);
int translatePDTtoPDGtable( const int pid );
} // namespace HepPDT
#endif // PARTICLE_ID_TRANSLATIONS_HH
// $Id: ParticleTranslation.hh,v 1.1.4.1 2004/04/21 23:06:33 garren Exp $
// $Id: ParticleTranslation.hh,v 1.1.4.2 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleTranslation.hh
......@@ -47,6 +47,7 @@ public:
int oid() const { return itsOriginalID; }
inline void write( std::ostream & os ) const;
inline void writeComparison( std::ostream & os ) const;
private:
// --- class-specific data:
......
// $Id: ParticleTranslation.icc,v 1.1.4.1 2004/04/21 23:06:33 garren Exp $
// $Id: ParticleTranslation.icc,v 1.1.4.2 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleTranslation.icc
......@@ -66,4 +66,18 @@ void ParticleTranslation::write( std::ostream & os ) const
return;
}
void ParticleTranslation::writeComparison( std::ostream & os ) const
{
// this is a more compact listing that facilitates checking translations
os << " " ;
os.width(20);
os << itsOriginalName << " " ;
os.width(12);
os << itsOriginalID << " -> " ;
os.width(12);
os << pid() << " " << name() << std::endl;
return;
}
} // HepPDT
......@@ -148,7 +148,7 @@
Pythia: chi_2b 555 HepPDT: chi_b2(1P) 555
Pythia: pomeron 990 HepPDT: pomeron 990
Pythia: dd_1 1103 HepPDT: dd_1 1103
Pythia: dd_1bar -1103 HepPDT: 0
Pythia: dd_1bar -1103 HepPDT: dd_1~ -1103
Pythia: Delta- 1114 HepPDT: Delta- 1114
Pythia: Deltabar+ -1114 HepPDT: Delta~+ -1114
Pythia: ud_0 2101 HepPDT: ud_0 2101
......@@ -160,7 +160,7 @@
Pythia: Delta0 2114 HepPDT: Delta0 2114
Pythia: Deltabar0 -2114 HepPDT: Delta~0 -2114
Pythia: uu_1 2203 HepPDT: uu_1 2203
Pythia: uu_1bar -2203 HepPDT: 0
Pythia: uu_1bar -2203 HepPDT: uu_1~ -2203
Pythia: p+ 2212 HepPDT: p+ 2212
Pythia: pbar- -2212 HepPDT: p~- -2212
Pythia: Delta+ 2214 HepPDT: Delta+ 2214
......@@ -190,7 +190,7 @@
Pythia: Sigma*+ 3224 HepPDT: Sigma*+ 3224
Pythia: Sigma*bar- -3224 HepPDT: Sigma*~- -3224
Pythia: ss_1 3303 HepPDT: ss_1 3303
Pythia: ss_1bar -3303 HepPDT: 0
Pythia: ss_1bar -3303 HepPDT: ss_1~ -3303
Pythia: Xi- 3312 HepPDT: Xi- 3312
Pythia: Xibar+ -3312 HepPDT: Xi~+ -3312
Pythia: Xi*- 3314 HepPDT: Xi*- 3314
......@@ -244,7 +244,7 @@
Pythia: Omega*_c0 4334 HepPDT: Omega*_c0 4334
Pythia: Omega*_cbar0 -4334 HepPDT: Omega*_c~0 -4334
Pythia: cc_1 4403 HepPDT: cc_1 4403
Pythia: cc_1bar -4403 HepPDT: 0
Pythia: cc_1bar -4403 HepPDT: cc_1~ -4403
Pythia: Xi_cc+ 4412 HepPDT: Xi_cc+ 4412
Pythia: Xi_ccbar- -4412 HepPDT: Xi_cc~- -4412
Pythia: Xi*_cc+ 4414 HepPDT: Xi*_cc+ 4414
......@@ -328,7 +328,7 @@
Pythia: Omega*_bcc+ 5444 HepPDT: Omega*_bcc+ 5444
Pythia: Omega*_bccbar- -5444 HepPDT: Omega*_bcc~- -5444
Pythia: bb_1 5503 HepPDT: bb_1 5503
Pythia: bb_1bar -5503 HepPDT: 0
Pythia: bb_1bar -5503 HepPDT: bb_1~ -5503
Pythia: Xi_bb- 5512 HepPDT: Xi_bb- 5512
Pythia: Xi_bbbar+ -5512 HepPDT: Xi_bb~+ -5512
Pythia: Xi*_bb- 5514 HepPDT: Xi*_bb- 5514
......
......@@ -3,7 +3,7 @@ HepPDT-ParticleDataTable-begin
***** ParticleDataTable *****
Table Name :
( 5 entries )
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
W- -24 -1 0 1 0 0 8.03960e+01+/-0.00000e+00 2.0600e+00+/-0.0000e+00 3.1952e-25+/-0.0000e+00
u~ -2 -0.3333 0 0.5 0 0 0.00000e+00+/-0.00000e+00 -1.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
d 1 -0.6667 0 0.5 0 0 0.00000e+00+/-0.00000e+00 -1.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
......
......@@ -3,7 +3,7 @@ HepPDT-ParticleDataTable-begin
***** ParticleDataTable *****
Table Name : EvtGen Table
( 451 entries )
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
anti-alpha -1004002001 -2 0 0 0 0 3.72742e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
anti-He3 -1003002001 -2 0 0.5 0 0 2.80923e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
anti-tritium -1003001001 -1 0 0.5 0 0 2.80925e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
......
......@@ -3,7 +3,7 @@ HepPDT-ParticleDataTable-begin
***** ParticleDataTable *****
Table Name : PDG Table
( 240 entries )
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
t 6 0.6667 0 0.5 0 0 1.74000e+02+/-5.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
e 11 -1 0 0.5 0 0 5.10999e-04+/-2.10000e-11 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
nu(e) 12 0 0 0.5 0 0 0.00000e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
......
......@@ -3,7 +3,7 @@ HepPDT-ParticleDataTable-begin
***** ParticleDataTable *****
Table Name : Pythia Table
( 529 entries )
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
p_diffrbar- -9912212 -1 0 0.5 0 0 0.00000e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
n_diffrbar0 -9912112 0 0 0.5 0 0 0.00000e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
pi_diffr- -9910211 -1 0 0 0 0 0.00000e+00+/-0.00000e+00 0.0000e+00+/-0.0000e+00 0.0000e+00+/-0.0000e+00
......
......@@ -523,7 +523,7 @@ HepPDT-ParticleDataTable-begin
***** ParticleDataTable *****
Table Name : QQ Table
( 386 entries )
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
PARTICLE NAME ID CHARGE COLOR SPIN: J S L MASS WIDTH LIFETIME
A0- -9000211 -1 0 0 0 0 9.82400e-01+/-0.00000e+00 5.7000e-02+/-0.0000e+00 1.1548e-23+/-0.0000e+00
0 0.9
0 0.1
......
......@@ -35,6 +35,7 @@ libCLHEP_HepPDT_@VERSION@_a_SOURCES = \
isLepton.cc \
isMeson.cc \
isNucleus.cc \
isPentaquark.cc \
isValid.cc \
jSpin.cc \
lSpin.cc \
......@@ -52,10 +53,9 @@ libCLHEP_HepPDT_@VERSION@_a_SOURCES = \
translateHerwig.cc \
translateIsajet.cc \
translatePythia.cc \
translatePDGtabletoPDT.cc \
translatePDG.cc \
translatePDTtoEvtGen.cc \
translatePDTtoGeant.cc \
translatePDTtoPDGtable.cc \
translatePDTtoQQ.cc \
translateQQtoPDT.cc \
version.cc \
......
// $Id: ParticleName.cc,v 1.1.4.3 2005/03/17 01:07:01 garren Exp $
// $Id: ParticleName.cc,v 1.1.4.4 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// ParticleName.cc
......@@ -1323,6 +1323,8 @@ ParticleNameMap const & ParticleNameInit()
{ -8874, "Omega*_t't'b'~-" },
{ 8884, "Omega*_t't't'++" },
{ -8884, "Omega*_t't't'~--" },
{ 9221132, "Theta+" },
{ 9331122, "Phi--" },
{ 1001001002, "Hydrogen" },
{ 1002001002, "Deuteron" },
{ 1003001002, "Tritium" },
......@@ -1480,6 +1482,20 @@ void listHepPDTParticleNames( std::ostream & os )
}
}
}
// pentaquarks
for( l=1; l<9; ++l ) {
for ( m=1; m<9; ++m ) {
for( q3=1; q3<9; ++q3) {
for( q2=1; q2<9; ++q2) {
for( q1=1; q1<9; ++q1) {
id = 9*1000000+l*100000+m*10000+1000*q3+100*q2+10*q1+2;
writeParticleNameLine( id, os );
writeParticleNameLine( -id, os );
}
}
}
}
}
// ions
for( i=1; i<3; ++i) {
for( m=1; m<5; ++m) {
......
// $Id: isBaryon.cc,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: isBaryon.cc,v 1.1.1.1.2.1 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// isBaryon.cc
//
// check to see if this is a valid meson
// check to see if this is a valid baryon
//
// ----------------------------------------------------------------------
......
// $Id: isHadron.cc,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: isHadron.cc,v 1.1.1.1.2.1 2005/03/17 22:42:53 garren Exp $
// ----------------------------------------------------------------------
//
// isHadron.cc
......@@ -16,6 +16,7 @@ bool ParticleID::isHadron( ) const
if( extraBits() > 0 ) { return false; }
if( isMeson() ) { return true; }
if( isBaryon() ) { return true; }
if( isPentaquark() ) { return true; }
return false;
}
......
// ----------------------------------------------------------------------
//
// isPentaquark.cc
//
// check to see if this is a valid pentaquark
//
// ----------------------------------------------------------------------
#include "CLHEP/HepPDT/ParticleID.hh"
namespace HepPDT {
bool ParticleID::isPentaquark( ) const
{
// a pentaquark is of the form 9abcdej,
// where j is the spin and a, b, c, d, and e are quarks
if( extraBits() > 0 ) { return false; }
if( digit(n) != 9 ) { return false; }
if( digit(nr) == 9 || digit(nr) == 0 ) { return false; }
if( digit(nj) == 9 || digit(nl) == 0 ) { return false; }
if( digit(nq1) == 0 ) { return false; }
if( digit(nq2) == 0 ) { return false; }
if( digit(nq3) == 0 ) { return false; }
if( digit(nj) == 0 ) { return false; }
// check ordering
if( digit(nq2) > digit(nq1) ) { return false; }
if( digit(nq1) > digit(nl) ) { return false; }
if( digit(nl) > digit(nr) ) { return false; }
return true;
}
} // HepPDT
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment