pythiaでPrimary ParticleのDecay
Tableを反応の末端まで作成し、G4HEPEvt形式で 読ませた場合に、G4DecayのDoIt関数が第一世代の娘粒子までしか追わないという問題を回避した。
ERRORを吐くのはG4Decayで、たとえばBからD-(第一世代娘粒子)に崩壊し、更にD-がPi
(第二世代娘粒子)などに崩壊する、といったDecay Tableを読ませた際に、
" G4Decay::DoIt
: decay table not defined for
D-"
等のErrorが出る。これは読ませたはずの第二世代以降のDecay
Tableが G4DynamicParticleでコピーコンストラクタを用いた際にコピーされないという設計による
(どうやら、わざとそのような設計になっているらしい)。
変更点は、コピーコンストラクタ内で、G4DecayProducts*
thePreAssignedDecayProductsを
newして、コピー元のDecayの情報がコピー先にも受け継がれるようにした点であるが、
この変更が他に悪影響を及ぼさぬか否かは定かではない。
ちなみに、第二世代以降の娘粒子のDecay TableがGeant4の中に定義されている場合は、
そちらのTableを見にいくのでG4DecayのErrorは出ない。