Source code for ecpi.extras.simu.mask_random

'''
Created on 6 nov. 2017

@author: user
'''

import logging
import numpy as np

import ecpi.common.num.array_square_cell as asc

logger = logging.getLogger(__name__)


[docs]class MaskRandom(asc.ArraySquareCell): """ """ def __init__(self, cel_x=1, ncel_y=1, size_cm=1): """**Constructor** """ super().__init__(cel_x, ncel_y, size_cm)
[docs] def random_mask(self, p_percent_empty): if p_percent_empty > 1: logger.error(f'pEmpty greater than 1 ({p_percent_empty})') self.logger.critical('pEmpty value less than 1') max_val = p_percent_empty*1000 self.random_value(0, 999) idx_empty = np.where(self.ar_val < max_val) idx_full = np.where(self.ar_val >= max_val) self.ar_val[idx_empty] = 1 # photon no stopped self.ar_val[idx_full] = 0 # photon stopped self.perct_open_goal = p_percent_empty logger.info(f'percent_result: {idx_empty[0].size/self.ar_val.size}')