34#define INCLXX_IN_GEANT4_MODE 1
51 void CascadeAction::beforeRunAction(
Config const *
config) {
52 beforeRunDefaultAction(
config);
56 void CascadeAction::beforeCascadeAction(IPropagationModel *pm) {
57 beforeCascadeDefaultAction(pm);
61 void CascadeAction::beforePropagationAction(IPropagationModel *pm) {
62 beforePropagationDefaultAction(pm);
66 void CascadeAction::beforeAvatarAction(IAvatar *a, Nucleus *n) {
67 beforeAvatarDefaultAction(a, n);
71 void CascadeAction::afterAvatarAction(IAvatar *a, Nucleus *n, FinalState *fs) {
72 afterAvatarDefaultAction(a, n, fs);
76 void CascadeAction::afterPropagationAction(IPropagationModel *pm, IAvatar *avatar) {
77 afterPropagationDefaultAction(pm, avatar);
81 void CascadeAction::afterCascadeAction(Nucleus *n) {
82 afterCascadeDefaultAction(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();
124 for(
ParticleIter p=created.begin(), e=created.end(); p!=e; ++p )
125 if(a->isACollision())
126 (*p)->incrementNumberOfCollisions();
127 else if(a->isADecay())
128 (*p)->incrementNumberOfDecays();
132 void CascadeAction::afterPropagationDefaultAction(IPropagationModel * ,
141 void CascadeAction::afterCascadeDefaultAction(Nucleus * ) {}
143 void CascadeAction::afterRunDefaultAction() {}
Class containing default actions to be performed at intermediate cascade steps.
virtual void afterRunUserAction()
virtual void beforeCascadeUserAction(IPropagationModel *)
virtual void afterCascadeUserAction(Nucleus *)
virtual void beforeRunUserAction(Config const *)
virtual void afterAvatarUserAction(IAvatar *, Nucleus *, FinalState *)
virtual void beforePropagationUserAction(IPropagationModel *)
virtual void afterPropagationUserAction(IPropagationModel *, IAvatar *)
virtual void beforeAvatarUserAction(IAvatar *, Nucleus *)
ParticleList::const_iterator ParticleIter