info = instr.addDetectorIds('Group%d' % (i+1), [start, stop, None]) for i, _ in enumerate(num_banks): group = 'Group%d' % (i+1) group = instr.addComponent(group, idlist=group) #################### # group 1 is banks 1-14 (inclusive) bank_offset = 0 group = instr.makeTypeElement('Group1') for i in range(num_banks[0]): bank_num = bank_offset + i + 1 bank = "bank%d" % bank_num corners = getCorners(bank_num) rect = getRectangle(bank_num, positions, corners) det = instr.makeDetectorElement('pack', root=group) rect.makeLocation(instr, det, bank) # group 2 is banks 15-37 (inclusive) bank_offset += num_banks[0] group = instr.makeTypeElement('Group2') for i in range(num_banks[1]): bank_num = bank_offset+i+1 bank = "bank%d" % bank_num corners = getCorners(bank_num) # appears to be backwards!!!!!!!!!!!!!!!! corners = [corners[1], corners[0], corners[3], corners[2]] rect = getRectangle(bank_num, positions, corners) det = instr.makeDetectorElement('pack', root=group) rect.makeLocation(instr, det, bank)
ysize = -1.*TUBE_LENGTH, ystartdiff = -1.*TUBE_LENGTH/128., debug=False) pack1.setNames(pixel="onepixel", tube="tubedecreasing", pack="packdecreasing") group1 = instr.makeTypeElement("Group1") for i in range(n_first): offset = i*8*128 bank = "bank%d" % (i+1) rect = Rectangle( (-y[offset+UL], x[offset+UL], z[offset+UL]), (-y[offset+LL], x[offset+LL], z[offset+LL]), (-y[offset+LR], x[offset+LR], z[offset+LR]), (-y[offset+UR], x[offset+UR], z[offset+UR]) ) det = instr.makeDetectorElement(pack1.namepack, root=group1) rect.makeLocation(instr, det, bank) # ---------- add in group2 """ ;;; source idl code N_second=23 ;z0_second=5.05/8.45*3.2 ;x0_second=2.24/8.45*3.2 ;z1_second=2.54/8.45*3.2 ;x1_second=2.24/8.45*3.2 z0_second=5.09/7.06*2.7-0.0095 x0_second=2.22/7.06*2.7 z1_second=2.45/7.06*2.7+0.0095 x1_second=2.22/7.06*2.7 dx_second=x1_second-x0_second
ysize=-1. * TUBE_LENGTH, ystartdiff=-1. * TUBE_LENGTH / 128., debug=False) pack1.setNames(pixel="onepixel", tube="tubedecreasing", pack="packdecreasing") group1 = instr.makeTypeElement("Group1") for i in range(n_first): offset = i * 8 * 128 bank = "bank%d" % (i + 1) rect = Rectangle((-y[offset + UL], x[offset + UL], z[offset + UL]), (-y[offset + LL], x[offset + LL], z[offset + LL]), (-y[offset + LR], x[offset + LR], z[offset + LR]), (-y[offset + UR], x[offset + UR], z[offset + UR])) det = instr.makeDetectorElement(pack1.namepack, root=group1) rect.makeLocation(instr, det, bank) # ---------- add in group2 """ ;;; source idl code N_second=23 ;z0_second=5.05/8.45*3.2 ;x0_second=2.24/8.45*3.2 ;z1_second=2.54/8.45*3.2 ;x1_second=2.24/8.45*3.2 z0_second=5.09/7.06*2.7-0.0095 x0_second=2.22/7.06*2.7 z1_second=2.45/7.06*2.7+0.0095 x1_second=2.22/7.06*2.7 dx_second=x1_second-x0_second
for i, _ in enumerate(num_banks): group = 'Group%d' % (i + 1) # set blank_location=False to add <location/> tag to component group = instr.addComponent(group, idlist=group, blank_location=False) #################### # group 1 is banks 1-14 (inclusive) bank_offset = 0 group = instr.makeTypeElement('Group1') for i in range(num_banks[0]): bank_num = bank_offset + i + 1 bank = "bank%d" % bank_num corners = getCorners(bank_num) rect = getRectangle(bank_num, positions, corners) det = instr.makeDetectorElement('pack', root=group) rect.makeLocation(instr, det, bank) # group 2 is banks 15-37 (inclusive) bank_offset += num_banks[0] group = instr.makeTypeElement('Group2') for i in range(num_banks[1]): bank_num = bank_offset + i + 1 bank = "bank%d" % bank_num corners = getCorners(bank_num) # appears to be backwards!!!!!!!!!!!!!!!! corners = [corners[1], corners[0], corners[3], corners[2]] rect = getRectangle(bank_num, positions, corners) det = instr.makeDetectorElement('pack', root=group) rect.makeLocation(instr, det, bank)
createdcolumns = dict() for name in banks.keys(): offset = (int(name)-1) * 15000 column, rect = banks[name] name = 'bank'+str(name) # create the column if it doesn't already exist if column in createdcolumns: col = createdcolumns[column] else: col = instr.makeTypeElement(str(column)) createdcolumns[column] = col extra_attrs={"idstart":offset, 'idfillbyfirst':'y', 'idstepbyrow':y_num2} det = instr.makeDetectorElement('panel_v2', root=col, extra_attrs=extra_attrs) rect.makeLocation(instr, det, name) # add the panel shape instr.addComment(" Version 2 Detector Panel (7x154)") x_delta2 = x_extent/float(x_num2) x_offset2 = x_delta2*(1.-float(x_num2))/2. y_delta2 = y_extent/float(y_num2) y_offset2 = y_delta2*(1.-float(y_num2))/2. det = instr.makeTypeElement("panel_v2", extra_attrs={"is":"rectangular_detector", "type":"pixel_v2", "xpixels":x_num2, "xstart":x_offset2, "xstep":x_delta2, "ypixels":y_num2, "ystart":y_offset2, "ystep":y_delta2 }) le.SubElement(det, "properties")