def setDefaultPsana(self): try: ds = psana.DataSource("exp="+self.experimentName+":run="+str(self.runNumber)+':idx') except: raise Exception('!!!!! Invalid experiment name or run number') run = ds.runs().next() env = ds.env() times = run.times() det = psana.Detector(self.detectorName) epics = ds.env().epicsStore() counter = 0 evt = None while evt is None: evt = run.event(times[counter]) counter += 1 self.instrument = det.instrument() from experiment import myExp exp = myExp(self.experimentName,self.runNumber,self.detectorName) exp.Det self.clen = exp.clen or 0.0 self.clenEpics = exp.clenEpics print(self.clen, self.clenEpics) self.detectorDistance = np.mean(det.coords_z(evt))*1.0e-6 self.coffset = self.detectorDistance - self.clen self.pixelSize = det.pixel_size(run)*1.0e-6
rlist = [] for each in runs.split(","): if each == "": continue elif ":" in each: start, end = each.split(":") rlist.extend(range(int(start), int(end) + 1)) else: rlist.append(int(each)) return rlist if args.det is None: from experiment import myExp runs = get_run(args.run) exp = myExp(args.exp, runs[0]) try: exp.Det except: pass args.det = exp.detName print args.det for run in get_run(args.run): if run == args.copyRun: setupNewRun(experimentName=args.exp, runNumber=run, detectorName=args.det, outDir=args.outDir) else: setupNewRun(experimentName=args.exp,