Lattice 11.0.7 - Optimized Switchyard + Diagnostic Boxes (Phase Planned)
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s
This commit is contained in:
@@ -331,10 +331,16 @@ import math
|
||||
# 3) Instrument Switchyard with addition quadrupoles (sextupole, skew quadrupoles, QFM correctors)
|
||||
# 4) Instument S20BC01 with diagnostics.
|
||||
|
||||
# Layout 11.0.7
|
||||
# 1) Added a second sextupole in switchyard SATSY03
|
||||
# 2) Added a screen in S30CB01 for emittance measurements
|
||||
# 3) Add an additional QFM corrector
|
||||
# 4) Add the Diagnostic test chambers in SARMA01 in phase planned.
|
||||
|
||||
class SwissFEL:
|
||||
def __init__(self,alt=0):
|
||||
self.alt=alt
|
||||
self.Version='11.0.6'
|
||||
self.Version='11.0.7'
|
||||
|
||||
def Types(self,TM):
|
||||
# type definitions for the SwissFEL lattice
|
||||
@@ -694,10 +700,13 @@ class SwissFEL:
|
||||
indict={'Type':'Vacuum','Length':1.5,'Tag':'SLOS','Baugruppe': 'SHIELD-FE'}
|
||||
TM.define('FE-Shielding',indict)
|
||||
|
||||
#Laser Acceleration
|
||||
#Laser Acceleration and advance diagnostics/instrumentation
|
||||
indict={'Type':'Diagnostic','Length':2.13,'Tag':'DLAC','Aperx':0,'Baugruppe':'LASER-ACC-BOX'}
|
||||
TM.define('Laser-Acceleration',indict)
|
||||
|
||||
indict={'Type':'Diagnostic','Length':0.276,'Tag':'DCKR','Aperx':0,'Baugruppe':'CHERENKOV-Radiator'}
|
||||
TM.define('Cherenkov',indict)
|
||||
indict={'Type':'Diagnostic','Length':0.276,'Tag':'DWSS','Aperx':0,'Baugruppe':'DWSC-Spider'}
|
||||
TM.define('WSSpider',indict)
|
||||
|
||||
# define branching point
|
||||
indict={'Type':'Marker','Length':0.0,'Tag':'MKBR','Baugruppe': 'BRANCHING-POINT'}
|
||||
@@ -1432,7 +1441,10 @@ class SwissFEL:
|
||||
# Linac 3
|
||||
|
||||
CB01=TM.generate('CB-Lin3-Cell-incomplete',0,{'Name':'CB01'})
|
||||
CB01.append(TM.generate('DWSC-C16',440),0.019,'relative')
|
||||
if self.alt < 2:
|
||||
CB01.append(TM.generate('DWSC-C16',440),0.019,'relative')
|
||||
else:
|
||||
CB01.append(TM.generate('DSCR-HR16',440),0.019,'relative')
|
||||
CB02=TM.generate('CB-Lin3-Cell-incomplete',0,{'Name':'CB02'})
|
||||
CB03=TM.generate('CB-Lin3-Cell-incomplete',0,{'Name':'CB03'})
|
||||
CB04=TM.generate('CB-Lin3-Cell-incomplete',0,{'Name':'CB04'})
|
||||
@@ -1567,7 +1579,12 @@ class SwissFEL:
|
||||
MA01.append(TM.generate('DBPM-C16',40),0.25+0.7+0.1,'relative')
|
||||
MA01.append(TM.generate('SFQFM',50),0.00,'relative')
|
||||
MA01.append(TM.generate('QFM',60),0.0,'relative')
|
||||
MA01.append(TM.generate('SFQFM',70),2.55,'relative')
|
||||
if self.alt > 0:
|
||||
MA01.append(TM.generate('Cherenkov',64),1,'relative')
|
||||
MA01.append(TM.generate('WSSpider', 66), 0, 'relative')
|
||||
MA01.append(TM.generate('SFQFM',70),2.55-1.552,'relative')
|
||||
else:
|
||||
MA01.append(TM.generate('SFQFM', 70), 2.55, 'relative')
|
||||
MA01.append(TM.generate('QFM',80),0.0,'relative')
|
||||
MA01.append(TM.generate('DICT-C16',90),1.95-0.075-0.09+0.1575-0.05,'relative')
|
||||
MA01.append(TM.generate('DBPM-C16',100),0.2+0.175-0.1575+0.05,'relative')
|
||||
@@ -1742,14 +1759,14 @@ class SwissFEL:
|
||||
SY02.append(TM.generate('QFM-veryshort', 10), 0.3, 'relative')
|
||||
SY02.append(TM.generate('AFL', 100,{'angle': 0.57, 'design_angle': 0.57, 'e1': 0, 'e2': 1., 'Tilt': math.asin(1)}),0.3, 'relative')
|
||||
SY02.append(TM.generate('AFL', 200,{'angle': -0.57, 'design_angle': -0.57, 'e1': 1, 'e2': 0., 'Tilt': math.asin(1)}),0.8, 'relative')
|
||||
SY02.append(TM.generate('QFM-veryshort', 210), 0.15+0.5, 'relative')
|
||||
SY02.append(TM.generate('DBPM-C16', 220), 2.55-1-0.5, 'relative')
|
||||
SY02.append(TM.generate('QFM-veryshort', 210), 0.15, 'relative') #+0.5
|
||||
SY02.append(TM.generate('DBPM-C16', 220), 2.55-1, 'relative')#-0.5
|
||||
SY02.append(TM.generate('QFD', 230), 0.1, 'relative')
|
||||
SY02.append(TM.generate('QFD', 240), 2.55+0.5+0.5, 'relative')
|
||||
SY02.append(TM.generate('DBPM-C16', 250), 2.55 - .2+0.5-0.5, 'relative')
|
||||
SY02.append(TM.generate('QFD', 260), 0.1, 'relative')
|
||||
|
||||
SY02.append(TM.generate('DBPM-C16', 270), 17, 'relative')
|
||||
SY02.append(TM.generate('QFM-veryshort', 260), 0.1, 'relative')
|
||||
SY02.append(TM.generate('SFQFM', 265), 0.1, 'relative') #
|
||||
SY02.append(TM.generate('DBPM-C16', 270), 17-0.4, 'relative')
|
||||
SY02.append(TM.generate('DBPM-C16', 280), 17, 'relative')
|
||||
SY02.append(TM.generate('DSCR-HR16', 290), 0.1, 'relative')
|
||||
SY02.append(TM.generate('QFD', 300), 0.063, 'relative')
|
||||
@@ -1761,9 +1778,10 @@ class SwissFEL:
|
||||
|
||||
SY03 = LineContainer('SY03', -0.1)
|
||||
SY03.append(TM.generate('AFBC3-noCor', 100,{'angle': 2.5, 'design_angle': 2.5, 'e1': 1, 'e2': 0., 'BC': 'Switch Yard 2'}), 0.3,'relative')
|
||||
SY03.append(TM.generate('DBPM-C16', 110), 3.5-0.2, 'relative')
|
||||
SY03.append(TM.generate('QFM-veryshort', 120), 0.1, 'relative')
|
||||
SY03.append(TM.generate('HFB', 130), 0.1, 'relative')
|
||||
SY03.append(TM.generate('HFB', 110), 3.5-0.4, 'relative')
|
||||
SY03.append(TM.generate('DBPM-C16', 120), 0.1, 'relative')
|
||||
SY03.append(TM.generate('QFM-veryshort', 130), 0.1, 'relative')
|
||||
SY03.append(TM.generate('HFB', 140), 0.1, 'relative')
|
||||
SY03.append(TM.generate('AFBC3-noCor', 200,{'angle': 2.5, 'design_angle': 2.5, 'e1': 1, 'e2': 0., 'BC': 'Switch Yard 2'}), 3.5-0.2,'relative')
|
||||
SY03.append(TM.generate('DBPM-C16', 210), 0.55-0.2, 'relative')
|
||||
SY03.append(TM.generate('QFD', 220), 0.1, 'relative')
|
||||
@@ -1774,7 +1792,7 @@ class SwissFEL:
|
||||
SY03.append(TM.generate('DBPM-C16', 420), 0.1, 'relative')
|
||||
SY03.append(TM.generate('QFD', 430), 0.1, 'relative')
|
||||
|
||||
BC01 = LineContainer('BC01',-0.3)
|
||||
BC01 = LineContainer('BC01',-0.3748+0.1246)
|
||||
angAT=0.5
|
||||
varSYBC1 = VariableContainer(5, 2.1)
|
||||
varSYBC2 = VariableContainer(5, 0)
|
||||
@@ -1787,7 +1805,7 @@ class SwissFEL:
|
||||
BC01.append(TM.generate('DBPM-C16', 420), 1.85+0.5-0.6 - 0.2, 'relative')
|
||||
BC01.append(TM.generate('QFD', 430), 0.1, 'relative')
|
||||
BC01.append(TM.generate('DCDR-BC2', 440), 1.85 + 0.5-0.6-0.237, 'relative')
|
||||
BC01.append(TM.generate('QFD', 450), 0.1, 'relative')
|
||||
BC01.append(TM.generate('QFM-veryshort', 450), 0.1, 'relative')
|
||||
BC01.append(TM.generate('DBPM-C16', 460), 1.85+0.58699+4.5895e-3-0.6 - 0.2, 'relative')
|
||||
BC01.append(TM.generate('QFD', 470), 0.1, 'relative')
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user