Skip to content

Commit 0b57bc4

Browse files
authored
Merge pull request #2357 from willend/main
Add ‘allow_backprop’ as _particle member in McXtrace like McStas
2 parents 608eba1 + 9bca1da commit 0b57bc4

7 files changed

Lines changed: 15 additions & 15 deletions

File tree

mccode/src/cogen.c.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1609,9 +1609,9 @@ void def_trace_section(struct instr_def *instr)
16091609
"x", "y", "z", "vx", "vy", "vz",
16101610
"t", "sx", "sy", "sz", "p", "mcgravitation", "mcMagnet", "allow_backprop", "_mctmp_a", "_mctmp_b", "_mctmp_c"
16111611
#elif MCCODE_PROJECT == 2 /* xray */
1612-
#define NUM_STATE_PARS 15
1612+
#define NUM_STATE_PARS 16
16131613
"x", "y", "z", "kx", "ky", "kz",
1614-
"phi", "t", "Ex", "Ey","Ez", "p", "_mctmp_a", "_mctmp_b", "_mctmp_c"
1614+
"phi", "t", "Ex", "Ey","Ez", "p", "allow_backprop", "_mctmp_a", "_mctmp_b", "_mctmp_c"
16151615
#endif
16161616
};
16171617

@@ -2448,11 +2448,11 @@ cogen_header(struct instr_def *instr, char *output_name)
24482448
cout(" double sx,sy,sz; /* spin [0-1] */");
24492449
cout(" int mcgravitation; /* gravity-state */");
24502450
cout(" void *mcMagnet; /* precession-state */");
2451-
cout(" int allow_backprop; /* allow backprop */");
24522451
#elif MCCODE_PROJECT == 2 /* xray */
24532452
cout(" double kx,ky,kz; /* wave-vector */");
24542453
cout(" double phi, Ex,Ey,Ez; /* phase and electrical field */");
24552454
#endif
2455+
cout(" int allow_backprop; /* allow backprop */");
24562456
cout(" /* Generic Temporaries: */");
24572457
cout(" /* May be used internally by components e.g. for special */");
24582458
cout(" /* return-values from functions used in trace, thusreturned via */");

mccode/xlib/share/mcxtrace-r.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ _class_particle mcsetstate(double x, double y, double z, double kx, double ky, d
5151
mcphoton.Ez = Ez;
5252
mcphoton.p = p;
5353
/*mcphoton.mcgravitation = mcgravitation;
54-
mcphoton.mcMagnet = mcMagnet;
55-
mcphoton.allow_backprop = mcallowbackprop;*/
54+
mcphoton.mcMagnet = mcMagnet;*/
55+
mcphoton.allow_backprop = mcallowbackprop;
5656
mcphoton._uid = 0;
5757
mcphoton._index = 1;
5858
mcphoton._absorbed = 0;

mccode/xlib/share/mcxtrace-r.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@
6262

6363
#define ALLOW_BACKPROP \
6464
do { \
65-
mcallowbackprop = 1; \
65+
allow_backprop = 1; \
6666
} while(0)
6767

6868
#define DISALLOW_BACKPROP \
6969
do { \
70-
mcallowbackprop = 0; \
70+
allow_backprop = 0; \
7171
} while(0)
7272

7373
#define PROP_MAGNET(dt) \
@@ -111,7 +111,7 @@
111111
/* ADD: E. Farhi, Aug 6th, 2001 PROP_GRAV_DT propagation with acceleration. */
112112
#define PROP_GRAV_DT(dt, Ax, Ay, Az) \
113113
do { \
114-
if(dt < 0 && mcallowbackprop == 0) { instrument->counter_AbsorbProp[INDEX_CURRENT_COMP]++; ABSORB; }\
114+
if(dt < 0 && allow_backprop == 0) { instrument->counter_AbsorbProp[INDEX_CURRENT_COMP]++; ABSORB; }\
115115
if (mcMagnet) /*printf("Spin precession gravity\n")*/; \
116116
x += vx*(dt) + (Ax)*(dt)*(dt)/2; \
117117
y += vy*(dt) + (Ay)*(dt)*(dt)/2; \
@@ -154,7 +154,7 @@
154154
if(kx == 0) { ABSORB; }; \
155155
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
156156
mc_dl= -x * mc_k / kx; \
157-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
157+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
158158
PROP_DL(mc_dl); \
159159
} while(0)
160160

@@ -170,7 +170,7 @@
170170
if(ky == 0) { ABSORB; }; \
171171
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
172172
mc_dl= -y * mc_k / ky; \
173-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
173+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
174174
PROP_DL(mc_dl); \
175175
} while(0)
176176

@@ -186,7 +186,7 @@
186186
if(kz == 0) { ABSORB; }; \
187187
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
188188
mc_dl= -z * mc_k / kz; \
189-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
189+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
190190
PROP_DL(mc_dl); \
191191
} while(0)
192192

mcxtrace-comps/astrox/MM_c.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ SHARE
104104
if(kz == 0) { ABSORB; }; \
105105
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
106106
mc_dl= ((zz)-z) * mc_k / kz; \
107-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
107+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
108108
PROP_DL(mc_dl); \
109109
} while(0)
110110
#endif

mcxtrace-comps/astrox/MM_p.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ SHARE
115115
if(kz == 0) { ABSORB; }; \
116116
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
117117
mc_dl= ((zz)-z) * mc_k / kz; \
118-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
118+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
119119
PROP_DL(mc_dl); \
120120
} while(0)
121121
#endif

mcxtrace-comps/astrox/Ring_c.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ SHARE
102102
if(kz == 0) { ABSORB; }; \
103103
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
104104
mc_dl= ((zz)-z) * mc_k / kz; \
105-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
105+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
106106
PROP_DL(mc_dl); \
107107
} while(0)
108108
#endif

mcxtrace-comps/astrox/Ring_p.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ SHARE
112112
if(kz == 0) { ABSORB; }; \
113113
mc_k=sqrt(scalar_prod(kx,ky,kz,kx,ky,kz)); \
114114
mc_dl= ((zz)-z) * mc_k / kz; \
115-
if(mc_dl<0 && mcallowbackprop==0) { ABSORB; };\
115+
if(mc_dl<0 && allow_backprop==0) { ABSORB; };\
116116
PROP_DL(mc_dl); \
117117
} while(0)
118118
#endif

0 commit comments

Comments
 (0)