Lattice 11.1.0 - Move P3 line to phase current
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:
@@ -337,10 +337,13 @@ import math
|
||||
# 3) Add an additional QFM corrector
|
||||
# 4) Add the Diagnostic test chambers in SARMA01 in phase planned.
|
||||
|
||||
# Layout 11.1.1
|
||||
# Move P3 arm to phase current
|
||||
|
||||
class SwissFEL:
|
||||
def __init__(self,alt=0):
|
||||
self.alt=alt
|
||||
self.Version='11.0.7'
|
||||
self.Version='11.1.0'
|
||||
|
||||
def Types(self,TM):
|
||||
# type definitions for the SwissFEL lattice
|
||||
@@ -1493,12 +1496,12 @@ class SwissFEL:
|
||||
CB15.append(TM.generate('QFA',200),0.1,'relative')
|
||||
|
||||
CB16=LineContainer('SY01', 9.1-0.665)
|
||||
if self.alt > 0: # porthos extraction
|
||||
if self.alt > 1:
|
||||
CB16.append(TM.generate('AFSPO',100,{'angle':0,'design_angle':-2.55,'e1':0,'e2':0,'branch':True,'BC':'Switch Yard 2'}),0.35,'relative')
|
||||
else:
|
||||
CB16.append(TM.generate('B190',100,{'angle':0,'design_angle':-2.55,'e1':0,'e2':0,'branch':True}),0.1-0.00022,'relative')
|
||||
CB16.append(TM.generate('MKBR',101),0.,'relative')
|
||||
|
||||
if self.alt > 1:
|
||||
CB16.append(TM.generate('AFSPO',100,{'angle':0,'design_angle':-2.55,'e1':0,'e2':0,'branch':True,'BC':'Switch Yard 2'}),0.35,'relative')
|
||||
else:
|
||||
CB16.append(TM.generate('B190',100,{'angle':0,'design_angle':-2.55,'e1':0,'e2':0,'branch':True}),0.1-0.00022,'relative')
|
||||
CB16.append(TM.generate('MKBR',101),0.,'relative')
|
||||
|
||||
L3Line =[CB01,CB02,CB03,CB04,CB05,CB06,CB07,CB08,CB09,CB10,CB11,CB12,CB13,CB14,CB15,CB16]
|
||||
Linac30=LineContainer('30')
|
||||
@@ -2173,7 +2176,7 @@ class SwissFEL:
|
||||
AthosDump=LineContainer('AT')
|
||||
AthosDump.append(BD02,0,'relative')
|
||||
|
||||
|
||||
###############################################################################3
|
||||
#
|
||||
# Porthos Branch for FCC experiment
|
||||
#
|
||||
@@ -2181,74 +2184,74 @@ class SwissFEL:
|
||||
d1 = 6-0.3
|
||||
d2 = 1.4+0.5-0.3-0.1
|
||||
doff=0
|
||||
if self.alt == 1:
|
||||
if self.alt < 2:
|
||||
doff = 0.25024755-0.00021974
|
||||
if self.alt >0:
|
||||
SY01=LineContainer('SY01', 0)
|
||||
# first group
|
||||
if self.alt >1:
|
||||
|
||||
SY01=LineContainer('SY01', 0)
|
||||
# first group
|
||||
if self.alt >1:
|
||||
SY01.append(Alignment({'dy':0.01,'Tag':'ALIG','index':1}))
|
||||
SY01.append(TM.generate('DBPM-C16',10),d1+0.2-0.2-doff-0.7+0.06-0.0002,'relative')
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('HFB',20),0.1-0.06,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',20),0.2-0.06,'relative')
|
||||
SY01.append(TM.generate('QFM-short',30),0.2,'relative')
|
||||
SY01.append(TM.generate('SFQFM',40),0.,'relative')
|
||||
if self.alt > 1:
|
||||
SY01.append(TM.generate('QFBS',50),0.2002,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',50),0.3002,'relative')
|
||||
SY01.append(TM.generate('DBPM-C16',10),d1+0.2-0.2-doff-0.7+0.06-0.0002,'relative')
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('HFB',20),0.1-0.06,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',20),0.2-0.06,'relative')
|
||||
SY01.append(TM.generate('QFM-short',30),0.2,'relative')
|
||||
SY01.append(TM.generate('SFQFM',40),0.,'relative')
|
||||
if self.alt > 1:
|
||||
SY01.append(TM.generate('QFBS',50),0.2002,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',50),0.3002,'relative')
|
||||
|
||||
# center group
|
||||
SY01.append(TM.generate('QFM-short',60),d2+0.2+0.7-0.0002,'relative')
|
||||
SY01.append(TM.generate('SFQFM',70),0.,'relative')
|
||||
SY01.append(TM.generate('DBPM-C16',80),0.4+0.0002,'relative')
|
||||
if self.alt > 1:
|
||||
SY01.append(TM.generate('HFB',90),0.3,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',90),0.4,'relative')
|
||||
SY01.append(TM.generate('QFM-short',100),0.2-0.0001,'relative')
|
||||
SY01.append(TM.generate('SFQFM',110),0.,'relative')
|
||||
SY01.append(TM.generate('QFM-short',60),d2+0.2+0.7-0.0002,'relative')
|
||||
SY01.append(TM.generate('SFQFM',70),0.,'relative')
|
||||
SY01.append(TM.generate('DBPM-C16',80),0.4+0.0002,'relative')
|
||||
if self.alt > 1:
|
||||
SY01.append(TM.generate('HFB',90),0.3,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',90),0.4,'relative')
|
||||
SY01.append(TM.generate('QFM-short',100),0.2-0.0001,'relative')
|
||||
SY01.append(TM.generate('SFQFM',110),0.,'relative')
|
||||
|
||||
# last group
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('HFB',120),d2-0.2+1.-0.1,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',120),d2-0.2+1.,'relative')
|
||||
SY01.append(TM.generate('QFM-short',130),0.4,'relative')
|
||||
SY01.append(TM.generate('SFQFM',140),0.,'relative')
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('QFBS',150),0.2,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',150),0.3,'relative')
|
||||
SY01.append(TM.generate('DBPM-C16',160),0.0,'relative')
|
||||
# before last dipole
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('HFB',170),d1+0.2-0.2-0.2-0.7+0.1,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',170),d1+0.2-0.2-0.2+0.1-0.7+0.1,'relative')
|
||||
SY01.append(TM.generate('AFSLS1',200,{'angle':-2.55,'design_angle':-2.55,'e1':-3.4,'e2':-3.4}),0.113,'relative')
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('HFB',120),d2-0.2+1.-0.1,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',120),d2-0.2+1.,'relative')
|
||||
SY01.append(TM.generate('QFM-short',130),0.4,'relative')
|
||||
SY01.append(TM.generate('SFQFM',140),0.,'relative')
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('QFBS',150),0.2,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',150),0.3,'relative')
|
||||
SY01.append(TM.generate('DBPM-C16',160),0.0,'relative')
|
||||
# before last dipole
|
||||
if self.alt >1:
|
||||
SY01.append(TM.generate('HFB',170),d1+0.2-0.2-0.2-0.7+0.1,'relative')
|
||||
else:
|
||||
SY01.append(TM.generate('PHLD',170),d1+0.2-0.2-0.2+0.1-0.7+0.1,'relative')
|
||||
SY01.append(TM.generate('AFSLS1',200,{'angle':-2.55,'design_angle':-2.55,'e1':-3.4,'e2':-3.4}),0.113,'relative')
|
||||
|
||||
|
||||
SY02=LineContainer('SY02',0)
|
||||
SY02.append(TM.generate('QFM',10),0.2-0.0132+0.00012,'relative')
|
||||
angPO=0.1*1.7885*1.085
|
||||
if self.alt > 1:
|
||||
SY02.append(TM.generate('SFQFM',20),0.,'relative')
|
||||
SY02.append(TM.generate('AFSLS1-Vert',100,{'angle':angPO,'design_angle':angPO,'e1':3.4,'e2':3.4}),0.2,'relative')
|
||||
else:
|
||||
SY02.append(TM.generate('PHLD',20),1.1+0.1992048+0.0007886-2.51e-6,'relative')
|
||||
SY02.append(TM.generate('QFM-short',110),0.3,'relative')
|
||||
SY02.append(TM.generate('SFQFM',120),0.,'relative')
|
||||
SY02.append(TM.generate('DBPM-C16',130),0.1-0.02,'relative')
|
||||
if self.alt >1:
|
||||
SY02.append(TM.generate('QFD',140),0.3,'relative')
|
||||
SY02.append(TM.generate('AFSLS1-Vert',200,{'angle':-angPO,'design_angle':-angPO,'e1':-3.4,'e2':-3.4}),0.2,'relative')
|
||||
SY02.append(TM.generate('DBPM-C16',210),0.2,'relative')
|
||||
else:
|
||||
SY02.append(TM.generate('PHLD',140),0.12+0.3+0.3+0.2+0.8+0.3-0.05-1.1e-5+5.38e-6,'relative')
|
||||
if self.alt == 1: # P3 line
|
||||
SY02=LineContainer('SY02',0)
|
||||
SY02.append(TM.generate('QFM',10),0.2-0.0132+0.00012,'relative')
|
||||
angPO=0.1*1.7885*1.085
|
||||
if self.alt > 1:
|
||||
SY02.append(TM.generate('SFQFM',20),0.,'relative')
|
||||
SY02.append(TM.generate('AFSLS1-Vert',100,{'angle':angPO,'design_angle':angPO,'e1':3.4,'e2':3.4}),0.2,'relative')
|
||||
else:
|
||||
SY02.append(TM.generate('PHLD',20),1.1+0.1992048+0.0007886-2.51e-6,'relative')
|
||||
SY02.append(TM.generate('QFM-short',110),0.3,'relative')
|
||||
SY02.append(TM.generate('SFQFM',120),0.,'relative')
|
||||
SY02.append(TM.generate('DBPM-C16',130),0.1-0.02,'relative')
|
||||
if self.alt >1:
|
||||
SY02.append(TM.generate('QFD',140),0.3,'relative')
|
||||
SY02.append(TM.generate('AFSLS1-Vert',200,{'angle':-angPO,'design_angle':-angPO,'e1':-3.4,'e2':-3.4}),0.2,'relative')
|
||||
SY02.append(TM.generate('DBPM-C16',210),0.2,'relative')
|
||||
else:
|
||||
SY02.append(TM.generate('PHLD',140),0.12+0.3+0.3+0.2+0.8+0.3-0.05-1.1e-5+5.38e-6,'relative')
|
||||
if self.alt < 2: # P3 line
|
||||
SY03=LineContainer('SY03',11.3-0.15)
|
||||
SY03.append(TM.generate('QFM',20),0.1+0.0001,'relative')
|
||||
SY03.append(TM.generate('PHLD',30),0.3,'relative')
|
||||
@@ -2372,7 +2375,7 @@ class SwissFEL:
|
||||
PoLine=[]
|
||||
if self.alt > 1:
|
||||
PoLine=[SY01,SY02,SY03,SY04,SY05,CL01]
|
||||
elif self.alt == 1:
|
||||
else:
|
||||
PoLine=[SY01,SY02,SY03,P301,P302]
|
||||
|
||||
Porthos=LineContainer('PO')
|
||||
@@ -2397,26 +2400,16 @@ class SwissFEL:
|
||||
# BranchIndex=-1 -> added to the end of the parent line
|
||||
# BranchIndex=0 -> Beamline is the root element
|
||||
|
||||
if self.alt < 10:
|
||||
PartsList=[[Injector, -1, 0,'SwissFEL Injector'], #0
|
||||
[Linac, 0,-1,'SwissFEL Linac'], #1
|
||||
[Aramis, 1,-1,'Aramis beamline'], #2
|
||||
[Athos, 1, 2,'Athos beamline'], #3
|
||||
[InjectorDump,0, 1,'SwissFEL Injector beam dump'], #4
|
||||
[Linac1Dump, 1, 1,'Linac1 beam dump'], #5
|
||||
[AramisDump, 2, 1,'Aramis beam dump'], #6
|
||||
[AthosDump, 3, 1,'Athos beam dump'], #7
|
||||
[Porthos, 1, 3,'Porthos beamline']] #8
|
||||
else:
|
||||
PartsList=[[Injector, -1, 0,'SwissFEL Injector'], #0
|
||||
[Linac, 0,-1,'SwissFEL Linac'], #1
|
||||
[Aramis, 1,-1,'Aramis beamline'], #2
|
||||
[Athos, 1, 2,'Athos beamline'], #3
|
||||
[InjectorDump,0, 1,'SwissFEL Injector beam dump'], #4
|
||||
[Linac1Dump, 1, 1,'Linac1 beam dump'], #5
|
||||
[AramisDump, 2, 1,'Aramis beam dump'], #6
|
||||
[AthosDump, 3, 1,'Athos beam dump'], #7
|
||||
[Porthos, 1, 3,'Porthos beamline']] #8
|
||||
|
||||
PartsList=[[Injector, -1, 0,'SwissFEL Injector'], #0
|
||||
[Linac, 0,-1,'SwissFEL Linac'], #1
|
||||
[Aramis, 1,-1,'Aramis beamline'], #2
|
||||
[Athos, 1, 2,'Athos beamline'], #3
|
||||
[InjectorDump,0, 1,'SwissFEL Injector beam dump'], #4
|
||||
[Linac1Dump, 1, 1,'Linac1 beam dump'], #5
|
||||
[AramisDump, 2, 1,'Aramis beam dump'], #6
|
||||
[AthosDump, 3, 1,'Athos beam dump'], #7
|
||||
[Porthos, 1, 3,'Porthos beamline']] #8
|
||||
|
||||
return PartsList
|
||||
|
||||
|
||||
Reference in New Issue
Block a user