From 4aff4cd0dbc496f7f6a285f955197bca41fab5cd Mon Sep 17 00:00:00 2001 From: pbelange Date: Mon, 14 Nov 2022 17:41:54 +0100 Subject: [PATCH] fixed wire insallation for lhcb4 --- python_examples/run3_collisions_wire/bbcw.py | 20 +++++++++++++++--- .../optics_specific_tools.py | 21 +++++++------------ 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/python_examples/run3_collisions_wire/bbcw.py b/python_examples/run3_collisions_wire/bbcw.py index ccb6e61..e1e4224 100644 --- a/python_examples/run3_collisions_wire/bbcw.py +++ b/python_examples/run3_collisions_wire/bbcw.py @@ -47,6 +47,15 @@ ('bbcwe.4r5.d.b2' ,'147.35+(308-ip5ofs.b2)*ds','ip5'), ('bbcwi.4r5.d.b2' ,'147.35+(308-ip5ofs.b2)*ds','ip5')] +WIRE_INSTALL_FALLBACK['b4'] = [('bbcwb.a4r1.d.b2','-145.35+(0-ip1ofs.b2)*ds' ,'ip1'), + ('bbcwt.a4r1.d.b2','-145.35+(0-ip1ofs.b2)*ds' ,'ip1'), + ('bbcwb.a4r1.u.b2','-146.54+(0-ip1ofs.b2)*ds' ,'ip1'), + ('bbcwt.a4r1.u.b2','-146.54+(0-ip1ofs.b2)*ds' ,'ip1'), + ('bbcwe.4r5.u.b2' ,'-148.54+(308-ip5ofs.b2)*ds','ip5'), + ('bbcwi.4r5.u.b2' ,'-148.54+(308-ip5ofs.b2)*ds','ip5'), + ('bbcwe.4r5.d.b2' ,'-147.35+(308-ip5ofs.b2)*ds','ip5'), + ('bbcwi.4r5.d.b2' ,'-147.35+(308-ip5ofs.b2)*ds','ip5')] + @@ -79,14 +88,19 @@ # Utilities #===================================================== -def install_wires(mad,configuration,seq_name): +def install_wires(mad,mylhcbeam,configuration,seq_name): # installing monitors if not in seq_name: if configuration['wires_at_fallback']: - to_install = pd.DataFrame(WIRE_INSTALL_FALLBACK[seq_name[-2:]],columns=['element','at','from']) + # Remove first + to_remove = pd.DataFrame(WIRE_INSTALL_FALLBACK[f'b{mylhcbeam}'],columns=['element','at','from']) + to_remove.insert(0,'mode','remove') + pmTools.seqedit(mad,seq_name=seq_name,editing = to_remove) + + # Then install + to_install = pd.DataFrame(WIRE_INSTALL_FALLBACK[f'b{mylhcbeam}'],columns=['element','at','from']) to_install.insert(0,'mode','install') to_install.insert(2,'class','monitor') - pmTools.seqedit(mad,seq_name=seq_name,editing = to_install) diff --git a/python_examples/run3_collisions_wire/optics_specific_tools.py b/python_examples/run3_collisions_wire/optics_specific_tools.py index 14d6673..c9eec24 100644 --- a/python_examples/run3_collisions_wire/optics_specific_tools.py +++ b/python_examples/run3_collisions_wire/optics_specific_tools.py @@ -15,10 +15,6 @@ def build_sequence(mad, beam, configuration): #slicefactor = 2 # For testing slicefactor = 8 # For production - pm.make_links(force=True, links_dict={ - 'optics_runII': '/afs/cern.ch/eng/lhc/optics/runII', - 'optics_runIII': '/afs/cern.ch/eng/lhc/optics/runIII',}) - mylhcbeam = int(beam) mad.input('ver_lhc_run = 3') @@ -27,7 +23,7 @@ def build_sequence(mad, beam, configuration): mad.input('option, -echo,warn, -info;') # optics dependent macros (for splitting) - mad.call('optics_runII/2018/toolkit/macro.madx') + mad.call('tracking_tools/macro.madx') # Redefine macros _redefine_crossing_save_disable_restore(mad) @@ -37,23 +33,20 @@ def build_sequence(mad, beam, configuration): assert mylhcbeam in [1, 2, 4], "Invalid mylhcbeam (it should be in [1, 2, 4])" -# if mylhcbeam in [1, 2]: -# mad.call('/afs/cern.ch/eng/acc-models/lhc/current/lhc.seq') -# else: -# mad.call('/afs/cern.ch/eng/acc-models/lhc/current/lhcb4.seq') + if mylhcbeam in [1, 2]: - mad.call('optics_runII/2018/lhc_as-built.seq') + mad.call('tracking_tools/../../Sequences/lhc.seq') else: - mad.call('optics_runII/2018/lhcb4_as-built.seq') + mad.call('tracking_tools/../../Sequences/lhcb4.seq') # New IR7 MQW layout and cabling - mad.call('optics_runIII/RunIII_dev/IR7-Run3seqedit.madx') + mad.call('tracking_tools/IR7-Run3seqedit.madx') # Makethin part if slicefactor > 0: # the variable in the macro is slicefactor mad.input(f'slicefactor={slicefactor};') - mad.call('optics_runII/2018/toolkit/myslice.madx') + mad.call('tracking_tools/myslice.madx') mad.beam() for my_sequence in ['lhcb1','lhcb2']: if my_sequence in list(mad.sequence): @@ -71,7 +64,7 @@ def build_sequence(mad, beam, configuration): # Installing wires in collimators if configuration['install_wires']: for my_sequence in ['lhcb1','lhcb2']: - bbcw.install_wires(mad,configuration,seq_name=my_sequence) + bbcw.install_wires(mad,mylhcbeam,configuration,seq_name=my_sequence)