Exemplo n.º 1
0
    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 
Exemplo n.º 2
0
    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,