Skip to content

Commit 1b656c5

Browse files
committed
Extend Monitor_nD_Trace with "pixID" return value.
1 parent ee6fca8 commit 1b656c5

14 files changed

+18
-15
lines changed

mcstas-comps/contrib/PSD_Detector.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,7 @@ TRACE
11181118

11191119
P2=P*P;
11201120

1121-
pp = Monitor_nD_Trace(&DEFS, &Vars, _particle);
1121+
pp = Monitor_nD_Trace(&DEFS, &Vars, NULL, _particle);
11221122
#pragma acc atomic
11231123
Vars.Nsum = Vars.Nsum + 1;
11241124
#pragma acc atomic

mcstas-comps/monitors/Monitor_nD.comp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ TRACE
405405
double t1 = 0;
406406
int pp;
407407
int intersect = 0;
408+
int pixID = -1; // Used to carry pixel ID from trace function to comp scope
408409
char Flag_Restore = 0;
409410

410411
#ifdef OPENACC
@@ -573,7 +574,7 @@ TRACE
573574
p = p * multiplier_capture/1.7985;
574575
}
575576

576-
pp = Monitor_nD_Trace(&DEFS, &Vars, _particle);
577+
pp = Monitor_nD_Trace(&DEFS, &Vars, &pixID, _particle);
577578
if (pp==0.0)
578579
{
579580
ABSORB;

mcstas-comps/monitors/Monitor_nD_noacc.comp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ TRACE
408408
double t1 = 0;
409409
int pp;
410410
int intersect = 0;
411+
int pixID = -1; // Used to carry pixel ID from trace function to comp scope
411412
char Flag_Restore = 0;
412413

413414
#define thread_offdata offdata
@@ -568,7 +569,7 @@ TRACE
568569
p = p * multiplier_capture/1.7985;
569570
}
570571

571-
pp = Monitor_nd_noaccTrace(&DEFS, &Vars, _particle);
572+
pp = Monitor_nd_noaccTrace(&DEFS, &Vars, &pixID, _particle);
572573
if (pp==0.0)
573574
{
574575
ABSORB;

mcstas-comps/monitors/Res_monitor.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ TRACE %{
299299
Vars.UserDoubles[9] = event_pi;
300300
Vars.UserDoubles[10] = event_pf;
301301

302-
Monitor_nD_Trace(&DEFS, &Vars, _particle);
302+
Monitor_nD_Trace(&DEFS, &Vars, NULL, _particle);
303303

304304
/* live calculation */
305305
if(live_calc) {

mcstas-comps/monitors/TOFRes_monitor.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ TRACE %{
299299
Vars.UserDoubles[9] = event_pi;
300300
Vars.UserDoubles[10] = event_pf;
301301

302-
Monitor_nD_Trace(&DEFS, &Vars, _particle);
302+
Monitor_nD_Trace(&DEFS, &Vars, NULL, _particle);
303303

304304
/* live calculation */
305305
if(live_calc) {

mcstas-comps/obsolete/Virtual_output.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ TRACE
117117
Vars.csz = sz;
118118
Vars.ct = t; */
119119

120-
pp = Monitor_nD_Trace(&DEFS, &Vars, _particle);
120+
pp = Monitor_nD_Trace(&DEFS, &Vars, NULL, _particle);
121121

122122
SCATTER;
123123
%}

mcstas-comps/parked/Test_Monitor_Sqw/Monitor_Sqw.comp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ TRACE
273273
Vars.csz = sz;
274274
Vars.ct = t; */
275275

276-
pp = Monitor_nD_Trace(&DEFS, &Vars, _particle);
276+
pp = Monitor_nD_Trace(&DEFS, &Vars, NULL, _particle);
277277
SCATTER;
278278

279279
} /* end if intersection */

mcstas-comps/share/monitor_nd-lib.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ void Monitor_nD_Init(MonitornD_Defines_type *DEFS,
10651065
/* return values: 0=neutron was absorbed, -1=neutron was outside bounds, 1=neutron was measured*/
10661066
/* ========================================================================= */
10671067

1068-
int Monitor_nD_Trace(MonitornD_Defines_type *DEFS, MonitornD_Variables_type *Vars, _class_particle* _particle)
1068+
int Monitor_nD_Trace(MonitornD_Defines_type *DEFS, MonitornD_Variables_type *Vars, int *pixID _class_particle* _particle)
10691069
{
10701070

10711071
double XY=0, pp=0;
@@ -1178,6 +1178,7 @@ int Monitor_nD_Trace(MonitornD_Defines_type *DEFS, MonitornD_Variables_type *Var
11781178
}
11791179
if (!flag_outside) {
11801180
Vars->Mon2D_Buffer[i+While_Buffer*(Vars->Coord_Number+1)] = Coord[i];
1181+
pixID=Coord[i];
11811182
}
11821183
} /* end if PixelID */
11831184
}

mcstas-comps/share/monitor_nd-lib.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@
191191

192192
void Monitor_nD_Init(MonitornD_Defines_type *, MonitornD_Variables_type *, MCNUM, MCNUM, MCNUM, MCNUM, MCNUM, MCNUM, MCNUM, MCNUM, MCNUM, int);
193193
#pragma acc routine
194-
int Monitor_nD_Trace(MonitornD_Defines_type *, MonitornD_Variables_type *, _class_particle* _particle);
194+
int Monitor_nD_Trace(MonitornD_Defines_type *, MonitornD_Variables_type *, int *pixID, _class_particle* _particle);
195195
MCDETECTOR Monitor_nD_Save(MonitornD_Defines_type *, MonitornD_Variables_type *);
196196
void Monitor_nD_Finally(MonitornD_Defines_type *, MonitornD_Variables_type *);
197197
void Monitor_nD_McDisplay(MonitornD_Defines_type *, MonitornD_Variables_type *);

mcstas-comps/share/monitor_nd_noacc-lib.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,6 @@ void Monitor_nd_noaccInit(Monitornd_noaccDefines_type *DEFS,
895895
}
896896

897897
long k,l,m;
898-
899898
if (N_spatial_dims==1) { // 1D case or ND
900899
detector.m=numbins;
901900
detector.n=1;
@@ -990,7 +989,7 @@ void Monitor_nd_noaccInit(Monitornd_noaccDefines_type *DEFS,
990989
/* return values: 0=neutron was absorbed, -1=neutron was outside bounds, 1=neutron was measured*/
991990
/* ========================================================================= */
992991

993-
int Monitor_nd_noaccTrace(Monitornd_noaccDefines_type *DEFS, Monitornd_noaccVariables_type *Vars, _class_particle* _particle)
992+
int Monitor_nd_noaccTrace(Monitornd_noaccDefines_type *DEFS, Monitornd_noaccVariables_type *Vars, int *pixID, _class_particle* _particle)
994993
{
995994

996995
double XY=0, pp=0;
@@ -1103,6 +1102,7 @@ int Monitor_nd_noaccTrace(Monitornd_noaccDefines_type *DEFS, Monitornd_noaccVari
11031102
}
11041103
if (!flag_outside) {
11051104
Vars->Mon2D_Buffer[i+While_Buffer*(Vars->Coord_Number+1)] = Coord[i];
1105+
pixID=Coord[i];
11061106
}
11071107
} /* end if PixelID */
11081108
}

0 commit comments

Comments
 (0)