def get_settings_by_date(date_start, date_end): beamline = Beamline(url='http://cdb.mice.rl.ac.uk') channel = CoolingChannel(url='http://cdb.mice.rl.ac.uk') channel_data_dates = channel.get_all_coolingchannels() print "Getting cooling channel keys" for key in channel_data_dates.keys(): print type(key), key return print_heading() bl_data_dates = beamline.get_beamlines_for_dates(start_date, end_date) for run in range(run_start, run_end): channel_data, bl_data = None, None n_tries = 0 while channel_data == None and n_tries < 5: try: channel_data = channel.get_coolingchannel_for_run(run) except (cdb._exceptions.CdbPermanentError, KeyError, urllib2.URLError): n_tries += 1 time.sleep(5) continue while bl_data == None: try: bl_data = beamline.get_beamline_for_run(run)[run] except (cdb._exceptions.CdbPermanentError, KeyError, urllib2.URLError): n_tries += 1 time.sleep(5) continue if not is_channel_okay(bl_data, channel_data): continue print_run(bl_data, channel_data)
def get_settings_by_run(run_start, run_end, run_step, output, do_header = True): beamline = Beamline(url='http://cdb.mice.rl.ac.uk') channel = CoolingChannel(url='http://cdb.mice.rl.ac.uk') if do_header: print_heading(output) for run in range(run_start, run_end, run_step): #: channel_data, bl_data = None, None n_tries = 0 while channel_data == None and n_tries < 5: try: channel_data = channel.get_coolingchannel_for_run(run) print ".", sys.stdout.flush() except (cdb._exceptions.CdbPermanentError, KeyError, urllib2.URLError): print "Failed to get channel data for run", run, "... trying again", n_tries n_tries += 1 time.sleep(0.1) continue while bl_data == None and n_tries < 5: try: bl_data = beamline.get_beamline_for_run(run)[run] except (cdb._exceptions.CdbPermanentError, KeyError, urllib2.URLError): print "Failed to get bl data for run", run, "... trying again", n_tries n_tries += 1 time.sleep(0.1) continue if not is_channel_okay(bl_data, channel_data): print "Channel not okay for run", run continue print_run(bl_data, channel_data, output) sys.stdout.flush() time.sleep(1)
def __init__(self, args_in): self._BL = Beamline(_R_SERVER) # print self._BL self._CC = CoolingChannel(_R_SERVER) self.run_number = args_in.run_number self.ssu_on = args_in.ssu_on self.ssd_on = args_in.ssd_on self.both_ss = args_in.both_ss self.pretty = pprint.PrettyPrinter(indent=4) self.oldstd = sys.stdout self.pout = open(os.devnull, 'w')
To switch between Preprod and Master, change the argument to the handle on Line:16 e.g. cc = CoolingChannelSuperMouse(_PROD_CDB) """ import sys from cdb import CoolingChannelSuperMouse from cdb import CoolingChannel _TEST_CDB = "http://preprodcdb.mice.rl.ac.uk" _PROD_CDB = "http://cdb.mice.rl.ac.uk" #_MASTER_CDB = "http://preprodcdb.mice.rl.ac.uk" _MASTER_CDB = "http://172.16.246.25:8080" _master_server = CoolingChannelSuperMouse(_MASTER_CDB) _test_server = CoolingChannelSuperMouse(_TEST_CDB) _prod_server = CoolingChannel(_PROD_CDB) #print _server ############################################################################ _CC_TAG = '2016-05-2-SSUSSD' data = [\ {'polarity': 1, 'coils': \ [{'vlim': 5.0, 'name': 'SSU-T2', 'iset': 0.0, 'calibration': 0.0451, 'ilim': 1.0, 'stability': 0.0, 'rate': 0.0}, \ {'vlim': 16.0, 'name': 'SSU-C', 'iset': 204.02 , 'calibration': 0.0147, 'ilim': 210.0, 'stability': 95.0, 'rate': 0.0246}, \ {'vlim': 5.0, 'name': 'SSU-T1', 'iset': 0.0, 'calibration': 0.0407, 'ilim': 1.0, 'stability': 0.0, 'rate': 0.0}, \ {'vlim': 7.0, 'name': 'SSU-M2', 'iset': 226.63, 'calibration': 0.0201, 'ilim': 230.0, 'stability': 95.0, 'rate': 0.025}, \ {'vlim': 7.0, 'name': 'SSU-M1', 'iset': 220.80, 'calibration': 0.0302, 'ilim': 230.0, 'stability': 95.0, 'rate': 0.0123} \ ], \ 'name': 'SSU', 'mode': 'solenoid'\ },\ {'polarity': -1, 'coils': \ [{'vlim': 11.0, 'name': 'FCU-C', 'iset': 0.0, 'calibration': 0.0268, 'ilim': 1.0, 'stability': 95.0, 'rate': 0.005}],\
class QueryCDB: """ Handles CDB requuests """ def __init__(self, args_in): self._BL = Beamline(_R_SERVER) # print self._BL self._CC = CoolingChannel(_R_SERVER) self.run_number = args_in.run_number self.ssu_on = args_in.ssu_on self.ssd_on = args_in.ssd_on self.both_ss = args_in.both_ss self.pretty = pprint.PrettyPrinter(indent=4) self.oldstd = sys.stdout self.pout = open(os.devnull, 'w') def process_request(self): # if run number is specified, then just get the info for the run if self.run_number > 0: self.get_beamline_for_run() self.get_cc_for_run() # if cooling channel match is requested, then find runs if self.ssu_on or self.ssd_on or self.both_ss: self.get_runs_for_cc() def get_beamline_for_run(self): print '===== Beamline for Run# ', self.run_number blrun = self._BL.get_beamline_for_run(self.run_number) self.pretty.pprint(blrun) def get_cc_for_run(self): print '===== Cooling Channel for Run# ', self.run_number sys.stdout = self.pout ccrun = self._CC.get_coolingchannel_for_run(self.run_number) sys.stdout = None self.pretty.pprint(ccrun) def get_runs_for_cc(self): runlist = sorted(self._BL.get_run_numbers()) #### No cooling channel before run ~7100, so don't bother for run in runlist: if run < 7400: continue sys.stdout = self.pout ccrun = self._CC.get_coolingchannel_for_run(run) sys.stdout = self.oldstd for mag in ccrun: if mag['name'] == 'SSU': ssu_coils = mag['coils'] for coil in ssu_coils: if coil['name'] == 'SSU-C': ssu_c_current = coil['iset'] if mag['name'] == 'SSD': ssu_coils = mag['coils'] for coil in ssu_coils: if coil['name'] == 'SSD-C': ssd_c_current = coil['iset'] if self.ssu_on and ssu_c_current > 10.0: print '++++ SSU ON. Run# ', run self.pretty.pprint(ccrun) if self.ssd_on and ssd_c_current > 10.0: print '++++ SSD ON. Run# ', run self.pretty.pprint(ccrun) if self.both_ss and ssd_c_current > 10.0 and ssu_c_current > 10.0: print '++++ SSU and SSD ON. Run# ', run self.pretty.pprint(ccrun)
############################################################################### # Load CDB elements ############################################################################### print " Loading Beamline...", try: beamline = Beamline() except: print " ERROR" sys.exit() else: print " OK" print " Loading Cooling Channel...", try: channel = CoolingChannel() except: print " ERROR" sys.exit() else: print " OK" ############################################################################### # Setup processing ############################################################################### # CDB spill counter date0_unix = time.mktime(start_date.timetuple()) date1_unix = time.mktime(end_date.timetuple()) th1d_spills_hr = ROOT.TH1D("th1d_spills_hr", "Spills/hr", int((date1_unix - date0_unix) / 900),
import sys sys.path.insert(1, "/home/mice/MAUS/CDB/mice.cdb.client.api-python/src/") from cdb import Beamline from cdb import CoolingChannel from pprint import pprint from collections import defaultdict _BL = Beamline("http://cdb.mice.rl.ac.uk") _CC = CoolingChannel("http://cdb.mice.rl.ac.uk") _RUNMIN = int(sys.argv[1]) _RUNMAX = int(sys.argv[2]) print 'min: ', _RUNMIN, 'max: ', _RUNMAX tot_npart_26a = 0 tot_npart_26b = 0 tot_npart_26c = 0 tot_npart_27a = 0 tot_npart_27b = 0 tot_npart_27c = 0 tot_npart_28a = 0 tot_npart_28b = 0 tot_npart_28c = 0 tot_npart_29a = 0 tot_npart_29b = 0 tot_npart_29c = 0 tot_npart_14a = 0 tot_npart_14b = 0 tot_npart_14c = 0 tot_npart_14d = 0 tot_npart_14c = 0
import sys from cdb import CoolingChannel from cdb import Beamline from cdb import Cabling from pprint import pprint _R_SERVER = "http://cdb.mice.rl.ac.uk" _TEST_SERVER = "http://preprodcdb.mice.rl.ac.uk" _MASTER_CDB = "http://172.16.246.25:8080" #_CCT = CoolingChannel(_R_SERVER) _CCT = CoolingChannel(_TEST_SERVER) _CCM = CoolingChannel(_MASTER_CDB) print _CCT.get_status() print _CCT.get_server_host_name() p_cctags = _CCT.list_tags() print _CCM.get_status() print _CCM.get_server_host_name() m_cctags = _CCM.list_tags() print print '++++++ List of CoolingChannel Tags' print '++++++ MASTER ' pprint(m_cctags) print print print '++++++ PREPROD ' pprint(p_cctags) for ptag in p_cctags:
import sys from cdb import CoolingChannel from cdb import Beamline from cdb import Cabling from pprint import pprint _PROD_CDB = "http://cdb.mice.rl.ac.uk" _TEST_CDB = "http://preprodcdb.mice.rl.ac.uk" _MASTER_CDB = "http://172.16.246.25:8080" #_CCT = CoolingChannel(_TEST_CDB) _CCM = CoolingChannel(_MASTER_CDB) print _CCM.get_status() _CCP = CoolingChannel(_PROD_CDB) #print _CCT.get_status() #print _CCT.get_server_host_name() #p_cctags = _CCT.list_tags() print _CCM.get_status() print _CCM.get_server_host_name() m_cctags = _CCM.list_tags() print print '++++++ List of CoolingChannel Tags' print '++++++ MASTER ' pprint(m_cctags) print print print '++++++ PREPROD ' #pprint(p_cctags)
#from cdb import CoolingChannelSuperMouse from cdb import CoolingChannel from cdb import Beamline #_TEST_CDB = "http://preprodcdb.mice.rl.ac.uk" _R_CDB = "http://cdb.mice.rl.ac.uk" cc = CoolingChannel(_R_CDB) #_MASTER_CDB = "http://172.16.246.25:8080" #cc = CoolingChannelSuperMouse(_MASTER_CDB) bl = Beamline(_R_CDB) #print cc, help(cc), cc.get_name(), cc.get_server_host_name(), cc.get_version() ############################################################################ #print 'List' #rint cc.list_absorber_tags() #print 'Get' #print cc.get_absorber_for_tag('ABS-SOLID-EMPTY') print 'Get CCrun' print cc.get_coolingchannel_for_run(7929) print 'Get Absrun' print cc.get_absorber_for_run(7929) #print 'Get Beamline' #print bl.get_beamline_for_run(7929)