223{
224
225 std::call_once(applyOnce, [this]() { isFirst = true; });
226
228 if (isFirst && nelm !=
numEle) {
231 for (
G4int i=0; i<6; ++i) { fLock[i] =
false; }
232 }
233 l.unlock();
234 }
235 if (fLock[
indexP]) {
return; }
236
237
239 if (fLock[
indexP]) {
return; }
240
244
247 }
248
249 if (
fManager->GetVerboseLevel() > 0 && isFirst) {
251 G4cout <<
"@@@ G4ParticleHPInelastic instantiated for particle "
252 << theProjectile->GetParticleName() << "/n data directory is "
254 }
255
257 for (
G4int i = n0; i < nelm; ++i) {
258 auto clist = new G4ParticleHPChannelList(36, theProjectile);
260 clist->Init((*table)[i],
dirName, theProjectile);
261 clist->Register(new G4ParticleHPNInelasticFS, "F01/");
262 clist->Register(new G4ParticleHPNXInelasticFS, "F02/");
263 clist->Register(new G4ParticleHP2NDInelasticFS, "F03/");
264 clist->Register(new G4ParticleHP2NInelasticFS, "F04/");
265 clist->Register(new G4ParticleHP3NInelasticFS, "F05/");
266 clist->Register(new G4ParticleHPNAInelasticFS, "F06/");
267 clist->Register(new G4ParticleHPN3AInelasticFS, "F07/");
268 clist->Register(new G4ParticleHP2NAInelasticFS, "F08/");
269 clist->Register(new G4ParticleHP3NAInelasticFS, "F09/");
270 clist->Register(new G4ParticleHPNPInelasticFS, "F10/");
271 clist->Register(new G4ParticleHPN2AInelasticFS, "F11/");
272 clist->Register(new G4ParticleHP2N2AInelasticFS, "F12/");
273 clist->Register(new G4ParticleHPNDInelasticFS, "F13/");
274 clist->Register(new G4ParticleHPNTInelasticFS, "F14/");
275 clist->Register(new G4ParticleHPNHe3InelasticFS, "F15/");
276 clist->Register(new G4ParticleHPND2AInelasticFS, "F16/");
277 clist->Register(new G4ParticleHPNT2AInelasticFS, "F17/");
278 clist->Register(new G4ParticleHP4NInelasticFS, "F18/");
279 clist->Register(new G4ParticleHP2NPInelasticFS, "F19/");
280 clist->Register(new G4ParticleHP3NPInelasticFS, "F20/");
281 clist->Register(new G4ParticleHPN2PInelasticFS, "F21/");
282 clist->Register(new G4ParticleHPNPAInelasticFS, "F22/");
283 clist->Register(new G4ParticleHPPInelasticFS, "F23/");
284 clist->Register(new G4ParticleHPDInelasticFS, "F24/");
285 clist->Register(new G4ParticleHPTInelasticFS, "F25/");
286 clist->Register(new G4ParticleHPHe3InelasticFS, "F26/");
287 clist->Register(new G4ParticleHPAInelasticFS, "F27/");
288 clist->Register(new G4ParticleHP2AInelasticFS, "F28/");
289 clist->Register(new G4ParticleHP3AInelasticFS, "F29/");
290 clist->Register(new G4ParticleHP2PInelasticFS, "F30/");
291 clist->Register(new G4ParticleHPPAInelasticFS, "F31/");
292 clist->Register(new G4ParticleHPD2AInelasticFS, "F32/");
293 clist->Register(new G4ParticleHPT2AInelasticFS, "F33/");
294 clist->Register(new G4ParticleHPPDInelasticFS, "F34/");
295 clist->Register(new G4ParticleHPPTInelasticFS, "F35/");
296 clist->Register(new G4ParticleHPDAInelasticFS, "F36/");
297#ifdef G4VERBOSE
298 if (
fManager->GetVerboseLevel() > 1) {
299 G4cout <<
"ParticleHP::Inelastic for "
300 << theProjectile->GetParticleName() << " off "
301 << (*table)[i]->GetName() <<
G4endl;
302 }
303#endif
304 }
306 l.unlock();
307}
G4TemplateAutoLock< G4Mutex > G4AutoLock
static std::size_t GetNumberOfElements()