Changeset 3300

Show
Ignore:
Timestamp:
02/02/12 17:57:39 (4 months ago)
Author:
erkn
Message:

split monitor_nD libs into xray and neutron parts

This change to avoid overly complicated structure with lots of
compiler conditionals

Location:
trunk
Files:
2 copied
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/nlib/share/monitor_nd-lib.c

    r3228 r3300  
    799799    if (Vars->Flag_Auto_Limits != 2 || !Vars->Coord_Number) /* Vars->Flag_Auto_Limits == 0 (no auto limits/list) or 1 (store events into Buffer) */ 
    800800    { 
    801 #if defined ( RESTORE_NEUTRON ) 
    802     /*{{{*/ 
    803801      /* automatically compute area and steradian solid angle when in AUTO mode */ 
    804802      /* compute the steradian solid angle incoming on the monitor */ 
     
    927925      } /* end for i */ 
    928926      While_End = 1; 
    929       /*}}}*/     
    930 #elif defined ( RESTORE_XRAY ) 
    931       /* compute values - this is somewhat different for xrays in some cases.*/ 
    932       /*{{{*/ 
    933       /* automatically compute area and steradian solid angle when in AUTO mode */ 
    934       /* compute the steradian solid angle incoming on the monitor */ 
    935       double k; 
    936       k=sqrt(Vars->ckx*Vars->ckx 
    937             +Vars->cky*Vars->cky 
    938             +Vars->ckz*Vars->ckz); 
    939       if (Vars->min_x > Vars->cx) Vars->min_x = Vars->cx; 
    940       if (Vars->max_x < Vars->cx) Vars->max_x = Vars->cx; 
    941       if (Vars->min_y > Vars->cy) Vars->min_y = Vars->cy; 
    942       if (Vars->max_y < Vars->cy) Vars->max_y = Vars->cy; 
    943       Vars->mean_p  += Vars->cp; 
    944       if (k) { 
    945         Vars->mean_dx += Vars->cp*fabs(Vars->ckx/k); 
    946         Vars->mean_dy += Vars->cp*fabs(Vars->cky/k); 
    947       } 
    948       Vars->area =(Vars->max_x-Vars->min_x) 
    949                        *(Vars->max_y-Vars->min_y)*1E4; /* cm2 */ 
    950       if (Vars->Flag_per_st) 
    951       Vars->steradian = 2*fabs(2*atan(Vars->mean_dx/Vars->mean_p) 
    952                                 *sin(2*atan(Vars->mean_dy/Vars->mean_p)/2)); 
    953          
    954       for (i = 0; i <= Vars->Coord_Number; i++) 
    955       { /* handle current neutron : last while */ 
    956         XY = 0; 
    957         Set_Vars_Coord_Type = (Vars->Coord_Type[i] & (DEFS->COORD_LOG-1)); 
    958         /* get values for variables to monitor */ 
    959         if (Set_Vars_Coord_Type == DEFS->COORD_X) XY = Vars->cx; 
    960         else 
    961         if (Set_Vars_Coord_Type == DEFS->COORD_Y) XY = Vars->cy; 
    962         else 
    963         if (Set_Vars_Coord_Type == DEFS->COORD_Z) XY = Vars->cz; 
    964         else 
    965         if (Set_Vars_Coord_Type == DEFS->COORD_VX) XY = Vars->ckx/k*M_C; 
    966         else 
    967         if (Set_Vars_Coord_Type == DEFS->COORD_VY) XY = Vars->cky/k*M_C; 
    968         else 
    969         if (Set_Vars_Coord_Type == DEFS->COORD_VZ) XY = Vars->ckz/k*M_C; 
    970         else 
    971         if (Set_Vars_Coord_Type == DEFS->COORD_KX) XY = Vars->ckx; 
    972         else 
    973         if (Set_Vars_Coord_Type == DEFS->COORD_KY) XY = Vars->cky; 
    974         else 
    975         if (Set_Vars_Coord_Type == DEFS->COORD_KZ) XY = Vars->ckz; 
    976         else 
    977         if (Set_Vars_Coord_Type == DEFS->COORD_SX) XY = Vars->csx; 
    978         else 
    979         if (Set_Vars_Coord_Type == DEFS->COORD_SY) XY = Vars->csy; 
    980         else 
    981         if (Set_Vars_Coord_Type == DEFS->COORD_SZ) XY = Vars->csz; 
    982         else 
    983         if (Set_Vars_Coord_Type == DEFS->COORD_T) XY = Vars->ct; 
    984         else 
    985         if (Set_Vars_Coord_Type == DEFS->COORD_P) XY = Vars->cp; 
    986         else 
    987         if (Set_Vars_Coord_Type == DEFS->COORD_HDIV) XY = RAD2DEG*atan2(Vars->cvx,Vars->cvz); 
    988         else 
    989         if (Set_Vars_Coord_Type == DEFS->COORD_VDIV) XY = RAD2DEG*atan2(Vars->cvy,Vars->cvz); 
    990         else 
    991         if (Set_Vars_Coord_Type == DEFS->COORD_V) XY = M_C; 
    992         else 
    993         if (Set_Vars_Coord_Type == DEFS->COORD_RADIUS)  
    994           XY = sqrt(Vars->cx*Vars->cx+Vars->cy*Vars->cy+Vars->cz*Vars->cz); 
    995         else 
    996         if (Set_Vars_Coord_Type == DEFS->COORD_XY)  
    997           XY = sqrt(Vars->cx*Vars->cx+Vars->cy*Vars->cy)*(Vars->cx > 0 ? 1 : -1); 
    998         else 
    999         if (Set_Vars_Coord_Type == DEFS->COORD_YZ) XY = sqrt(Vars->cy*Vars->cy+Vars->cz*Vars->cz); 
    1000         else 
    1001         if (Set_Vars_Coord_Type == DEFS->COORD_XZ)  
    1002           XY = sqrt(Vars->cx*Vars->cx+Vars->cz*Vars->cz); 
    1003         else 
    1004         if (Set_Vars_Coord_Type == DEFS->COORD_VXY) XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy); 
    1005         else 
    1006         if (Set_Vars_Coord_Type == DEFS->COORD_VXZ) XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvz*Vars->cvz); 
    1007         else 
    1008         if (Set_Vars_Coord_Type == DEFS->COORD_VYZ) XY = sqrt(Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz); 
    1009         else 
    1010         if (Set_Vars_Coord_Type == DEFS->COORD_K) XY = k;//sqrt(Vars->ckx*Vars->ckx+Vars->cky*Vars->cvy+Vars->ckz*Vars->ckz); 
    1011         else 
    1012         if (Set_Vars_Coord_Type == DEFS->COORD_KXY) XY = sqrt(Vars->ckx*Vars->ckx+Vars->cky*Vars->cky); 
    1013         else 
    1014         if (Set_Vars_Coord_Type == DEFS->COORD_KXZ) XY = sqrt(Vars->ckx*Vars->ckx+Vars->ckz*Vars->ckz); 
    1015         else 
    1016         if (Set_Vars_Coord_Type == DEFS->COORD_KYZ) XY = sqrt(Vars->cky*Vars->cky+Vars->ckz*Vars->ckz); 
    1017         else 
    1018         if (Set_Vars_Coord_Type == DEFS->COORD_ENERGY) XY = k*K2E; 
    1019         else 
    1020           if (Set_Vars_Coord_Type == DEFS->COORD_LAMBDA) { if (k!=0) XY = 2*M_PI; } // { sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz);  XY *= V2K; if (XY != 0) XY = 2*PI/XY; }  
    1021         else 
    1022         if (Set_Vars_Coord_Type == DEFS->COORD_NCOUNT) XY = Coord[i]+1; 
    1023         else 
    1024         if (Set_Vars_Coord_Type == DEFS->COORD_ANGLE) 
    1025         {  XY = sqrt(Vars->ckx*Vars->ckx+Vars->cky*Vars->cky); 
    1026            if (Vars->ckz != 0) 
    1027                 XY = RAD2DEG*atan2(XY,Vars->ckz)*(Vars->cx > 0 ? 1 : -1); 
    1028            else XY = 0; 
    1029         } 
    1030         else 
    1031         if (Set_Vars_Coord_Type == DEFS->COORD_THETA)  { if (Vars->cz != 0) XY = RAD2DEG*atan2(Vars->cx,Vars->cz); } 
    1032         else 
    1033         if (Set_Vars_Coord_Type == DEFS->COORD_PHI) { if (Vars->cz != 0) XY = RAD2DEG*asin(Vars->cy/Vars->cz); } 
    1034         else 
    1035         if (Set_Vars_Coord_Type == DEFS->COORD_USER1) XY = Vars->UserVariable1; 
    1036         else 
    1037         if (Set_Vars_Coord_Type == DEFS->COORD_USER2) XY = Vars->UserVariable2; 
    1038         else 
    1039         if (Set_Vars_Coord_Type == DEFS->COORD_USER3) XY = Vars->UserVariable3; 
    1040         else 
    1041         XY = 0; 
    1042         /* handle 'abs' and 'log' keywords */ 
    1043         if (Vars->Coord_Type[i] & DEFS->COORD_ABS) XY=fabs(XY); 
    1044  
    1045         if (i && (Vars->Coord_Type[i] & DEFS->COORD_LOG)) /* not for the flux */ 
    1046         {  if (XY > 0) XY = log(XY)/log(10); 
    1047            else XY = -100; } 
    1048  
    1049         Coord[i] = XY; 
    1050         if (i == 0) { pp = XY; Coord_Index[i] = 0; } 
    1051         else if (!Vars->Flag_Auto_Limits) 
    1052         { /* compute index in histograms for each variable to monitor */ 
    1053           XY = (Vars->Coord_Max[i]-Vars->Coord_Min[i]); 
    1054           if (XY > 0) Coord_Index[i] = floor((Coord[i]-Vars->Coord_Min[i])*Vars->Coord_Bin[i]/XY); 
    1055           else Coord_Index[i] = 0; 
    1056           if (Vars->Flag_With_Borders) 
    1057           { 
    1058             if (Coord_Index[i] < 0) Coord_Index[i] = 0; 
    1059             if (Coord_Index[i] >= Vars->Coord_Bin[i]) Coord_Index[i] = Vars->Coord_Bin[i] - 1; 
    1060           } 
    1061         } /* else will get Index later from Buffer when Flag_Auto_Limits == 2 */ 
    1062       } /* end for i */ 
    1063       /*}}}*/ 
    1064       While_End = 1; 
    1065 #endif 
    1066927    }/* end else if Vars->Flag_Auto_Limits == 2 */ 
    1067928 
  • trunk/xlib/share/monitor_nd-lib.c

    r3228 r3300  
    7474    DEFS->COORD_VZ     =6; 
    7575    DEFS->COORD_V      =16; 
     76    DEFS->COORD_PHASE  =36; 
    7677    DEFS->COORD_T      =7; 
    7778    DEFS->COORD_P      =8; 
    78     DEFS->COORD_SX     =9; 
    79     DEFS->COORD_SY     =10; 
    80     DEFS->COORD_SZ     =11; 
     79    DEFS->COORD_EX     =9; 
     80    DEFS->COORD_EY     =10; 
     81    DEFS->COORD_EZ     =11; 
    8182    DEFS->COORD_KX     =12; 
    8283    DEFS->COORD_KY     =13; 
     
    103104    DEFS->COORD_KYZ    =33; 
    104105    DEFS->COORD_KXZ    =35; 
    105      
    106106     
    107107 
     
    348348        if (!strcmp(token, "t") || !strcmp(token, "time")) 
    349349          { Set_Vars_Coord_Type = DEFS->COORD_T; strcpy(Set_Vars_Coord_Label,"TOF [s]"); strcpy(Set_Vars_Coord_Var,"t"); lmin = 0; lmax = .1; } 
     350        if (!strcmp(token, "phase")) 
     351        { Set_Vars_Coord_Type = DEFS->COORD_T; strcpy(Set_Vars_Coord_Label,"phase [rad]"); strcpy(Set_Vars_Coord_Var,"phi"); lmin = 0; lmax = 2*M_PI; } 
    350352        if ((!strcmp(token, "p") || !strcmp(token, "i") || !strcmp(token, "intensity") || !strcmp(token, "flux"))) 
    351353          { Set_Vars_Coord_Type = DEFS->COORD_P; 
     
    378380        if (!strcmp(token, "sz")) 
    379381          { Set_Vars_Coord_Type = DEFS->COORD_SZ; strcpy(Set_Vars_Coord_Label,"sz [1]"); strcpy(Set_Vars_Coord_Var,"sz"); lmin = -1; lmax = 1; } 
     382        if (!strcmp(token, "Ex")) 
     383          { Set_Vars_Coord_Type = DEFS->COORD_EX; strcpy(Set_Vars_Coord_Label,"Ex [1]"); strcpy(Set_Vars_Coord_Var,"Ex"); lmin = -1; lmax = 1; } 
     384        if (!strcmp(token, "Ey")) 
     385          { Set_Vars_Coord_Type = DEFS->COORD_EY; strcpy(Set_Vars_Coord_Label,"Ey [1]"); strcpy(Set_Vars_Coord_Var,"Ey"); lmin = -1; lmax = 1; } 
     386        if (!strcmp(token, "Ez")) 
     387          { Set_Vars_Coord_Type = DEFS->COORD_EZ; strcpy(Set_Vars_Coord_Label,"Ez [1]"); strcpy(Set_Vars_Coord_Var,"Ez"); lmin = -1; lmax = 1; } 
    380388 
    381389        if (!strcmp(token, "energy") || !strcmp(token, "omega") || !strcmp(token, "e")) 
    382           { Set_Vars_Coord_Type = DEFS->COORD_ENERGY; strcpy(Set_Vars_Coord_Label,"Energy [meV]"); strcpy(Set_Vars_Coord_Var,"E"); lmin = 0; lmax = 100; } 
     390          { Set_Vars_Coord_Type = DEFS->COORD_ENERGY; strcpy(Set_Vars_Coord_Label,"Energy [keV]"); strcpy(Set_Vars_Coord_Var,"E"); lmin = 0; lmax = 100; } 
    383391        if (!strcmp(token, "lambda") || !strcmp(token, "wavelength") || !strcmp(token, "l")) 
    384392          { Set_Vars_Coord_Type = DEFS->COORD_LAMBDA; strcpy(Set_Vars_Coord_Label,"Wavelength [Angs]"); strcpy(Set_Vars_Coord_Var,"L"); lmin = 0; lmax = 100; } 
     
    411419        if (!strcmp(token, "theta") || !strcmp(token, "longitude") || !strcmp(token, "th")) 
    412420          { Set_Vars_Coord_Type = DEFS->COORD_THETA; strcpy(Set_Vars_Coord_Label,"Longitude [deg]"); strcpy(Set_Vars_Coord_Var,"th"); lmin = -180; lmax = 180; } 
    413         if (!strcmp(token, "phi") || !strcmp(token, "lattitude") || !strcmp(token, "ph")) 
    414           { Set_Vars_Coord_Type = DEFS->COORD_PHI; strcpy(Set_Vars_Coord_Label,"Lattitude [deg]"); strcpy(Set_Vars_Coord_Var,"ph"); lmin = -180; lmax = 180; } 
     421        if (!strcmp(token, "phi") || !strcmp(token, "latitude") || !strcmp(token, "ph")) 
     422          { Set_Vars_Coord_Type = DEFS->COORD_PHI; strcpy(Set_Vars_Coord_Label,"Latitude [deg]"); strcpy(Set_Vars_Coord_Var,"ph"); lmin = -180; lmax = 180; } 
    415423        if (!strcmp(token, "ncounts") || !strcmp(token, "n")) 
    416424          { Set_Vars_Coord_Type = DEFS->COORD_NCOUNT; strcpy(Set_Vars_Coord_Label,"Neutrons [1]"); strcpy(Set_Vars_Coord_Var,"n"); lmin = 0; lmax = 1e10; } 
     
    515523       strcpy(Short_Label[i],"Wavevector"); 
    516524      else 
     525      if ((Set_Vars_Coord_Type == DEFS->COORD_EX) 
     526       || (Set_Vars_Coord_Type == DEFS->COORD_EY) 
     527       || (Set_Vars_Coord_Type == DEFS->COORD_EZ)) 
     528        strcpy(Short_Label[i],"Polarisation"); 
     529      else 
    517530      if ((Set_Vars_Coord_Type == DEFS->COORD_SX) 
    518531       || (Set_Vars_Coord_Type == DEFS->COORD_SY) 
     
    531544      else 
    532545      if (Set_Vars_Coord_Type == DEFS->COORD_NCOUNT) 
    533        strcpy(Short_Label[i],"Neutron counts"); 
     546       strcpy(Short_Label[i],"Photon counts"); 
    534547      else 
    535548      if (Set_Vars_Coord_Type == DEFS->COORD_T) 
    536549          strcpy(Short_Label[i],"Time Of Flight"); 
     550      else 
     551      if (Set_Vars_Coord_Type == DEFS->COORD_PHASE) 
     552          strcpy(Short_Label[i],"Phase"); 
    537553      else 
    538554      if (Set_Vars_Coord_Type == DEFS->COORD_P) 
     
    799815    if (Vars->Flag_Auto_Limits != 2 || !Vars->Coord_Number) /* Vars->Flag_Auto_Limits == 0 (no auto limits/list) or 1 (store events into Buffer) */ 
    800816    { 
    801 #if defined ( RESTORE_NEUTRON ) 
    802     /*{{{*/ 
    803       /* automatically compute area and steradian solid angle when in AUTO mode */ 
    804       /* compute the steradian solid angle incoming on the monitor */ 
    805       double v; 
    806       v=sqrt(Vars->cvx*Vars->cvx 
    807             +Vars->cvy*Vars->cvy 
    808             +Vars->cvz*Vars->cvz); 
    809       if (Vars->min_x > Vars->cx) Vars->min_x = Vars->cx; 
    810       if (Vars->max_x < Vars->cx) Vars->max_x = Vars->cx; 
    811       if (Vars->min_y > Vars->cy) Vars->min_y = Vars->cy; 
    812       if (Vars->max_y < Vars->cy) Vars->max_y = Vars->cy; 
    813       Vars->mean_p  += Vars->cp; 
    814       if (v) { 
    815         Vars->mean_dx += Vars->cp*fabs(Vars->cvx/v); 
    816         Vars->mean_dy += Vars->cp*fabs(Vars->cvy/v); 
    817       } 
    818          
    819       for (i = 0; i <= Vars->Coord_Number; i++) 
    820       { /* handle current neutron : last while */ 
    821         XY = 0; 
    822         Set_Vars_Coord_Type = (Vars->Coord_Type[i] & (DEFS->COORD_LOG-1)); 
    823         /* get values for variables to monitor */ 
    824         if (Set_Vars_Coord_Type == DEFS->COORD_X) XY = Vars->cx; 
    825         else 
    826         if (Set_Vars_Coord_Type == DEFS->COORD_Y) XY = Vars->cy; 
    827         else 
    828         if (Set_Vars_Coord_Type == DEFS->COORD_Z) XY = Vars->cz; 
    829         else 
    830         if (Set_Vars_Coord_Type == DEFS->COORD_VX) XY = Vars->cvx; 
    831         else 
    832         if (Set_Vars_Coord_Type == DEFS->COORD_VY) XY = Vars->cvy; 
    833         else 
    834         if (Set_Vars_Coord_Type == DEFS->COORD_VZ) XY = Vars->cvz; 
    835         else 
    836         if (Set_Vars_Coord_Type == DEFS->COORD_KX) XY = V2K*Vars->cvx; 
    837         else 
    838         if (Set_Vars_Coord_Type == DEFS->COORD_KY) XY = V2K*Vars->cvy; 
    839         else 
    840         if (Set_Vars_Coord_Type == DEFS->COORD_KZ) XY = V2K*Vars->cvz; 
    841         else 
    842         if (Set_Vars_Coord_Type == DEFS->COORD_SX) XY = Vars->csx; 
    843         else 
    844         if (Set_Vars_Coord_Type == DEFS->COORD_SY) XY = Vars->csy; 
    845         else 
    846         if (Set_Vars_Coord_Type == DEFS->COORD_SZ) XY = Vars->csz; 
    847         else 
    848         if (Set_Vars_Coord_Type == DEFS->COORD_T) XY = Vars->ct; 
    849         else 
    850         if (Set_Vars_Coord_Type == DEFS->COORD_P) XY = Vars->cp; 
    851         else 
    852         if (Set_Vars_Coord_Type == DEFS->COORD_HDIV) XY = RAD2DEG*atan2(Vars->cvx,Vars->cvz); 
    853         else 
    854         if (Set_Vars_Coord_Type == DEFS->COORD_VDIV) XY = RAD2DEG*atan2(Vars->cvy,Vars->cvz); 
    855         else 
    856         if (Set_Vars_Coord_Type == DEFS->COORD_V) XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz); 
    857         else 
    858         if (Set_Vars_Coord_Type == DEFS->COORD_RADIUS)  
    859           XY = sqrt(Vars->cx*Vars->cx+Vars->cy*Vars->cy+Vars->cz*Vars->cz); 
    860         else 
    861         if (Set_Vars_Coord_Type == DEFS->COORD_XY)  
    862           XY = sqrt(Vars->cx*Vars->cx+Vars->cy*Vars->cy)*(Vars->cx > 0 ? 1 : -1); 
    863         else 
    864         if (Set_Vars_Coord_Type == DEFS->COORD_YZ) XY = sqrt(Vars->cy*Vars->cy+Vars->cz*Vars->cz); 
    865         else 
    866         if (Set_Vars_Coord_Type == DEFS->COORD_XZ)  
    867           XY = sqrt(Vars->cx*Vars->cx+Vars->cz*Vars->cz); 
    868         else 
    869         if (Set_Vars_Coord_Type == DEFS->COORD_VXY) XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy); 
    870         else 
    871         if (Set_Vars_Coord_Type == DEFS->COORD_VXZ) XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvz*Vars->cvz); 
    872         else 
    873         if (Set_Vars_Coord_Type == DEFS->COORD_VYZ) XY = sqrt(Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz); 
    874         else 
    875         if (Set_Vars_Coord_Type == DEFS->COORD_K) { XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz);  XY *= V2K; } 
    876         else 
    877         if (Set_Vars_Coord_Type == DEFS->COORD_KXY) { XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy);  XY *= V2K; } 
    878         else 
    879         if (Set_Vars_Coord_Type == DEFS->COORD_KXZ) { XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvz*Vars->cvz);  XY *= V2K; } 
    880         else 
    881         if (Set_Vars_Coord_Type == DEFS->COORD_KYZ) { XY = sqrt(Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz);  XY *= V2K; } 
    882         else 
    883         if (Set_Vars_Coord_Type == DEFS->COORD_ENERGY) { XY = Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz;  XY *= VS2E; } 
    884         else 
    885         if (Set_Vars_Coord_Type == DEFS->COORD_LAMBDA) { XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy+Vars->cvz*Vars->cvz);  XY *= V2K; if (XY != 0) XY = 2*PI/XY; } 
    886         else 
    887         if (Set_Vars_Coord_Type == DEFS->COORD_NCOUNT) XY = Coord[i]+1; 
    888         else 
    889         if (Set_Vars_Coord_Type == DEFS->COORD_ANGLE) 
    890         {  XY = sqrt(Vars->cvx*Vars->cvx+Vars->cvy*Vars->cvy); 
    891            if (Vars->cvz != 0) 
    892                 XY = RAD2DEG*atan2(XY,Vars->cvz)*(Vars->cx > 0 ? 1 : -1); 
    893            else XY = 0; 
    894         } 
    895         else 
    896         if (Set_Vars_Coord_Type == DEFS->COORD_THETA)  { if (Vars->cz != 0) XY = RAD2DEG*atan2(Vars->cx,Vars->cz); } 
    897         else 
    898         if (Set_Vars_Coord_Type == DEFS->COORD_PHI) { if (Vars->cz != 0) XY = RAD2DEG*asin(Vars->cy/Vars->cz); } 
    899         else 
    900         if (Set_Vars_Coord_Type == DEFS->COORD_USER1) XY = Vars->UserVariable1; 
    901         else 
    902         if (Set_Vars_Coord_Type == DEFS->COORD_USER2) XY = Vars->UserVariable2; 
    903         else 
    904         if (Set_Vars_Coord_Type == DEFS->COORD_USER3) XY = Vars->UserVariable3; 
    905         else 
    906         XY = 0; 
    907         /* handle 'abs' and 'log' keywords */ 
    908         if (Vars->Coord_Type[i] & DEFS->COORD_ABS) XY=fabs(XY); 
    909  
    910         if (i && (Vars->Coord_Type[i] & DEFS->COORD_LOG)) /* not for the flux */ 
    911         {  if (XY > 0) XY = log(XY)/log(10); 
    912            else XY = -100; } 
    913  
    914         Coord[i] = XY; 
    915         if (i == 0) { pp = XY; Coord_Index[i] = 0; } 
    916         else if (!Vars->Flag_Auto_Limits) 
    917         { /* compute index in histograms for each variable to monitor */ 
    918           XY = (Vars->Coord_Max[i]-Vars->Coord_Min[i]); 
    919           if (XY > 0) Coord_Index[i] = floor((Coord[i]-Vars->Coord_Min[i])*Vars->Coord_Bin[i]/XY); 
    920           else Coord_Index[i] = 0; 
    921           if (Vars->Flag_With_Borders) 
    922           { 
    923             if (Coord_Index[i] < 0) Coord_Index[i] = 0; 
    924             if (Coord_Index[i] >= Vars->Coord_Bin[i]) Coord_Index[i] = Vars->Coord_Bin[i] - 1; 
    925           } 
    926         } /* else will get Index later from Buffer when Flag_Auto_Limits == 2 */ 
    927       } /* end for i */ 
    928       While_End = 1; 
    929       /*}}}*/     
    930 #elif defined ( RESTORE_XRAY ) 
    931817      /* compute values - this is somewhat different for xrays in some cases.*/ 
    932818      /*{{{*/ 
     
    981867        if (Set_Vars_Coord_Type == DEFS->COORD_SZ) XY = Vars->csz; 
    982868        else 
     869        if (Set_Vars_Coord_Type == DEFS->COORD_PHASE) XY = Vars->cphi; 
     870        else 
    983871        if (Set_Vars_Coord_Type == DEFS->COORD_T) XY = Vars->ct; 
    984872        else 
     
    1063951      /*}}}*/ 
    1064952      While_End = 1; 
    1065 #endif 
    1066953    }/* end else if Vars->Flag_Auto_Limits == 2 */ 
    1067954 
  • trunk/xlib/share/monitor_nd-lib.h

    r3226 r3300  
    6868    int COORD_XZ    ; 
    6969    int COORD_YZ    ; 
    70  
     70    int COORD_PHASE ; 
     71  
    7172    /* token modifiers */ 
    7273    int COORD_VAR   ; /* next token should be a variable or normal option */ 
     
    7677    int COORD_FIL   ; /* next token is a filename */ 
    7778    int COORD_EVNT  ; /* next token is a buffer size value */ 
    78     int COORD_3HE   ; /* next token is a 3He pressure value */ 
     79    //int COORD_3HE   ; /* next token is a 3He pressure value */ 
    7980    int COORD_LOG   ; /* next variable will be in log scale */ 
    8081    int COORD_ABS   ; /* next variable will be in abs scale */ 
     
    106107    char   Flag_Auto_Limits  ;   /* get limits from first Buffer */ 
    107108    char   Flag_Absorb       ;   /* monitor is also a slit */ 
    108     char   Flag_Exclusive    ;   /* absorb neutrons out of monitor limits */ 
     109    char   Flag_Exclusive    ;   /* absorb particles out of monitor limits */ 
    109110    char   Flag_per_cm2      ;   /* flux is per cm2 */ 
    110111    char   Flag_log          ;   /* log10 of the flux */ 
     
    116117    long   Coord_Number      ;   /* total number of variables to monitor, plus intensity (0) */ 
    117118    long   Buffer_Block      ;   /* Buffer size for list or auto limits */ 
    118     long   Neutron_Counter   ;   /* event counter, simulation total counts is mcget_ncount() */ 
     119    long   Photon_Counter    ;   /* event counter, simulation total counts is mcget_ncount() */ 
    119120    long   Buffer_Counter    ;   /* index in Buffer size (for realloc) */ 
    120121    long   Buffer_Size       ; 
     
    131132    double cvx, cvy, cvz; 
    132133    double ckx, cky, ckz; 
    133     double csx, csy, csz; 
    134134    double cEx, cEy, cEz; 
    135     double cs1, cs2, ct, cphi, cp; 
     135    double ct, cphi, cp; 
    136136    double He3_pressure; 
    137     char   Flag_UsePreMonitor    ;   /* use a previously stored neutron parameter set */ 
     137    char   Flag_UsePreMonitor    ;   /* use a previously stored parameter set */ 
    138138    char   UserName1[128]; 
    139139    char   UserName2[128]; 
     
    180180#endif 
    181181 
     182 
     183 
    182184/* end of monitor_nd-lib.h */