HGCal DAQ instruction
SYNCH board instruction
READOUT board instruction
- Last version of the READOUT board code in svhgcal01: /home/daq/FINAL_CODES/RDOUTBOARD/RDOUT_BOARD_IPBus/
- Program othe ORM boards:
Building and installing eudaq
- Download the HGCal eudaq code
git clone https://github.com/HGCDAQ/eudaq.git
cd eudaq
source setup_eudaq_cmshgcal.sh
cd build
cmake -DBUILD_cmshgcal=ON ../ #other options: -DBUILD_tlu=ON -DBUILD_ni=ON ...
make install -j16
cd ../
- Create the directories "data", "raw_data", "logs" and "data_root" if they are not already there. They can be symbolic links.
Change the readout mask in the Online Monitoring
- In case the ORM slots are changed by plugging in the HDMI cables from the modules into different slots, one has to adjust a certain file in the eudaq monitoring and recompile.
- On svhgcal01 open EUDAQ_DIR/producers//cmshgcal/src/HexaBoardConvertPlugin.cc. For the default online monitoring from last year EUDAQ_DIR=~/eudaq-DESY-2018, for the combined monitoring with e.g. CrossCorrelations EUDAQ_DIR = ~/dev-eudaq-thorben/eudaq.
- Adjust the const uint32_t skiMask[1] to the pattern by which the ORMs are connected with the LSB starting from the top.
- cd <EUDAQ_DIR>; source setup_eudaq_cmshgcal.sh; cd build; make -j4 install;
Starting eudaq
- Make sure no executables are running on the RPIs:
./stop_exe_on_rpi.sh
- Set the IP addresses of the control ORM boards (source config_ipbus will not work)
./config_ipbus
It power cycles the ORM boards and the hexaboards. At the end of the power cycling, all connected hexaboards should have their LED on. Then it sets the IP addresses of the control ORM boards (of each readout boards) by running the script RDOUT_BOARD_IPBus/rdout_software/ip_mac_addr.sh in the RPI of the readout boards. Finally it tries to ping the IP addresses of all the control ORM boards. If it fails (i.e. the ping command are never satisfied):
- Check the print out of the ip_mac_addr.sh script. "0"s indicate that the IP address was not set properly.
- Make sure that the executables were not running on the RPI of the readout boards. If needed re-run the "stop_exe_on_rpi.sh" script.
- Make sure the readout board is receiving clock: the control ORM and the 4 data boards must all have a green blinking LED.
- Re-programming ORM boards might help (see instruction)
- Physical power-cycling usually resolves the problem
- Make sure all the hexaboards have their LED on and then start executables on the RPIs:
./start_exe_on_rpi.sh
It starts ~/SYNCH_BOARD/bin/sync_debug.exe on the RPI of the sync board and ~/RDOUT_BOARD_IPBus/bin/new_rdout.exe on the RPI of the readout boards. They both set registers using spi bus. The SKIROC2CMS chip configuration is done by the executable "new_rdout.exe". The print out of new_rdout.exe is dumped in the RPI in /home/pi/log.log . From this, it is possible to check the number of connected hexaboards in the readout board by checking the "loop error" messages ("loop error = 0" means that there is a powered HB connected).