Page History
...
Point detector delay scan
Code Block none none title Fetching the ControlPV information def begincalibcycle( self, evt, env ) : # get updated configuration object at each calibcycle. ctrl_config = env.getConfig(TypeId.Type.Id_ControlConfig) for ic in range (0, ctrl_config.npvControls() ): cpv = ctrl_config.pvControl(ic) if cpv.name()=="fs2:ramp_angsft_target": # store the value in a class variable (visible in every class method) self.current_pv_value = cpv.value() )
Code Block none none title Fetching the IPIMB information def event( self, evt, env ) : # Use "XppSb3Ipm-1|Ipimb-0" (a.k.a. IPM3) for normalization and filtering ipmN_raw = evt.get(TypeId.Type.Id_IpimbData, "XppSb3Ipm-1|Ipimb-0") ipmN_fex = evt.get(TypeId.Type.Id_IpmFex, "XppSb3Ipm-1|Ipimb-0") # we use the IpmFex information, and choose to use the sum # of all channel values for normalization and filtering ipmN_norm = ipmN_fex.sum # Use "XppSb3Pim-1|Ipimb-0" (a.k.a. PIM3) channel 1 as signal ipmS_raw = evt.get(TypeId.Type.Id_IpimbData, "XppSb3Pim-1|Ipimb-0" ) ipmS_fex = evt.get(TypeId.Type.Id_IpmFex, "XppSb3Pim-1|Ipimb-0" ) # Here, we use IpmFex channel 1 (counting from 0) as the signal ipm_sig = ipmS_fex.channel[1]
*
...
Code Block
...
title Fetching the Phase Cavity information def event(self, evt, env): pc = evt.getPhaseCavity() phasecav1 = pc.fFitTime1 phasecav2 = pc.fFitTime2 charge1 = pc.fCharge1 charge2 = pc.fCharge2
...
Code Block none none title Computing the delay time and making histograms def event(self, evt, env): delaytime = self.current_pv_value + phasecav1*1e3 # The "histograms" are nothing but python lists. Append to them, and turn them into arrays at the end. self.h_ipm_rsig.append( ipm_sig ) self.h_ipm_nsig.append( ipm_sig/ipm_norm ) self.h_delaytime.append( delaytime )
Image peak finding
CSPad images and tile arangements
...
Overview
Content Tools