Exemple #1
0
 def get_pixel_mask(self, pixels=None, exclude=True):
     p = make_list(self.load_mask('pixel') if pixels is None else pixels)
     string = ' || '.join(
         'cluster_col[{n}]=={} && cluster_row[{n}]=={}'.format(n=self.N,
                                                               *tup)
         for tup in p.reshape(p.size // 2, 2))
     return '' if pixels is None and not exclude else Cut.invert(
         string) if exclude else string
 def __init__(self, filepath: str):
     with open(filepath) as file:
         line_1 = file.readline()
         line_2 = file.readline()
         line_3 = file.readline()
         try:
             self.size = int(line_1)
             self.cuts = [None]
             for cut_size, cut_worth in zip(line_2.split(), line_3.split()):
                 i = int(cut_size)
                 p_i = int(cut_worth)
                 self.cuts.append(Cut(i, p_i))
             pass
         except ValueError:
             raise ValueError("file format error")
         finally:
             file.close()
Exemple #3
0
 def generate_saturated(self):
     cut_string = '!is_saturated[{ch}]'.format(ch=self.Channel)
     description = 'exclude {:.2f}% saturated events'.format(100. * self.find_n_saturated(Cut.invert(cut_string)) / self.Run.NEvents)
     return CutString('saturated', cut_string, description)
Exemple #4
0
 def get_pulser(self, beam_on=True):
     cut = self.generate_custom(include=['ped sigma', 'event range'], prnt=False) + Cut.invert(self.get('pulser'))
     cut += self.get('beam stops', warn=False) if beam_on else Cut.invert(self.generate_jump_cut())
     return CutString('PulserBeam{}'.format('On' if beam_on else 'Off'), cut)
Exemple #5
0
 def get_bucket(self, all_cuts=False):
     cut = self.generate_custom(exclude=['bucket', 'bucket2'], prnt=False) if all_cuts else self.generate_custom(include=['pulser', 'ped sigma', 'event range'], prnt=False)
     return Cut.make('!bucket', cut + self.generate_bucket().invert())
Exemple #6
0
 def __init__(self, analysis):
     Cut.__init__(self, analysis)
     self.Channel = self.Ana.get_channel()
     self.generate_dut()
     self.ConsecutiveCuts = self.get_consecutive()
Exemple #7
0
    def __init__(self, analysis):
        Cut.__init__(self, analysis)

        self.N = self.DUT.Number + self.Run.NTelPlanes - 1
        self.generate_dut()
        self.ConsecutiveCuts = self.get_consecutive()
Exemple #8
0
 def get_line_mask(self, var, lines=None, exclude=True):
     string = ' || '.join(f'cluster_{var}[{self.N}] == {line}' for line in (
         self.load_mask('column') if lines is None else make_list(lines)))
     return '' if lines is None and not exclude else Cut.invert(
         string) if exclude else string
Exemple #9
0
 def get_var(self, sigma=None, plane=None, percent=False):
     var = f'(n_clusters[{choose(plane, self.N)}] > 0){" * 100" if percent else ""}'
     return Cut.to_string(
         self.Cut.generate_rhit(sigma) +
         Cut.make('', var)) if self.UseRhit else var
Exemple #10
0
 def init_cut(self):
     return Cut(self)