76 :
77 m_intid( a_intid ),
79 m_isAnti( a_intid < 0 ),
80 m_isNuclear( false ),
81 m_AAA( -1 ),
82 m_ZZZ( -1 ),
83 m_III( -1 ),
84 m_nuclearLevelIndex( -1 ),
85 m_metaStableIndex( -1 ),
86 m_generation( -1 ),
87 m_isNeutrino( false ),
88 m_baryonGroup( -1 ),
89 m_baryonId( -1 ),
90 m_familyId( -1 ) {
91
92 int intidAbs = std::abs( a_intid );
93
94 bool nuclearLike = intidAbs / 1000000000 == 0;
95 int family = (intidAbs / 10000000) % 100;
96 int SSSSSSS = intidAbs % 10000000;
97
98 if( nuclearLike ) {
99 m_AAA = intidAbs % 1000;
100 m_ZZZ = intidAbs % 1000000 / 1000;
101 m_III = intidAbs % 1000000000 / 1000000;
102
103 m_nuclearLevelIndex = m_III;
104 if( ( m_III < 500 ) || a_GRIN_mode ) {
106 else {
107 m_nuclearLevelIndex -= 500;
109 } }
110 else {
111 int topFamilyDigid =
family / 10;
112 if( ( topFamilyDigid == 5 ) || ( topFamilyDigid == 6 ) ) {
114 m_AAA = intidAbs % 1000;
115 m_ZZZ = intidAbs % 1000000 / 1000;
116 m_metaStableIndex = intidAbs % 100000000 / 1000000; }
117 else {
118 m_familyId = SSSSSSS;
122 int neutronoFlag = ( SSSSSSS % 100 ) / 10;
123 if( neutronoFlag > 1 ) return;
124
126 m_generation = SSSSSSS % 10;
127 m_isNeutrino = neutronoFlag != 0; }
130 m_baryonGroup = SSSSSSS / 1000000;
131 m_baryonId = SSSSSSS % 1000000; }
136 }
137 }
138 }
139}