Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions mccode/nlib/share/mcstas-r.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,20 @@ _class_particle mcgetstate(_class_particle mcneutron, double *x, double *y, doub
return(mcneutron);
} /* mcgetstate */

/*******************************************************************************
* SCATTER_func: provides function to SCATTER from within libaries
*******************************************************************************/
void SCATTER_func(_class_particle *_particle) {
if(mcdotrace) {
printf("SCATTER: %g, %g, %g, %g, %g, %g, %g, %g, %g, %g, %g\n",
_particle->x,_particle->y,_particle->z,
_particle->vx,_particle->vy,_particle->vz,
_particle->t,
_particle->sx,_particle->sy,_particle->sz,
_particle->p);
}
if (!_particle->_absorbed) _particle->_scattered++;
} /* SCATTER_func */

/*******************************************************************************
* mcgenstate: set default neutron parameters
Expand Down
2 changes: 2 additions & 0 deletions mccode/nlib/share/mcstas-r.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@
#define SCATTER0 do {DEBUG_SCATTER(); SCATTERED++;} while(0)
#define SCATTER SCATTER0

void SCATTER_func(_class_particle *_particle); /* provides function to SCATTER from within libaries */

#define JUMPTOCOMP(comp) mcneutron->_index = INDEX_COMP(comp);

#define MAGNET_ON \
Expand Down
14 changes: 14 additions & 0 deletions mccode/xlib/share/mcxtrace-r.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,20 @@ _class_particle mcgetstate(_class_particle mcphoton, double *x, double *y, doubl
return(mcphoton);
} /* mcgetstate */

/*******************************************************************************
* SCATTER_func: provides function to SCATTER from within libaries
*******************************************************************************/
void SCATTER_func(_class_particle *_particle) {
if(mcdotrace) {
printf("SCATTER: %g, %g, %g, %g, %g, %g, %g, %g, %g, %g, %g, %g\n",
_particle->x,_particle->y,_particle->z,
_particle->kx,_particle->ky,_particle->kz,
_particle->phi,_particle->t,
_particle->Ex,_particle->Ey,_particle->Ez,
_particle->p);
}
if (!_particle->_absorbed) _particle->_scattered++;
} /* SCATTER_func */

/*******************************************************************************
* mcgenstate: set default photon parameters
Expand Down
2 changes: 2 additions & 0 deletions mccode/xlib/share/mcxtrace-r.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
#define SCATTER0 do {DEBUG_SCATTER(); SCATTERED++;} while(0)
#define SCATTER SCATTER0

void SCATTER_func(_class_particle *_particle); /* provides function to SCATTER from within libaries */

#define JUMPTOCOMP(comp) mcphoton->_index = INDEX_COMP(comp);

/*magnet stuff is probably redundant*/
Expand Down
6 changes: 5 additions & 1 deletion mcstas-comps/share/conic.h
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,9 @@ void traceNeutronDisk(_class_particle* p, Disk d) {
return;

move_class_particleT(t, p);

SCATTER_func(p);

if (d.absorb)
absorb_class_particle(p);
}
Expand Down Expand Up @@ -1702,6 +1705,7 @@ void traceNeutronConic(_class_particle* _particle, ConicSurf c) {
return;
else {
move_class_particleT(t, _particle);
SCATTER_func(_particle);
double ga = reflectNeutronConic(_particle, c);
#if REC_MAX_GA
if (ga > c.max_ga) {
Expand All @@ -1725,7 +1729,7 @@ void traceNeutronFlat(_class_particle* _particle, FlatSurf f) {
else {

move_class_particleT(t, _particle);

SCATTER_func(_particle);
double ga = reflectNeutronFlat(_particle, f);

#if REC_MAX_GA
Expand Down
Loading