34 #define INCLXX_IN_GEANT4_MODE 1 38 #include "G4INCLCascadeAction.hh" 44 CascadeAction::CascadeAction() :
48 CascadeAction::~CascadeAction()
51 void CascadeAction::beforeRunAction(Config
const *
config) {
52 beforeRunDefaultAction(config);
53 beforeRunUserAction(config);
56 void CascadeAction::beforeCascadeAction(IPropagationModel *pm) {
57 beforeCascadeDefaultAction(pm);
58 beforeCascadeUserAction(pm);
61 void CascadeAction::beforePropagationAction(IPropagationModel *pm) {
62 beforePropagationDefaultAction(pm);
63 beforePropagationUserAction(pm);
66 void CascadeAction::beforeAvatarAction(IAvatar *
a, Nucleus *
n) {
67 beforeAvatarDefaultAction(a, n);
68 beforeAvatarUserAction(a, n);
71 void CascadeAction::afterAvatarAction(IAvatar *a, Nucleus *n, FinalState *fs) {
72 afterAvatarDefaultAction(a, n, fs);
73 afterAvatarUserAction(a, n, fs);
76 void CascadeAction::afterPropagationAction(IPropagationModel *pm, IAvatar *avatar) {
77 afterPropagationDefaultAction(pm, avatar);
78 afterPropagationUserAction(pm, avatar);
81 void CascadeAction::afterCascadeAction(Nucleus *n) {
82 afterCascadeDefaultAction(n);
83 afterCascadeUserAction(n);
86 void CascadeAction::afterRunAction() {
87 afterRunDefaultAction();
93 void CascadeAction::beforeRunDefaultAction(Config
const * ) {}
95 void CascadeAction::beforeCascadeDefaultAction(IPropagationModel * ) {}
97 void CascadeAction::beforePropagationDefaultAction(IPropagationModel * ) {
101 void CascadeAction::beforeAvatarDefaultAction(IAvatar *a, Nucleus *n) {
102 n->getStore()->getBook().incrementAvatars(a->getType());
103 INCL_DEBUG(
"Random seeds before avatar " << a->getID() <<
": " 105 INCL_DEBUG(
"Next avatar:" <<
'\n' << a->dump() <<
'\n');
108 void CascadeAction::afterAvatarDefaultAction(IAvatar *a, Nucleus * , FinalState *fs) {
113 INCL_DEBUG(
"Random seeds after avatar " << a->getID() <<
": " 116 ParticleList
const &modified = fs->getModifiedParticles();
117 for(
ParticleIter p=modified.begin(),
e=modified.end(); p!=
e; ++p )
118 if(a->isACollision())
119 (*p)->incrementNumberOfCollisions();
120 else if(a->isADecay())
121 (*p)->incrementNumberOfDecays();
123 ParticleList
const &created = fs->getCreatedParticles();
125 if(a->isACollision())
126 (*p)->incrementNumberOfCollisions();
127 else if(a->isADecay())
128 (*p)->incrementNumberOfDecays();
132 void CascadeAction::afterPropagationDefaultAction(IPropagationModel * ,
136 #ifdef INCL_DEBUG_LOG 141 void CascadeAction::afterCascadeDefaultAction(Nucleus * ) {}
143 void CascadeAction::afterRunDefaultAction() {}
ParticleList::const_iterator ParticleIter