Ignore:
Timestamp:
Feb 11, 2019 2:44:55 PM (4 years ago)
Author:
srkline
Message:

corrected compiling issue with version 7.87

Fixed logic in defining sector mask
Added mask for Annular average

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Sector_Average.ipf

    r1124 r1126  
    5353        Variable yDim=DimSize(phi, 1) 
    5454 
    55         Variable ii,jj,isIn,forward,mirror 
    56          
    57 // initialize the mask to keep everything 
    58         overlay = 0 
    59  
     55        Variable ii,jj,exclude,mirror_phiCtr,crossZero 
     56         
     57// does the +- delta cross 0? 
     58        crossZero = 0 
     59        if((phiCtr - delta) < 0) 
     60                crossZero = 1 
     61        endif 
     62        if((phiCtr + delta) > 2*pi) 
     63                crossZero = 1 
     64        endif 
     65// if "both", what is the mirror_phiCtr? 
     66        if(cmpstr(side,"both")==0) 
     67                if(phiCtr < pi) 
     68                        mirror_phiCtr = phiCtr + pi 
     69                else 
     70                        mirror_phiCtr = phiCtr - pi 
     71                endif 
     72        endif 
     73 
     74// initialize the mask to == 1 == exclude everything 
     75        overlay = 1 
     76 
     77 
     78// now give every opportunity to keep pixel in 
    6079        for(ii=0;ii<xDim;ii+=1) 
    6180                for(jj=0;jj<yDim;jj+=1) 
    6281                        //qTot = sqrt(qx[ii]^2 + qy[ii]^2+ qz[ii]^2) 
    6382                        phiVal = phi[ii][jj] 
    64                         isIn = 0 
    65                  
    66                         isIn = V_CloseEnough(phiVal,phiCtr,delta) 
    67                         if(!isIn)               // it's NOT in the sector, do something 
    68                                 overlay[ii][jj] = 1 
     83                        exclude = 1 
     84                 
     85                        // sector as defined 
     86                        if(V_CloseEnough(phiVal,phiCtr,delta)) 
     87                                exclude = 0 
    6988                        endif 
    70  
    71 //                      isIn = V_CloseEnough(phiVal,pi+phiCtr,delta) 
    72 //                      if(!isIn)               // it's NOT in the sector, do something 
    73 //                              overlay[ii][jj] = 1 
    74 //                      endif 
    75  
    76 //                       
    77 //                      if(phiVal < delta) 
    78 //                              forward = 1                     //within forward sector 
    79 //                      else 
    80 //                              forward = 0 
    81 //                      Endif 
    82 //                      if((Pi - phiVal) < delta) 
    83 //                              mirror = 1              //within mirror sector 
    84 //                      else 
    85 //                              mirror = 0 
    86 //                      Endif 
    87 //                      //check if pixel lies within allowed sector(s) 
    88 //                      if(cmpstr(side,"both")==0)              //both sectors 
    89 //                              if ( mirror || forward) 
    90 //                                      //increment 
    91 //                                      isIn = 1 
    92 //                              Endif 
    93 //                      else 
    94 //                              if(cmpstr(side,"right")==0)             //forward sector only 
    95 //                                      if(forward) 
    96 //                                              //increment 
    97 //                                              isIn = 1 
    98 //                                      Endif 
    99 //                              else                    //mirror sector only 
    100 //                                      if(mirror) 
    101 //                                              //increment 
    102 //                                              isIn = 1 
    103 //                                      Endif 
    104 //                              Endif 
    105 //                      Endif           //allowable sectors 
    106 //               
    107                          
    108                  
     89                        //if sector crosses zero, pick up the rest of the sector 
     90                        if(crossZero) 
     91                                if(V_CloseEnough(phiVal-2*pi,phiCtr,delta)) 
     92                                        exclude = 0 
     93                                endif 
     94                                if(V_CloseEnough(phiVal+2*pi,phiCtr,delta)) 
     95                                        exclude = 0 
     96                                endif 
     97                        endif 
     98                         
     99                        //      mirror phi if needed 
     100                        if(cmpstr(side,"both")==0) 
     101                                if(V_CloseEnough(phiVal,mirror_phiCtr,delta)) 
     102                                        exclude = 0 
     103                                endif 
     104                        endif 
     105                                 
     106                        // if only right or left, exclude everything as needed 
     107                        if(cmpstr(side,"right")==0) 
     108                                //if phi is actually on the left 
     109                                if(phiCtr > pi/2 && phiCtr < 3*pi/2) 
     110                                        exclude = 1 
     111                                endif 
     112                        endif 
     113                        if(cmpstr(side,"left")==0) 
     114                                //if phi is actually on the right 
     115                                if( (phiCtr > 0 && phiCtr < pi/2) || (phiCtr > 3*pi/2 && phiCtr < 2*pi) ) 
     116                                        exclude = 1 
     117                                endif 
     118                        endif 
     119                         
     120                        // set the mask value 
     121                        overlay[ii][jj] = exclude 
    109122                endfor 
    110123        endfor 
    111          
     124 
     125 
    112126        return(0) 
    113127End 
Note: See TracChangeset for help on using the changeset viewer.