mirror of
https://github.com/gwm17/spspy.git
synced 2024-11-22 18:18:52 -05:00
Fix some formating, make text prettier.
This commit is contained in:
parent
ad0c38e313
commit
ae1781b2fa
|
@ -19,6 +19,9 @@ import matplotlib as mpl
|
||||||
import sys
|
import sys
|
||||||
import pickle
|
import pickle
|
||||||
|
|
||||||
|
DEFAULT_RHO_MIN: float = 69.0
|
||||||
|
DEFAULT_RHO_MAX: float = 87.0
|
||||||
|
|
||||||
class PlotType(Enum):
|
class PlotType(Enum):
|
||||||
PLOT_EX = auto()
|
PLOT_EX = auto()
|
||||||
PLOT_KE = auto()
|
PLOT_KE = auto()
|
||||||
|
@ -49,11 +52,12 @@ class SPSPlotGUI(QMainWindow):
|
||||||
self.create_canvas()
|
self.create_canvas()
|
||||||
self.create_inputs()
|
self.create_inputs()
|
||||||
self.create_target_table()
|
self.create_target_table()
|
||||||
|
self.update_plot()
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def create_canvas(self) -> None:
|
def create_canvas(self) -> None:
|
||||||
self.canvas = MPLCanvas(self.plotTab, width=14, height=5, dpi=100)
|
self.canvas = MPLCanvas(self.plotTab, width=14, height=5, dpi=100)
|
||||||
self.plotLayout.addWidget(self.canvas, 5)
|
self.plotLayout.addWidget(self.canvas, 4)
|
||||||
|
|
||||||
def create_menus(self) -> None:
|
def create_menus(self) -> None:
|
||||||
self.fileMenu = self.menuBar().addMenu("&File")
|
self.fileMenu = self.menuBar().addMenu("&File")
|
||||||
|
@ -82,58 +86,67 @@ class SPSPlotGUI(QMainWindow):
|
||||||
exportLevels.triggered.connect(self.handle_export_levels)
|
exportLevels.triggered.connect(self.handle_export_levels)
|
||||||
|
|
||||||
def create_inputs(self) -> None:
|
def create_inputs(self) -> None:
|
||||||
inputLayout = QHBoxLayout()
|
inputLayout = QVBoxLayout()
|
||||||
self.inputGroupBox = QGroupBox("Adjustable Inputs", self.plotTab)
|
self.inputGroupBox = QGroupBox("Adjustable Inputs", self.plotTab)
|
||||||
rhoMinLabel = QLabel("Rho Min", self.inputGroupBox)
|
|
||||||
self.rhoMinInput = QDoubleSpinBox(self.inputGroupBox)
|
self.spsGroupBox = QGroupBox("SPS Parameters", self.inputGroupBox)
|
||||||
|
spsGroupLayout = QHBoxLayout()
|
||||||
|
rhoMinLabel = QLabel("<p>ρ<sub>Min<\sub><\p>", self.spsGroupBox)
|
||||||
|
self.rhoMinInput = QDoubleSpinBox(self.spsGroupBox)
|
||||||
self.rhoMinInput.setRange(0.0, 150.0)
|
self.rhoMinInput.setRange(0.0, 150.0)
|
||||||
|
self.rhoMinInput.setValue(DEFAULT_RHO_MIN)
|
||||||
|
self.sps.rhoMin = DEFAULT_RHO_MIN
|
||||||
self.rhoMinInput.setSuffix(" cm")
|
self.rhoMinInput.setSuffix(" cm")
|
||||||
rhoMaxLabel = QLabel("RhoMax", self.inputGroupBox)
|
rhoMaxLabel = QLabel("<p>ρ<sub>Max<\sub><\p>", self.spsGroupBox)
|
||||||
self.rhoMaxInput = QDoubleSpinBox(self.inputGroupBox)
|
self.rhoMaxInput = QDoubleSpinBox(self.spsGroupBox)
|
||||||
self.rhoMaxInput.setRange(0.0,150.0)
|
self.rhoMaxInput.setRange(0.0,150.0)
|
||||||
|
self.rhoMaxInput.setValue(DEFAULT_RHO_MAX)
|
||||||
|
self.sps.rhoMax = DEFAULT_RHO_MAX
|
||||||
self.rhoMaxInput.setSuffix(" cm")
|
self.rhoMaxInput.setSuffix(" cm")
|
||||||
bkeLabel = QLabel("Beam KE", self.inputGroupBox)
|
bkeLabel = QLabel("<p>E<sub>beam<\sub><\p>", self.spsGroupBox)
|
||||||
self.bkeInput = QDoubleSpinBox(self.inputGroupBox)
|
self.bkeInput = QDoubleSpinBox(self.spsGroupBox)
|
||||||
self.bkeInput.setRange(0.0, 500.0)
|
self.bkeInput.setRange(0.0, 500.0)
|
||||||
self.bkeInput.setSuffix(" MeV")
|
self.bkeInput.setSuffix(" MeV")
|
||||||
bfieldLabel = QLabel("B-field", self.inputGroupBox)
|
bfieldLabel = QLabel("B", self.spsGroupBox)
|
||||||
self.bfieldInput = QDoubleSpinBox(self.inputGroupBox)
|
self.bfieldInput = QDoubleSpinBox(self.spsGroupBox)
|
||||||
self.bfieldInput.setRange(0.0, 17.0)
|
self.bfieldInput.setRange(0.0, 17.0)
|
||||||
self.bfieldInput.setSuffix(" kG")
|
self.bfieldInput.setSuffix(" kG")
|
||||||
angleLabel = QLabel("Angle", self.inputGroupBox)
|
angleLabel = QLabel("<p>θ<sub>SPS<\sub><\p>", self.spsGroupBox)
|
||||||
self.angleInput = QDoubleSpinBox(self.inputGroupBox)
|
self.angleInput = QDoubleSpinBox(self.spsGroupBox)
|
||||||
self.angleInput.setRange(0.0, 180.0)
|
self.angleInput.setRange(0.0, 180.0)
|
||||||
self.angleInput.setSuffix(" deg")
|
self.angleInput.setSuffix(" deg")
|
||||||
self.runButton = QPushButton("Set", self.inputGroupBox)
|
self.runButton = QPushButton("Set", self.spsGroupBox)
|
||||||
self.runButton.clicked.connect(self.handle_run)
|
self.runButton.clicked.connect(self.handle_run)
|
||||||
|
spsGroupLayout.addWidget(rhoMinLabel, 1)
|
||||||
|
spsGroupLayout.addWidget(self.rhoMinInput, 2)
|
||||||
|
spsGroupLayout.addWidget(rhoMaxLabel,1 )
|
||||||
|
spsGroupLayout.addWidget(self.rhoMaxInput, 2)
|
||||||
|
spsGroupLayout.addWidget(bkeLabel, 1)
|
||||||
|
spsGroupLayout.addWidget(self.bkeInput, 2)
|
||||||
|
spsGroupLayout.addWidget(bfieldLabel, 1)
|
||||||
|
spsGroupLayout.addWidget(self.bfieldInput, 2)
|
||||||
|
spsGroupLayout.addWidget(angleLabel, 1)
|
||||||
|
spsGroupLayout.addWidget(self.angleInput, 2)
|
||||||
|
spsGroupLayout.addWidget(self.runButton, 1)
|
||||||
|
self.spsGroupBox.setLayout(spsGroupLayout)
|
||||||
|
|
||||||
self.energyButtonGroup = QGroupBox("Ex/KE switch",self.plotTab)
|
self.energyButtonGroup = QGroupBox("Labels",self.plotTab)
|
||||||
buttonLayout = QHBoxLayout()
|
buttonLayout = QHBoxLayout()
|
||||||
self.exButton = QRadioButton("Excitation energy (MeV)", self.energyButtonGroup)
|
self.exButton = QRadioButton("Excitation Energy(MeV)", self.energyButtonGroup)
|
||||||
self.exButton.toggled.connect(self.handle_ex_switch)
|
self.exButton.toggled.connect(self.handle_ex_switch)
|
||||||
self.exButton.toggle()
|
self.exButton.toggle()
|
||||||
self.keButton = QRadioButton("Ejectile Kinetic energy (MeV)", self.energyButtonGroup)
|
self.keButton = QRadioButton("Ejectile KE(MeV)", self.energyButtonGroup)
|
||||||
self.keButton.toggled.connect(self.handle_ke_switch)
|
self.keButton.toggled.connect(self.handle_ke_switch)
|
||||||
self.zButton = QRadioButton("Focal Plane Z Shift (cm)", self.energyButtonGroup)
|
self.zButton = QRadioButton("FocalPlane Z-Shift(cm)", self.energyButtonGroup)
|
||||||
self.zButton.toggled.connect(self.handle_z_switch)
|
self.zButton.toggled.connect(self.handle_z_switch)
|
||||||
buttonLayout.addWidget(self.exButton)
|
buttonLayout.addWidget(self.exButton)
|
||||||
buttonLayout.addWidget(self.keButton)
|
buttonLayout.addWidget(self.keButton)
|
||||||
buttonLayout.addWidget(self.zButton)
|
buttonLayout.addWidget(self.zButton)
|
||||||
self.energyButtonGroup.setLayout(buttonLayout)
|
self.energyButtonGroup.setLayout(buttonLayout)
|
||||||
|
|
||||||
inputLayout.addWidget(rhoMinLabel)
|
inputLayout.addWidget(self.spsGroupBox)
|
||||||
inputLayout.addWidget(self.rhoMinInput)
|
|
||||||
inputLayout.addWidget(rhoMaxLabel)
|
|
||||||
inputLayout.addWidget(self.rhoMaxInput)
|
|
||||||
inputLayout.addWidget(bkeLabel)
|
|
||||||
inputLayout.addWidget(self.bkeInput)
|
|
||||||
inputLayout.addWidget(bfieldLabel)
|
|
||||||
inputLayout.addWidget(self.bfieldInput)
|
|
||||||
inputLayout.addWidget(angleLabel)
|
|
||||||
inputLayout.addWidget(self.angleInput)
|
|
||||||
inputLayout.addWidget(self.runButton)
|
|
||||||
self.inputGroupBox.setLayout(inputLayout)
|
|
||||||
inputLayout.addWidget(self.energyButtonGroup)
|
inputLayout.addWidget(self.energyButtonGroup)
|
||||||
|
self.inputGroupBox.setLayout(inputLayout)
|
||||||
|
|
||||||
self.plotLayout.addWidget(self.inputGroupBox, 1)
|
self.plotLayout.addWidget(self.inputGroupBox, 1)
|
||||||
|
|
||||||
|
@ -142,7 +155,9 @@ class SPSPlotGUI(QMainWindow):
|
||||||
tableLayout = QVBoxLayout()
|
tableLayout = QVBoxLayout()
|
||||||
self.targetTable = QTableWidget(self.targetGroup)
|
self.targetTable = QTableWidget(self.targetGroup)
|
||||||
self.targetTable.setColumnCount(6)
|
self.targetTable.setColumnCount(6)
|
||||||
self.targetTable.setHorizontalHeaderLabels(["Layer1 Thickness(ug/cm^2", "Layer1 (Z, A, S)","Layer2 Thickness(ug/cm^2", "Layer2 (Z, A, S)","Layer3 Thickness(ug/cm^2", "Layer3 (Z, A, S)"])
|
self.targetTable.setHorizontalHeaderLabels(["L1 Thickness(ug/cm^2)", "L1 Compound",
|
||||||
|
"L2 Thickness(ug/cm^2)", "L2 Compound",
|
||||||
|
"L3 Thickness(ug/cm^2)", "Layer3 Compound"])
|
||||||
tableLayout.addWidget(self.targetTable)
|
tableLayout.addWidget(self.targetTable)
|
||||||
self.targetGroup.setLayout(tableLayout)
|
self.targetGroup.setLayout(tableLayout)
|
||||||
self.targetLayout.addWidget(self.targetGroup)
|
self.targetLayout.addWidget(self.targetGroup)
|
||||||
|
@ -257,6 +272,7 @@ class SPSPlotGUI(QMainWindow):
|
||||||
self.canvas.axes.set_xlim(self.sps.rhoMin, self.sps.rhoMax)
|
self.canvas.axes.set_xlim(self.sps.rhoMin, self.sps.rhoMax)
|
||||||
self.canvas.axes.set_yticks(range(1,len(self.sps.data)+2))
|
self.canvas.axes.set_yticks(range(1,len(self.sps.data)+2))
|
||||||
self.canvas.axes.set_yticklabels(ylabels)
|
self.canvas.axes.set_yticklabels(ylabels)
|
||||||
|
self.canvas.axes.set_xlabel(r"$\rho$ (cm)")
|
||||||
self.canvas.draw()
|
self.canvas.draw()
|
||||||
|
|
||||||
def update_inputs(self):
|
def update_inputs(self):
|
||||||
|
@ -276,6 +292,8 @@ class SPSPlotGUI(QMainWindow):
|
||||||
self.targetTable.resizeColumnsToContents()
|
self.targetTable.resizeColumnsToContents()
|
||||||
self.targetTable.resizeRowsToContents()
|
self.targetTable.resizeRowsToContents()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def run_spsplot_ui():
|
def run_spsplot_ui():
|
||||||
mpl.use("Qt5Agg")
|
mpl.use("Qt5Agg")
|
||||||
app = QApplication.instance()
|
app = QApplication.instance()
|
||||||
|
|
|
@ -110,7 +110,7 @@ class SpancGUI(QMainWindow):
|
||||||
targetLayout = QVBoxLayout()
|
targetLayout = QVBoxLayout()
|
||||||
self.targetTable = QTableWidget(self.targetGroup)
|
self.targetTable = QTableWidget(self.targetGroup)
|
||||||
self.targetTable.setColumnCount(6)
|
self.targetTable.setColumnCount(6)
|
||||||
self.targetTable.setHorizontalHeaderLabels(["Layer1 Thickness(ug/cm^2", "Layer1 (Z, A, S)","Layer2 Thickness(ug/cm^2", "Layer2 (Z, A, S)","Layer3 Thickness(ug/cm^2", "Layer3 (Z, A, S)"])
|
self.targetTable.setHorizontalHeaderLabels(["L1 Thickness(ug/cm^2)", "L1 Compound","L2 Thickness(ug/cm^2)", "L2 Compound","L3 Thickness(ug/cm^2)", "L3 Compound"])
|
||||||
targetLayout.addWidget(self.targetTable)
|
targetLayout.addWidget(self.targetTable)
|
||||||
self.targetGroup.setLayout(targetLayout)
|
self.targetGroup.setLayout(targetLayout)
|
||||||
self.tablelayout.addWidget(self.targetGroup)
|
self.tablelayout.addWidget(self.targetGroup)
|
||||||
|
|
|
@ -11,7 +11,7 @@ matplotlib.rcParams["ytick.color"] = "w"
|
||||||
matplotlib.rcParams["text.color"] = "w"
|
matplotlib.rcParams["text.color"] = "w"
|
||||||
|
|
||||||
class MPLCanvas(FigureCanvasQTAgg):
|
class MPLCanvas(FigureCanvasQTAgg):
|
||||||
def __init__(self, parent=None, width=5, height=4, dpi=100):
|
def __init__(self, parent=None, width=3, height=4, dpi=100):
|
||||||
self.fig = Figure(figsize=(width, height), dpi=dpi, edgecolor="black",linewidth=0.5)
|
self.fig = Figure(figsize=(width, height), dpi=dpi, edgecolor="black",linewidth=0.5)
|
||||||
self.axes = self.fig.add_subplot(111)
|
self.axes = self.fig.add_subplot(111)
|
||||||
self.axes.spines['top'].set_visible(False)
|
self.axes.spines['top'].set_visible(False)
|
||||||
|
|
|
@ -94,9 +94,9 @@ class ReactionDialog(QDialog):
|
||||||
self.bfieldInput = QDoubleSpinBox(self.parameterGroupBox)
|
self.bfieldInput = QDoubleSpinBox(self.parameterGroupBox)
|
||||||
self.bfieldInput.setRange(MINIMUM_MAG_FIELD, MAXIMUM_MAG_FIELD)
|
self.bfieldInput.setRange(MINIMUM_MAG_FIELD, MAXIMUM_MAG_FIELD)
|
||||||
self.bfieldInput.setDecimals(6)
|
self.bfieldInput.setDecimals(6)
|
||||||
parameterLayout.addRow("Beam KE(Mev)",self.bkeInput)
|
parameterLayout.addRow(QLabel("E<sub>beam</sub>(Mev)"),self.bkeInput)
|
||||||
parameterLayout.addRow("Theta(deg)",self.thetaInput)
|
parameterLayout.addRow("<p>θ<sub>SPS</sub>(deg)</p>",self.thetaInput)
|
||||||
parameterLayout.addRow("Bfield(kG)",self.bfieldInput)
|
parameterLayout.addRow("B(kG)",self.bfieldInput)
|
||||||
self.parameterGroupBox.setLayout(parameterLayout)
|
self.parameterGroupBox.setLayout(parameterLayout)
|
||||||
self.layout.addWidget(self.parameterGroupBox)
|
self.layout.addWidget(self.parameterGroupBox)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user