# Tool to align the solenoid on the gun. # S. Bettoni, A. Gobbo, D. Voulot # 06/06/2016 #Code ok with the GUI # Procedure: # switch off all the magnets between the gun solenoid and the screen or BPM used for the measurement # change the current of the gun soleoid # look at the centroid position (BPM or screen) downstream of the gun. import datetime knob = Channel("SINEG01-RSYS:SET-BEAM-PHASE", 'd', alias = "RF phase") instrument = Channel("SINEG01-DICT215:CHARGE", 'd', alias = "Bunch Charge (ICT)") r = lscan(knob, [instrument], -120., 60., 10.,2.0) elog("SchottkyICT", "Data file: " + get_context().path + "\n\n" + r.print() , get_plot_snapshots()) #use_bpm = True # ##if get_context().source == CommandSource.ui: # phi1 = -60 # phi2 = -40 # dphi = 1.0 # settling_time = 0.1 # plot_image = False # number_images = 5 # use_background = True # multiple_background = False # number_backgrounds = 5 # do_elog = False # centroid_excursion_plot = True # #print "Parameters: ", phi1, phi2, dphi, settling_time # #plot_name = datetime.datetime.fromtimestamp(time.time()).strftime('%H%M%S') # # #if (use_bpm): # add_device(BpmStats("image_stats", "SINEG01-DBPM340"), True) # use_background = False # multiple_background = False #else: # if get_device("image_stats") is None: # print "Instantiating camtool" # add_device(CamTool("image_stats", prefix = "SINEG01-DSCR190:", latch = True, camera = "SINEG01-DSCR190"), True) # if (image_stats.latch): # image_stats.start() #add_device(ImageStats("image_stats", get_simulated_source(image)), True) # #image_stats.setNumberOfImages(max(number_images,1)) #image_stats.enableBackground (use_background) #if use_background: # laser_off() # if not multiple_background: # image_stats.captureBackground(number_backgrounds) # ## Switch off magnets ##mag = [ "SINEG01-MCRX120","SINEG01-MCRY120", ## "SINEG01-MQUA140", ## "SINEG01-MQUA150", ## "SINEG01-MCRX160","SINEG01-MCRY160", ## "SINEG01-MCRX180","SINEG01-MCRY180", ## "SINEG01-MCRX200","SINEG01-MCRY200", ## "SINEG01-MCRX220","SINEG01-MCRY220", ## "SINEG01-MQUA310", ## "SINEG01-MQUA320" ] # ##switch_off_magnets(mag) # ## add here gun phase setting see wiki page # #def before_sample(): # if multiple_background: # image_stats.captureBackground(number_backgrounds) # laser_on() # image_stats.update() # #def after_sample(): # if multiple_background: # laser_off() # #r = None #if not multiple_background: # laser_on() # #try: # #sensors = [image_stats.com_x, image_stats.com_y] # #sensors = [image_stats.com_x_mean, image_stats.com_y_mean, image_stats.com_x_stdev, image_stats.com_y_stdev] # sensors = [bpm_q] # #if plot_image: # # sensors.append(image_stats.image) # r = lscan(gun_solenoid, sensors , I1, I2, dI, settling_time, before_read = before_sample, after_read = after_sample) #finally: # #laser_off() # pass # ##image_stats.stop() # # ## take the result of the scan and generate convex hull plot ##if centroid_excursion_plot: ## (hx,hy)=add_convex_hull_plot ("Centroid excursion", r.getReadable(0),r.getReadable(1), plot_name) ##else: ## (hx,hy)= convex_hull(x=r.getReadable(0), y=r.getReadable(1)) ## hx.append(hx[0]); hy.append(hy[0]) # ## save the entry in the logbook #gsa_log_msg = "Data file: " + get_context().path #gsa_log_msg = gsa_log_msg + "\nImages: " + str(number_images) #gsa_log_msg = gsa_log_msg + "\nBackground: enabled=" + str(use_background) + " multiple=" + str(multiple_background) + " number=" + str(number_backgrounds) #gsa_log_msg = gsa_log_msg + "\n\n" + r.print() #if do_elog: # elog("Gun solenoid current scan", gsa_log_msg , get_plot_snapshots()) # #_ = [r, hx, hy] #set_return([r, hx, hy]) # #