From aa24e095a65cb93cba7c85d816d18457291d67f9 Mon Sep 17 00:00:00 2001
From: Sylvester Joosten <sjoosten@anl.gov>
Date: Tue, 5 Oct 2021 22:35:13 +0000
Subject: [PATCH] Factor out field definitions and add setups for 275/100/41
 GeV

---
 eic_ip6.xml                    |  2 ++
 ip6/far_forward_fields_100.xml | 35 ++++++++++++++++++++++++++++++++++
 ip6/far_forward_fields_275.xml | 30 +++++++++++++++++++++++++++++
 ip6/far_forward_fields_41.xml  | 34 +++++++++++++++++++++++++++++++++
 ip6/ip6_defs.xml               | 26 -------------------------
 5 files changed, 101 insertions(+), 26 deletions(-)
 create mode 100644 ip6/far_forward_fields_100.xml
 create mode 100644 ip6/far_forward_fields_275.xml
 create mode 100644 ip6/far_forward_fields_41.xml

diff --git a/eic_ip6.xml b/eic_ip6.xml
index eeda325..e7e2b18 100644
--- a/eic_ip6.xml
+++ b/eic_ip6.xml
@@ -11,6 +11,8 @@
     <constant name="BeamPipe_ID" value="2"/>
 
     <include ref="ip6/ip6_defs.xml" />
+    <comment> Change this to 275/100/41 to change the field setup</comment>
+    <include ref="ip6/far_forward_fields_275.xml" />
 
     <comment> 
       
diff --git a/ip6/far_forward_fields_100.xml b/ip6/far_forward_fields_100.xml
new file mode 100644
index 0000000..996645d
--- /dev/null
+++ b/ip6/far_forward_fields_100.xml
@@ -0,0 +1,35 @@
+<define>
+
+  <comment> 
+      All magnet values are input by hand and represent the implementation in EICRoot used for the Yellow Report.
+
+      The original values were calculated for 275 GeV ions. For now, we can get a lower energy tune
+      by scaling down all magnets (except for B0pf) by new_beam_energy/275.
+
+      This is the 100GeV file, so we applied 100/275.
+  </comment>
+
+  <constant name="B0PF_GradientMax"  value="-8.12238283*tesla/m"/>
+  <constant name="B0APF_GradientMax" value="0.0*tesla/m"/>
+  <constant name="Q1APF_GradientMax" value="-26.40290909*tesla/m"/>
+  <constant name="Q1BPF_GradientMax" value="-22.99827419*tesla/m"/>
+  <constant name="Q2PF_GradientMax"  value="13.4120059*tesla/m"/>
+  <constant name="B1PF_GradientMax"  value="0.0*tesla/m"/>
+  <constant name="B1APF_GradientMax" value="0.0*tesla/m"/>
+  <constant name="B2PF_GradientMax"  value="0.0*tesla/m"/>
+  <constant name="Q0EF_GradientMax" value="-4.774134545*tesla/m"/>
+  <constant name="Q1EF_GradientMax"  value="2.127596364*tesla/m"/>
+
+  <constant name="B0PF_Bmax"  value="1.1840539*tesla"/>
+  <constant name="B0APF_Bmax" value="1.247798873*tesla"/>
+  <constant name="Q1APF_Bmax" value="0.0*tesla"/>
+  <constant name="Q1BPF_Bmax" value="0.0*tesla"/>
+  <constant name="Q2PF_Bmax"  value="0.0*tesla"/>
+  <constant name="B1PF_Bmax"  value="1.253814182*tesla"/>
+  <constant name="B1APF_Bmax" value="0.9818181818*tesla"/>
+  <constant name="B2PF_Bmax" value="-1.741459709*tesla"/>
+  <constant name="Q0EF_BMax" value="0.0*tesla"/>
+  <constant name="Q1EF_BMax"  value="0.0*tesla"/>
+
+</define>
+
diff --git a/ip6/far_forward_fields_275.xml b/ip6/far_forward_fields_275.xml
new file mode 100644
index 0000000..4ce7c41
--- /dev/null
+++ b/ip6/far_forward_fields_275.xml
@@ -0,0 +1,30 @@
+<define>
+
+  <comment> 
+      All magnet values are input by hand and represent the implementation in EICRoot used for the Yellow Report.
+  </comment>
+
+  <constant name="B0PF_GradientMax"  value="-8.12238283*tesla/m"/>
+  <constant name="B0APF_GradientMax" value="0.0*tesla/m"/>
+  <constant name="Q1APF_GradientMax" value="-72.608*tesla/m"/>
+  <constant name="Q1BPF_GradientMax" value="-63.24525402*tesla/m"/>
+  <constant name="Q2PF_GradientMax"  value="36.88301623*tesla/m"/>
+  <constant name="B1PF_GradientMax"  value="0.0*tesla/m"/>
+  <constant name="B1APF_GradientMax" value="0.0*tesla/m"/>
+  <constant name="B2PF_GradientMax"  value="0.0*tesla/m"/>
+  <constant name="Q0EF_GradientMax" value="-13.12887*tesla/m"/>
+  <constant name="Q1EF_GradientMax"  value="5.85089*tesla/m"/>
+
+  <constant name="B0PF_Bmax"  value="1.1840539*tesla"/>
+  <constant name="B0APF_Bmax" value="3.4314469*tesla"/>
+  <constant name="Q1APF_Bmax" value="0.0*tesla"/>
+  <constant name="Q1BPF_Bmax" value="0.0*tesla"/>
+  <constant name="Q2PF_Bmax"  value="0.0*tesla"/>
+  <constant name="B1PF_Bmax"  value="3.447989*tesla"/>
+  <constant name="B1APF_Bmax" value="2.7*tesla"/>
+  <constant name="B2PF_Bmax" value="-4.7890142*tesla"/>
+  <constant name="Q0EF_BMax" value="0.0*tesla"/>
+  <constant name="Q1EF_BMax"  value="0.0*tesla"/>
+
+</define>
+
diff --git a/ip6/far_forward_fields_41.xml b/ip6/far_forward_fields_41.xml
new file mode 100644
index 0000000..8dd1f9a
--- /dev/null
+++ b/ip6/far_forward_fields_41.xml
@@ -0,0 +1,34 @@
+<define>
+
+  <comment> 
+      All magnet values are input by hand and represent the implementation in EICRoot used for the Yellow Report.
+
+      The original values were calculated for 275 GeV ions. For now, we can get a lower energy tune
+      by scaling down all magnets (except for B0pf) by new_beam_energy/275.
+
+      This is the 41GeV file, so we applied 41/275.
+  </comment>
+
+  <constant name="B0PF_GradientMax"  value="-8.12238283*tesla/m"/>
+  <constant name="B0APF_GradientMax" value="0.0*tesla/m"/>
+  <constant name="Q1APF_GradientMax" value="-10.82519273*tesla/m"/>
+  <constant name="Q1BPF_GradientMax" value="-9.429292418*tesla/m"/>
+  <constant name="Q2PF_GradientMax"  value="5.49892242*tesla/m"/>
+  <constant name="B1PF_GradientMax"  value="0.0*tesla/m"/>
+  <constant name="B1APF_GradientMax" value="0.0*tesla/m"/>
+  <constant name="B2PF_GradientMax"  value="0.0*tesla/m"/>
+  <constant name="Q0EF_GradientMax" value="-1.957395164*tesla/m"/>
+  <constant name="Q1EF_GradientMax"  value="0.8723145091*tesla/m"/>
+
+  <constant name="B0PF_Bmax"  value="1.1840539*tesla"/>
+  <constant name="B0APF_Bmax" value="0.5115975378*tesla"/>
+  <constant name="Q1APF_Bmax" value="0.0*tesla"/>
+  <constant name="Q1BPF_Bmax" value="0.0*tesla"/>
+  <constant name="Q2PF_Bmax"  value="0.0*tesla"/>
+  <constant name="B1PF_Bmax"  value="0.5140638145*tesla"/>
+  <constant name="B1APF_Bmax" value="0.4025454545*tesla"/>
+  <constant name="B2PF_Bmax" value="-0.7139984807*tesla"/>
+  <constant name="Q0EF_BMax" value="0.0*tesla"/>
+  <constant name="Q1EF_BMax"  value="0.0*tesla"/>
+
+</define>
diff --git a/ip6/ip6_defs.xml b/ip6/ip6_defs.xml
index cd9f7c1..0006e9e 100644
--- a/ip6/ip6_defs.xml
+++ b/ip6/ip6_defs.xml
@@ -45,32 +45,6 @@
 
   </comment>
 
-<comment> All magnet values are input by hand and represent the implementation in EICRoot used for the Yellow Report.</comment>
-
-    <constant name="B0PF_GradientMax"  value="-8.12238283*tesla/m"/>
-    <constant name="B0APF_GradientMax" value="0.0*tesla/m"/>
-    <constant name="Q1APF_GradientMax" value="-72.608*tesla/m"/>
-    <constant name="Q1BPF_GradientMax" value="-63.24525402*tesla/m"/>
-    <constant name="Q2PF_GradientMax"  value="36.88301623*tesla/m"/>
-    <constant name="B1PF_GradientMax"  value="0.0*tesla/m"/>
-    <constant name="B1APF_GradientMax" value="0.0*tesla/m"/>
-    <constant name="B2PF_GradientMax"  value="0.0*tesla/m"/>
-    <constant name="Q0EF_GradientMax" value="-13.12887*tesla/m"/>
-    <constant name="Q1EF_GradientMax"  value="5.85089*tesla/m"/>
-
-	<!-- big flip - dipole fields change sign, quads stay the same -->
-
-    <constant name="B0PF_Bmax"  value="1.1840539*tesla"/>
-    <constant name="B0APF_Bmax" value="3.4314469*tesla"/>
-    <constant name="Q1APF_Bmax" value="0.0*tesla"/>
-    <constant name="Q1BPF_Bmax" value="0.0*tesla"/>
-    <constant name="Q2PF_Bmax"  value="0.0*tesla"/>
-    <constant name="B1PF_Bmax"  value="3.447989*tesla"/>
-    <constant name="B1APF_Bmax" value="2.7*tesla"/>
-    <constant name="B2PF_Bmax" value="-4.7890142*tesla"/>
-    <constant name="Q0EF_BMax" value="0.0*tesla"/>
-    <constant name="Q1EF_BMax"  value="0.0*tesla"/>
-
     <constant name="B0PF_InnerRadius"  value="20.0*cm"/>
     <constant name="B0APF_InnerRadius" value="4.3*cm"/>
     <constant name="Q1APF_InnerRadius" value="5.6*cm"/>
-- 
GitLab