Today we put in operation the new node ARMS_LOCK, which now manages automatically the nodes NARM_LOCK, WARM_LOCK, ALS_NARM and ALS_WARM. It does a similar job to what CARM_DARM_LOCK did in O2 and O3, the name change is due to the fact that its code is vastly different and, for consistency, I am keeping the names of the Metatron nodes not exceeding two fragments.
Here I am reporting the small changes done today to the four managed nodes, then a full description of the ARMS_LOCK node.
NARM_LOCK and WARM_LOCK: with respect to the last update (#51820), the changes are minimal: the new state OFFLOADED_TO_MANAGER has been kept, and it is asked by the new node before switching to the CARM/DARM lock with the beating signals; while doing the transition to this new state, the IR drift control is disengaged and in this state nothing is done or even checked, hence the name.
ALS_NARM and ALS_WARM:
- we removed from the DOWN state any reset of the CARM/DARM logic, as it now happens in the DOWN state of the ARMS_LOCK node;
- the switch from the triggers in transmission (CEB) to the triggers in reflection (ENEB/EWEB) has been removed from the LOCKED state (it only happened in one of the two nodes anyway); there is a new state, LOCKED_BEATING_ON, which is only requested by the manager; in this state (the final one as of now) we change the trigger as described above; the thresholds have been taken and checked from the manual script we were using until now for CARM/DARM, and stored in the [VCO_LOCK] section (dc_trig_refl_* parameters) of the configuration files;
- an overall check of the nodes code has been done, it could be worth to add a timeout in LOCKING in case we lock on a HOM in order to automatically unlock/relock again, to be done.
ARMS_LOCK: here is the description of the main states of the node; as usual, the "not requestable" ones can be requested only from the full states window and not from the drop-down menu;
- DOWN : anything related to CARM/DARM is reset here, then the four managed nodes are requested to go to DOWN as well; from here we can go to one of the following 4 paths:
- 1) MISALIGNED_END_MIRRORS: ALS nodes in DOWN, IR nodes requested to misalign their end mirrors;
- 2) MISALIGNED_ALL_BUT_NI : NI Single Bounce configuration;
- 3) MISALIGNED_ALL_BUT_WI (not requestable) : WI Single Bounce configuration;
- 4) ALIGNED_ARMS (not requestable) : ALS nodes in DOWN, IR nodes in ALIGNED_[NORTH/WEST]_ARM;
- LOCKED_ARMS_IR : with the arms aligned, ALS nodes are still kept DOWN, and the IR nodes are in LOCKED_ON_B[7/8]_BOOST_ON; it's the same as the old LOCKED_ARMS state;
- SCAN_ARMS_ALS : once the arms are locked on the IR, the two ALS nodes are put in the SCAN state; from here we can go in two paths, the first one is auxiliary and completely not requestable:
- 1) LOCKED_ARMS_ALS : the IR nodes are unlocked and put back in the ALIGNED_[NORTH/WEST]_ARM state, while the ALS nodes are locked on the cavities; from here we can add the old reallocation of the VCO correction on the cavity mirrors with the state LOCKED_ALS_REALLOCATION; this path ends here;
- 2) from now on we are on the main lock acquisition path:
- LOCKED_ARMS_IR_ALS : cavities are locked on the IR beam (LOCKED_ON_B[7/8]_BOOST_ON) and ALS are LOCKED on the cavities; this is the last state where this node does little else than asking the managed nodes to do what they can do by themselves, but in a coordinated way; in the following states ARMS_LOCK does most of the job itself;
- ACQUIRE_ARMS_BEATING (not requestable): here NARM_LOCK and WARM_LOCK are asked to go the OFFLOADED_TO_MANAGER state it was described above, and the same happens to the ALS_NARM and ALS_WARM nodes which are requested to go to the LOCKED_BEATING_ON state (triggers moved to reflection); then we move down the ATR Flip Mirror and we setup the CARM and DARM loops with the beating signals: CARM/DARM_FREQ in the sensing, loop filters, gains. IMPORTANT: the computation of the offsets for CARM and DARM is done in the same way as before in the script (but using the ezca library now), but the offsets are not applied to the CARM/DARM loops, but directly on the ALS_CEB_[CARM/DARM]_FREQ signals. This means that on the IR resonance CARM_SET = DARM_SET = 0; after that, the LOCKING_ state does the change of sensors, loops and driving, and finally disables any leftovers of the single arms control loops still hanging around;
- LOCKED_ARMS_BEATING : here we have CARM and DARM locked on the beating signals, with the initial filters and loop gains, on the IR resonance;
- LOCKED_BEATING_BOOST_ON : the final boost filter is engaged (in two steps, to avoid too large glitches in the loops, as usually done by hand);
- LOCKED_CARM_OFFSET_[HIG/MID/LOW] : these states are basically identical, and they are used to set the desired CARM offset, starting from the -3000 Hz necessary for the lock acquisition of the DRMI; the offsets and the number of ramptimes used for each transition are tentatively defined in the configuration file; this is the last set of states of the node, and the one which will be modified more heavily as they reach the point of the lock acquisition where we stand right now.
A few side notes:
- as hinted above, from when we move from the 4 indpendent locks to the lock on the beating signals we do not check anymore the status of the IR lock, as B7/B8_DC become at first very noisy (before the boosts) and then negligible once we put a CARM offset; once we are effectively locked on the beating signals the checks done by the ALS nodes are enough (as an unlock of one of them will unlock everything), but there is a small time window between ACQUIRE_ARMS_BEATING and LOCKED_ARMS_BEATING where we could unlock the IR and not notice for a few seconds until we actually try to lock on the beating signals; it will be monitored if this is a problem and devise a countermeasure in case;
- we added a few smart decorators with state checks and state fallbacks declared as variables; these should help to not return in DOWN for all the managed nodes if only one unlocks; this of course makes sense until just before the CARM/DARM lock with the beating signals, where everything becomes entangled;
- a useful repetition: the CARM and DARM offsets needed by the beating signals to have the IR on resonance are not applied anymore to the CARM/DARM loops but upstream, before the sensing, in the definition of the ALS_CEB_[CARM/DARM]_FREQ_SET setpoints; therefore, when we are -3 kHz away from the IR resonance, LSC_CARM_SET = -3000 and LSC_DARM_SET = 0;
- as explained above, in the ACQUIRE_ARMS_BEATING we turn down the ATR Flip Mirror; for the time being we do NOT turn it back up at each unlock; the lock thresholds and triggers for ALS should be fine either case, to be decided if we want to flip it down and up at each lock acquisition;
- the flags LSC_ALS_{N/W}Arm_SW are still needed to be one when moving to the beating signals; an overall check of the CARM logic will be done together with the channel renaming review;
- the "CARM to MC" logic has not been included yet, it will be done after we recheck that last part of the lock acquisition we were commissioning two weeks ago;
- everything has been set up in terms of DAQ integration, desktop menus and so on;
- please report any bug or misbehaviour.
The new layout of the 5 nodes involved is attached.