xml2optr issueshttps://gitlab.triumf.ca/hla/acc-utilities/xml2optr/-/issues2021-04-30T09:50:27-07:00https://gitlab.triumf.ca/hla/acc-utilities/xml2optr/-/issues/3Setup xml2optr to handle fringeQ calls2021-04-30T09:50:27-07:00Spencer KiySetup xml2optr to handle fringeQ callsFor discussion on Tuesday. I think we should include the Wollnick integrals in the optr tag of each quad. xml2optr should place a fringeQ call in sy.f only prior to the first quad, and then anytime it changes. Something like this:
```
...For discussion on Tuesday. I think we should include the Wollnick integrals in the optr tag of each quad. xml2optr should place a fringeQ call in sy.f only prior to the first quad, and then anytime it changes. Something like this:
```
<element id="IOS:Q1" type="eq" s="91.48*mm" l="48.92*mm">
<layout x="311.80775*mm" y="66377.769*mm" z="7906.9095*mm"/>
<epics>
<setpoint pv="IOS:Q1:POS:VOL" pol="pos" unit="V" min="0.0" max="10000.0"/>
</epics>
<optr eltrdv="-IOS:Q1:POS:VOL" effl="48.92*mm" aperr="2.540*cm" i_1="0.087" i_2="0.005" i_3="0.033" i_4="-0.234"/>
</element>
```
<beampath xmlns:xi='http://www.w3.org/2001/XInclude'>
We should also consider one more level of abstraction and putting quad types in a config so they can be changed more easily in future:
```
<element id="IOS:Q1" type="eq" s="91.48*mm" l="48.92*mm">
<layout x="311.80775*mm" y="66377.769*mm" z="7906.9095*mm"/>
<epics>
<setpoint pv="IOS:Q1:POS:VOL" pol="pos" unit="V" min="0.0" max="10000.0"/>
</epics>
<optr eltrdv="-IOS:Q1:POS:VOL">
<xi:include href='../quad/eq_isis_type1.xml' />
</optr>
</element>
```
```
<!-- Electrostatic quad. Skimmer radius 0.5"
<quad effl="48.92*mm" aperr="2.540*cm" i_1="0.087" i_2="0.005" i_3="0.033" i_4="-0.234"/>
```
We should also consider refusing to run xml2optr without fringe field specified.