def __init__(self, percentage=90):
     ROOT.gROOT.cd()
     self.microphonics_list = ROOT.TEventList("microphonics_list", "microphonics_list")
     self.risetime_list = ROOT.TEventList("risetime_list", "risetime_list")
     self.LN_cut_list = ROOT.TEventList("LN_cut_list", "LN_cut_list")
     self.odd_pulse_cut_list = ROOT.TEventList("odd_pulse_cut_list", "odd_pulse_cut_list")
     self.LN_cut_on_list = ROOT.TEventList("LN_cut_on_list", "LN_cut_on_list")
     self.combination_list = ROOT.TEventList("combination_list", "combination_list")
    
     # The risetime cut is a dump from the results of the rise-time fit. 
     server = SoudanServer()
    
     # Grab the trigger efficiency 
     trigger_doc = server.get_trigger_efficiency_doc()
     self.erfc_function = trigger_doc.trigger_efficiency['standard'].efficiency_function
    
     # Grab the microphonics cuts
     microdoc = server.get_microphonics_cut_doc( )
     temp = microdoc.all_micro_cuts[99]
     self.lower_cut, self.upper_cut, self.microphonics_efficiency = \
           temp.lower_cut, temp.upper_cut, temp.efficiency_function
    
     # Grab the risetime cuts
     risedoc = server.get_rise_time_cut_doc() 
     temp = risedoc.all_rise_cuts[percentage] 
     self.risetime_cut, self.upper_risetime_cut, self.risetime_efficiency = \
           temp.low_energy_function, temp.high_energy_function, temp.efficiency_function
    
     self.cuts_list = [self.get_risetime_cut_list,
                       self.get_microphonics_cuts_list,
                       self.get_LN_fill_cut_list,
                       self.get_odd_pulse_cut_list]
     self.eff_list =  [self.risetime_efficiency,
                       self.microphonics_efficiency,
                       self.erfc_function]
     self.odd_pulse_cut = server.get_pulse_cut_doc().pulse_cut
 def get_available_rise_cuts(cls):
     server = SoudanServer()
     risedoc = server.get_rise_time_cut_doc() 
     return risedoc.all_rise_cuts.keys()