Example #1
0
    def getIq2DError(self, qx, qy):
        """
            Return the simulated value along with its estimated
            error for a given q-value
            
            Propagation of errors is used to evaluate the
            uncertainty.
            
            @param qx: qx-value [float]
            @param qy: qy-value [float]
            @return: mean, error [float, float]
        """
        self._create_modelObject()

        norm = 1.0e8 / self.params['lores_density'] * self.params['scale']
        val = norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\
            + self.params['background']

        # Simulation error (statistical)
        norm =  1.0e8/self.params['lores_density']*self.params['scale'] \
                * math.pow(self.npts/self.params['lores_density'], 1.0/3.0)/self.npts
        err = norm * pointsmodelpy.get_complex_iq_2D_err(
            self.complex_model, self.points, qx, qy)
        # Error on V/N
        simerr = 2 * val / self.npts

        # The error used for the position is over-simplified.
        # The actual error was empirically found to be about
        # an order of magnitude larger.
        return val, 10.0 * err + simerr
Example #2
0
 def getIq2DError(self, qx, qy):
     """
         Return the simulated value along with its estimated
         error for a given q-value
         
         Propagation of errors is used to evaluate the
         uncertainty.
         
         @param qx: qx-value [float]
         @param qy: qy-value [float]
         @return: mean, error [float, float]
     """
     self._create_modelObject()
             
     norm =  1.0e8/self.params['lores_density']*self.params['scale']
     val = norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\
         + self.params['background']
     
     # Simulation error (statistical)
     norm =  1.0e8/self.params['lores_density']*self.params['scale'] \
             * math.pow(self.npts/self.params['lores_density'], 1.0/3.0)/self.npts
     err = norm*pointsmodelpy.get_complex_iq_2D_err(self.complex_model, self.points, qx, qy)
     # Error on V/N
     simerr = 2*val/self.npts
     
     # The error used for the position is over-simplified.
     # The actual error was empirically found to be about
     # an order of magnitude larger.
     return val, 10.0*err+simerr
Example #3
0
    def getIq2D(self, qx, qy):
        """
            Returns simulate I(q) for given q_x and q_y values.
            @param qx: q_x [A-1]
            @param qy: q_y [A-1]
            @return: I(q) [cm-1]
        """

        # If this is the first simulation call, we need to generate the
        # space points
        if self.points == None:
            self._create_modelObject()

            # Protect against empty model
            if self.points == None:
                return 0

        # Evalute I(q)
        norm = 1.0e8 / self.params['lores_density'] * self.params['scale']
        return norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\
            + self.params['background']
Example #4
0
 def getIq2D(self, qx, qy):
     """
         Returns simulate I(q) for given q_x and q_y values.
         @param qx: q_x [A-1]
         @param qy: q_y [A-1]
         @return: I(q) [cm-1]
     """
     
     # If this is the first simulation call, we need to generate the
     # space points
     if self.points == None:
         self._create_modelObject()
         
         # Protect against empty model
         if self.points == None:
             return 0
            
     # Evalute I(q) 
     norm =  1.0e8/self.params['lores_density']*self.params['scale']
     return norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\
         + self.params['background']