From 8ced3240799b418e1fad1850f62e1f99d3373ea4 Mon Sep 17 00:00:00 2001 From: Blaise Thompson Date: Wed, 11 Apr 2018 14:49:11 -0500 Subject: 2018-04-11 14:49 --- acquisition/chapter.tex | 58 ++++++++++++++++++++++++++++++++++--------------- dissertation.tex | 20 ++++++++--------- todo.org | 52 +++++++++++++++++++++----------------------- todo.org_archive | 27 +++++++++++++++++++++++ 4 files changed, 103 insertions(+), 54 deletions(-) diff --git a/acquisition/chapter.tex b/acquisition/chapter.tex index d997e44..86c5c8c 100644 --- a/acquisition/chapter.tex +++ b/acquisition/chapter.tex @@ -11,7 +11,6 @@ \section{Introduction} % ========================================================================= -MR-CMDS instruments need to be capable of several different things. % At its core, MR-CMDS is about delivering multiple pulses of light to a sample. % The frequency and relative arrival time (delay) of each pulse must be scanned in the context of a basic multidimensional experiment. % @@ -25,7 +24,7 @@ An automated monchromator is typically used to spectrally resolve or isolate out Each of these features is an optomechanical device: a piece of hardware that must be controlled in the context of an MR-CMDS experiment. % -A scan in MR-CMDS typically means going to a whole series of different positions. % +A scan in MR-CMDS typically means sending hardware to a whole series of different positions. % As an example, a three-dimensional ``movie'' might be collected in the following way: \begin{codefragment}{python, label=aqn:lst:psuedoaqn} w1_points = [14300, 14400, 14500, 14600, 14700] # wn @@ -59,21 +58,35 @@ software must be built in an extendable way to accommodate the ever-changing har configurations. % In this chapter I describe how I built such an acquisition software, PyCMDS. % +For context, some description of the acquisition software that PyCMDS replaced is warranted. % + +On the ``ps table'' (focus on mixed vibrational-electronic spectroscopy of molecular systems), +PyCMDS replaces `ps\_control', an older acquisition software first developed in [YEAR] by Kent +Meyer [CITE]. % +ps\_control was very-much not modular, designed by generations of graduate students to get to +``minimum viable'' as quickly as possible. % +When I joined the group, ps\_control had become unsustainable. % +The ps table was being revamped with new hardware, and the old motherboard finally died, so new +software was desperately needed. % + +On the ``fs table'' (focus on semiconductor photophysics), PyCMDS replaces `Control for Lots of +Research in Spectroscopy' (COLORS), developed by Schuyler Kain [CITE]. % +PyCMDS is, in many ways, inspired by COLORS. % +Kain's design was modular in many ways. % +Still, there were fundamental problems that COLORS could not address. % +Chief among them was Kain's approach to the National Instruments DAQ card, which did not allow for +the flexibility required to introduce more interesting chopping schemes [SECTION]. % + PyCMDS is a unified software for controlling hardware and collecting data in the Wright Group. % -It is written almost entirely in Python, with a graphical user interface (GUI) made using Qt. -[CITE] % +It is written almost entirely in Python, with a graphical user interface (GUI) made using Qt +[CITE]. % It is cross-platform, with a core capable of running on Linux, Windows and macOS. % It is open source, developed on GitHub. [CITE (GITHUB, PyCMDS)] % -In the Wright Group, PyCMDS replaces the old acquisition softwares `ps control', written by -Kent Meyer, [CITE] and `Control for Lots of Research in Spectroscopy' (COLORS) written by Schuyler -Kain [CITE]. % -Today PyCMDS is used to drive both of the MR-CMDS instruments maintained by the Wright Group: the -``fs table'', focused on semiconductor photophysics, and the ``ps table'', focused on molecular -systems. % -% BJT: consider giving more historical context re: COLORS, ps_control - -PyCMDS is best thought of as a central program with three kinds of modular ``plugins'' that can be -extended indefinitely: +Today PyCMDS is used to drive both the ps and fs tables. % + +PyCMDS is best thought of as a core program with three kinds of modular ``plugins'' that can be +extended as needed. % +The three plugin kinds are \begin{ditemize} \item Hardware: things that can be set to a position (\autoref{aqn:sec:hardware}). \item Sensors: things that can be used to measure a signal (\autoref{aqn:sec:sensors}). @@ -92,9 +105,13 @@ Besides the extendable modular pieces, the rest of PyCMDS is a mostly-static cod modules and does the necessary things to handle display of information from, and communication between them. % -% TODO: describe each of the sections of this chapter - -In designing PyCMDS, I was inspired by the nervous system... +PyCMDS offers many ways to interact with component hardwares. % +Hardware can be set directly, or it can be moved in the context of a scan. % +Less obviously, hardware must also move in the context of ``active correction'', such as spectral +delay correction. % +I love to use the analogy of the nervous system when thinking of these two kinds of +instructions. % +I have borrowed the terms ``autonomic'' and ``somatic'': \begin{dquote} The autonomic nervous system, which innervates primarily the smooth musculature of all organs, @@ -114,6 +131,13 @@ In designing PyCMDS, I was inspired by the nervous system... \dsignature{W. J\"{a}nig, Autonomic Nervous System (1989) \cite{JanigW1989a}} \end{dquote} +Within PyCMDS, the autonomic system [SECTION] handles the ``reflex'' motion that is part of active +correction. % +The somatic system [SECTION], on the other hand, handles the ``voluntary'' motion in the context of +acquiring a multidimensional scan. % + +% BJT: consider a layout preview paragraph or two + \clearpage \section{Graphical user interface} % ============================================================= diff --git a/dissertation.tex b/dissertation.tex index a38db68..798d378 100644 --- a/dissertation.tex +++ b/dissertation.tex @@ -64,21 +64,21 @@ This dissertation is approved by the following members of the Final Oral Committ \include{introduction/chapter} \part{Background} \label{prt:background} -\include{spectroscopy/chapter} -\include{software/chapter} % sof +%\include{spectroscopy/chapter} +%\include{software/chapter} % sof \part{Development} \label{prt:development} -\include{processing/chapter} % pro +%\include{processing/chapter} % pro \include{acquisition/chapter} % acq -\include{active_correction/chapter} % act -\include{opa/chapter} % opa -\include{mixed_domain/chapter} +%\include{active_correction/chapter} % act +%\include{opa/chapter} % opa +%\include{mixed_domain/chapter} \part{Applications} \label{prt:applications} -\include{PbSe_susceptibility/chapter} -\include{PbSe_global_analysis/chapter} -\include{MX2/chapter} -\include{PEDOT_PSS/chapter} +%\include{PbSe_susceptibility/chapter} +%\include{PbSe_global_analysis/chapter} +%\include{MX2/chapter} +%\include{PEDOT_PSS/chapter} % appendix ----------------------------------------------------------------------------------------- diff --git a/todo.org b/todo.org index 0f0687c..24fa962 100644 --- a/todo.org +++ b/todo.org @@ -1,9 +1,3 @@ -* DONE distribution section :processing: - CLOSED: [2018-04-11 Wed 11:28] -* DONE development history from github :processing: - CLOSED: [2018-04-11 Wed 11:29] -* DONE development section :processing: - CLOSED: [2018-04-11 Wed 11:30] * TODO headers :introduction: * TODO cite important CMDS discoveries, reviews :introduction: * TODO incorporate Nancy's comments :introduction: @@ -14,26 +8,29 @@ * TODO verify light-matter interaction content :spectroscopy: * TODO finish instrumentation section (darien) :spectroscopy: * IDEA linear vs multidimensional figure :spectroscopy: -* IDEA see Paul's dissertation re: loss of resonance advantage with very fast pulses :spectroscopy: -* TODO more references for object oriented programming :software: -* IDEA incorporate StoddenVictoria2016a :software: -* IDEA incorporate idea "most people over-trust software" :software: -* IDEA consider refactoring or expanding OOP section :software: -* TODO summary paragraphs in introduction :processing: -* TODO finish discussing interpolation types :processing: +* IDEA see Paul's dissertation :spectroscopy: +** re: loss of resonance advantage with very fast pulses +* TODO more references for object oriented programming :sof: +** in inbox +* IDEA incorporate StoddenVictoria2016a :sof: +* IDEA incorporate idea "most people over-trust software" :sof: +* IDEA consider refactoring or expanding OOP section :sof: +* TODO summary paragraphs in introduction :pro: +* TODO finish discussing interpolation types :pro: ** TODO describe figure -* TODO specialty artists :processing: -* TODO artist API :processing: -* TODO gotchas (figures from czech...) :processing: -* TODO axes content :processing: -* TODO level :processing: -* TODO tables :processing: -* TODO finish describing function objects :processing: -* TODO describe continuous integration :processing: -* TODO describe readthedocs documentation :processing: -* TODO future directions :processing: -* TODO figure captions :processing: -* TODO flesh out introduction :acq: +* TODO specialty artists :pro: +* TODO artist API :pro: +* TODO gotchas (figures from czech...) :pro: +* TODO axes content :pro: +* TODO level :pro: +* TODO tables :pro: +* TODO finish describing function objects :pro: +* TODO describe continuous integration :pro: +* TODO describe readthedocs documentation :pro: +* TODO future directions :pro: +* TODO figure captions :pro: +* DONE flesh out introduction :acq: + CLOSED: [2018-04-11 Wed 14:48] * TODO show queue figure in GUI section :acq: * TODO parents _are_ virtual hardware :acq: * TODO hardware advanced panel descriptions :acq: @@ -47,12 +44,13 @@ * TODO introduction paragraphs :act: * TODO spectral delay correction :act: * TODO poynting correction :act: -* IDEA excitation power correction :act: * TODO chopping (minimal) :act: * TODO fibrillation (minimal) :act: * TODO conclusions :act: * TODO figure captions :act: +* IDEA excitation power correction :act: +* IDEA 2D delay example from ps system :act: * TODO insert content :PbSe: * TODO insert content from SI :mixed_domain: -* IDEA 2D delay example from ps system :active: * TODO verify all references :polish: +* TODO read through and make links where appropriate :polish: diff --git a/todo.org_archive b/todo.org_archive index 2949981..324681b 100644 --- a/todo.org_archive +++ b/todo.org_archive @@ -76,3 +76,30 @@ Archived entries from file /home/blaise/source/dissertation/todo.org :ARCHIVE_CATEGORY: todo :ARCHIVE_TODO: DONE :END: + +* DONE distribution section :processing: + CLOSED: [2018-04-11 Wed 11:28] + :PROPERTIES: + :ARCHIVE_TIME: 2018-04-11 Wed 14:04 + :ARCHIVE_FILE: ~/source/dissertation/todo.org + :ARCHIVE_CATEGORY: todo + :ARCHIVE_TODO: DONE + :END: + +* DONE development history from github :processing: + CLOSED: [2018-04-11 Wed 11:29] + :PROPERTIES: + :ARCHIVE_TIME: 2018-04-11 Wed 14:04 + :ARCHIVE_FILE: ~/source/dissertation/todo.org + :ARCHIVE_CATEGORY: todo + :ARCHIVE_TODO: DONE + :END: + +* DONE development section :processing: + CLOSED: [2018-04-11 Wed 11:30] + :PROPERTIES: + :ARCHIVE_TIME: 2018-04-11 Wed 14:04 + :ARCHIVE_FILE: ~/source/dissertation/todo.org + :ARCHIVE_CATEGORY: todo + :ARCHIVE_TODO: DONE + :END: -- cgit v1.2.3