#!/bin/bash #SBATCH -J McbmOnline #SBATCH --oversubscribe # Copyright (C) 2022 Facility for Antiproton and Ion Research in Europe, Darmstadt # SPDX-License-Identifier: GPL-3.0-only # author: Pierre-Alain Loizeau [committer] _histServHost="127.0.0.1" _parServHost="127.0.0.1" if [ $# -ge 5 ]; then _run_id=$1 _nbbranch=$2 _TriggSet=$3 _Disk=$4 _hostname=$5 if [ $# -ge 6 ]; then _histServHost=$6 if [ $# -eq 7 ]; then _parServHost=$7 fi fi else echo 'Missing parameters. Only following pattern allowed:' echo 'mq_processing_node.sbatch <Run Id> <Nb // branches> <Trigger set> <Storage disk index> <hostname:port>' echo 'mq_processing_node.sbatch <Run Id> <Nb // branches> <Trigger set> <Storage disk index> <hostname:port> <hist serv host>' echo 'mq_processing_node.sbatch <Run Id> <Nb // branches> <Trigger set> <Storage disk index> <hostname:port> <hist serv host> <par. serv host>' return -1 fi # Prepare log folder variables #_log_folder="/local/mcbm2022/online_logs/${_run_id}/" _log_folder="/storage/6/mcbm2022/online_logs/${_run_id}/" _localhost=`hostname` echo $SLURM_ARRAY_TASK_ID ${_localhost} ${_run_id} ${_nbbranch} ${_TriggSet} ${_hostname} # CBMROOT + FAIRMQ initialisation _BuildDir=/scratch/loizeau/cbmroot_mcbm/build source ${_BuildDir}/config.sh # source /local/mcbm2022/install/config.sh if [ -e $SIMPATH/bin/fairmq-shmmonitor ]; then $SIMPATH/bin/fairmq-shmmonitor --cleanup fi # Only one Processing branch is monitoring, and the full topology gets 2.5 TS/s, so with 10 branches pub may be ~10s _pubfreqts=3 _pubminsec=1.0 _pubmaxsec=10.0 ######################################################################################################################## # Setup file and parameter files for parameter server _setup_name=mcbm_beam_2022_03_22_iron _parfileBmon=$VMCWORKDIR/macro/beamtime/mcbm2022/mBmonCriPar.par _parfileSts=$VMCWORKDIR/macro/beamtime/mcbm2022/mStsPar.par _parfileTrdAsic=$VMCWORKDIR/parameters/trd/trd_v22d_mcbm.asic.par _parfileTrdDigi=$VMCWORKDIR/parameters/trd/trd_v22d_mcbm.digi.par _parfileTrdGas=$VMCWORKDIR/parameters/trd/trd_v22d_mcbm.gas.par _parfileTrdGain=$VMCWORKDIR/parameters/trd/trd_v22d_mcbm.gain.par _parfileTof=$VMCWORKDIR/macro/beamtime/mcbm2022/mTofCriPar.par _parfileRich=$VMCWORKDIR/macro/beamtime/mcbm2021/mRichPar_70.par # Parameter files => Update depending on run ID!!! if [ $_run_id -ge 2060 ]; then if [ $_run_id -le 2065 ]; then _setup_name=mcbm_beam_2022_03_09_carbon _parfileTof=$VMCWORKDIR/macro/beamtime/mcbm2022/mTofCriParCarbon.par elif [ $_run_id -le 2160 ]; then # Potentially wrong setup between 2065 and 2150 but not official runs _setup_name=mcbm_beam_2022_03_22_iron _parfileTof=$VMCWORKDIR/macro/beamtime/mcbm2022/mTofCriParIron.par elif [ $_run_id -le 2310 ]; then # Potentially wrong setup between 2160 and 2176 but not official runs _setup_name=mcbm_beam_2022_03_28_uranium _parfileTrdAsic=$VMCWORKDIR/parameters/trd/trd_v22g_mcbm.asic.par _parfileTrdDigi=$VMCWORKDIR/parameters/trd/trd_v22g_mcbm.digi.par _parfileTrdGas=$VMCWORKDIR/parameters/trd/trd_v22g_mcbm.gas.par _parfileTrdGain=$VMCWORKDIR/parameters/trd/trd_v22g_mcbm.gain.par _parfileTof=$VMCWORKDIR/macro/beamtime/mcbm2022/mTofCriParUranium.par elif [ $_run_id -ge 2350 ]; then _setup_name=mcbm_beam_2022_05_23_nickel _parfileTrdAsic=$VMCWORKDIR/parameters/trd/trd_v22h_mcbm.asic.par _parfileTrdDigi=$VMCWORKDIR/parameters/trd/trd_v22h_mcbm.digi.par _parfileTrdGas=$VMCWORKDIR/parameters/trd/trd_v22h_mcbm.gas.par _parfileTrdGain=$VMCWORKDIR/parameters/trd/trd_v22h_mcbm.gain.par _parfileTof=$VMCWORKDIR/macro/beamtime/mcbm2022/mTofCriParUranium.par fi fi ######################################################################################################################## # Apply sets of settings for different triggers _UnpTimeOffsBMon=0 _UnpTimeOffsSts=-970 _UnpTimeOffsTrd1d=1225 _UnpTimeOffsTrd2d=-525 _UnpTimeOffsTof=45 _UnpTimeOffsRich=95 ######################################################################################################################## # Apply sets of settings for different triggers _TriggerMinNumberBmon=0 _TriggerMinNumberSts=0 _TriggerMinNumberTrd1d=0 _TriggerMinNumberTrd2d=0 _TriggerMinNumberTof=4 _TriggerMinNumberRich=0 _TriggerMaxNumberBMon=-1 _TriggerMaxNumberSts=-1 _TriggerMaxNumberTrd1d=-1 _TriggerMaxNumberTrd2d=-1 _TriggerMaxNumberTof=-1 _TriggerMaxNumberRich=-1 _TriggerMinLayersNumberTof=0 _TriggerMinLayersNumberSts=0 _TrigWinMinBMon=-10 _TrigWinMaxBMon=10 _TrigWinMinSts=-40 _TrigWinMaxSts=40 _TrigWinMinTrd1d=-50 _TrigWinMaxTrd1d=400 _TrigWinMinTrd2d=-60 _TrigWinMaxTrd2d=350 _TrigWinMinTof=-10 _TrigWinMaxTof=70 _TrigWinMinRich=-10 _TrigWinMaxRich=40 bTrigSet=true; case ${_TriggSet} in 0) # NH: default, any Tof hit _TriggerMaxNumberBMon=1000 _TriggerMinNumberTof=1 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-80 _TrigWinMaxTof=120 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 1) # NH: default, Tof - T0 concidences (pulser) _TriggerMinNumberBmon=1 _TriggerMaxNumberBMon=1000 _TriggerMinNumberTof=2 _TriggerMinLayersNumberTof=1 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-180 _TrigWinMaxTof=220 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 2) # NH: Tof standalone track trigger (cosmic) _TriggerMaxNumberBMon=1000 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-30 _TrigWinMaxTof=70 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 3) # NH: Tof track trigger with T0 _TriggerMinNumberBmon=1 _TriggerMaxNumberBMon=2 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-20 _TrigWinMaxTof=60 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 4) # NH: mCbm track trigger Tof, T0 & STS _TriggerMinNumberBmon=1 _TriggerMaxNumberBMon=2 _TriggerMinNumberSts=2 _TriggerMinLayersNumberSts=1 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-20 _TrigWinMaxTof=60 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 5) # NH: mCbm lambda trigger _TriggerMinNumberBmon=1 _TriggerMaxNumberBMon=2 _TriggerMinNumberSts=8 _TriggerMinLayersNumberSts=2 _TriggerMinNumberTof=16 _TriggerMinLayersNumberTof=8 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-20 _TrigWinMaxTof=60 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 6) # NH: One hit per detector system w/ big acceptance=mCbm full track trigger _TriggerMinNumberBmon=1 _TriggerMaxNumberBMon=1; _TriggerMinNumberSts=4 _TriggerMinLayersNumberSts=0 _TriggerMinNumberTrd1d=2 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 _TrigWinMinBMon=-50 _TrigWinMaxBMon=50 _TrigWinMinSts=-60 _TrigWinMaxSts=60 _TrigWinMinTrd1d=-300 _TrigWinMaxTrd1d=300 _TrigWinMinTrd2d=-200 _TrigWinMaxTrd2d=200 _TrigWinMinTof=-20 _TrigWinMaxTof=60 _TrigWinMinRich=-60 _TrigWinMaxRich=60 ;; 7) # PAL default: T0 + STS + TOF, only digi cut _TriggerMinNumberBmon=1 _TriggerMinNumberSts=2 _TriggerMinNumberTof=4 ;; 8) # PAL: default, Tof - T0 concidences (pulser) _TriggerMinNumberBmon=4 _TriggerMinNumberTof=2 _TriggerMinLayersNumberTof=1 ;; 9) # PAL: Tof standalone track trigger (cosmic) _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 ;; 10) # PAL: Tof track trigger with T0 _TriggerMinNumberBmon=1 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 ;; 11) # PAL: mCbm track trigger Tof, T0 & STS _TriggerMinNumberBmon=1 _TriggerMinNumberSts=2 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 ;; 12) # PAL: mCbm lambda trigger _TriggerMinNumberBmon=1 _TriggerMinNumberSts=8 _TriggerMinNumberTof=16 _TriggerMinLayersNumberTof=8 ;; 13) # PAL: One hit per detector system w/ big acceptance=mCbm full track trigger TriggerMinNumberBmon=1 _TriggerMinNumberSts=4 _TriggerMinNumberTrd1d=2 _TriggerMinNumberTrd1d=1 _TriggerMinNumberTof=8 _TriggerMinNumberRich=1 ;; 14) # PAL: mCbm track trigger Tof, T0 & STS _TriggerMinNumberBmon=1 _TriggerMinNumberSts=4 _TriggerMinNumberTof=8 _TriggerMinLayersNumberTof=4 _TriggerMinLayersNumberSts=2 ;; *) bTrigSet=false; ;; esac echo Using MQ trigger par set: ${_TriggSet} ######################################################################################################################## _ratelog=0 # hides ZMQ messages rates and bandwidth #_ratelog=1 # display ZMQ messages rates and bandwidth # ProcessName_runid_trigset_hostname_yyyy_mm_dd_hh_mm_ss.log LOGFILETAG="${_run_id}_${_TriggSet}_${_localhost}_" LOGFILETAG+=`date +%Y_%m_%d_%H_%M_%S` LOGFILETAG+=".log" ######################################################################################################################## ############################ # Histogram server # ############################ if [[ ${_histServHost} == "127.0.0.1" ]]; then HISTSRV_LOG="${_log_folder}server1_${LOGFILETAG}" HISTSERVER="MqHistoServer" HISTSERVER+=" --control static" HISTSERVER+=" --id server1" HISTSERVER+=" --severity info" HISTSERVER+=" --histport 8080" HISTSERVER+=" --channel-config name=histogram-in,type=sub,method=bind,transport=zeromq,address=tcp://127.0.0.1:11666,rateLogging=$_ratelog" HISTSERVER+=" --channel-config name=histo-conf,type=sub,method=bind,transport=zeromq,address=tcp://127.0.0.1:11667,rateLogging=0" HISTSERVER+=" --channel-config name=canvas-conf,type=sub,method=bind,transport=zeromq,address=tcp://127.0.0.1:11668,rateLogging=0" echo ${_BuildDir}/bin/MQ/histogramServer/$HISTSERVER &> $HISTSRV_LOG & ${_BuildDir}/bin/MQ/histogramServer/$HISTSERVER &> $HISTSRV_LOG & fi ############################ # Sampler # ############################ SAMPLER_LOG="${_log_folder}sampler1_${LOGFILETAG}" SAMPLER="RepReqTsSampler" SAMPLER+=" --control static" SAMPLER+=" --id sampler1" SAMPLER+=" --max-timeslices -1" SAMPLER+=" --severity info" SAMPLER+=" --fles-host $_hostname" SAMPLER+=" --high-water-mark 10" SAMPLER+=" --no-split-ts 1" SAMPLER+=" --ChNameMissTs missedts" SAMPLER+=" --ChNameCmds commands" SAMPLER+=" --PubFreqTs $_pubfreqts" SAMPLER+=" --PubTimeMin $_pubminsec" SAMPLER+=" --PubTimeMax $_pubmaxsec" SAMPLER+=" --HistosSuffix _${_localhost}" SAMPLER+=" --channel-config name=ts-request,type=rep,method=bind,transport=zeromq,address=tcp://127.0.0.1:11555,rateLogging=$_ratelog" SAMPLER+=" --channel-config name=histogram-in,type=pub,method=connect,transport=zeromq,address=tcp://${_histServHost}:11666,rateLogging=$_ratelog" SAMPLER+=" --channel-config name=missedts,type=pub,method=bind,address=tcp://127.0.0.1:11006,rateLogging=$_ratelog" SAMPLER+=" --channel-config name=commands,type=pub,method=bind,address=tcp://127.0.0.1:11007,rateLogging=$_ratelog" SAMPLER+=" --transport zeromq" echo ${_BuildDir}/bin/MQ/source/$SAMPLER &> $SAMPLER_LOG & ${_BuildDir}/bin/MQ/source/$SAMPLER &> $SAMPLER_LOG & ############################ # Parameter server # ############################ if [[ ${_parServHost} == "127.0.0.1" ]]; then PARAMSRV_LOG="${_log_folder}parmq_${LOGFILETAG}" PARAMETERSERVER="parmq-server" PARAMETERSERVER+=" --control static" PARAMETERSERVER+=" --id parmq-server" PARAMETERSERVER+=" --severity info" PARAMETERSERVER+=" --channel-name parameters" PARAMETERSERVER+=" --channel-config name=parameters,type=rep,method=bind,transport=zeromq,address=tcp://127.0.0.1:11005,rateLogging=0" PARAMETERSERVER+=" --first-input-name $_parfileSts;$_parfileTrdAsic;$_parfileTrdDigi;$_parfileTrdGas;$_parfileTrdGain;$_parfileTof;$_parfileBmon;$_parfileRich" PARAMETERSERVER+=" --first-input-type ASCII" PARAMETERSERVER+=" --setup $_setup_name" echo ${_BuildDir}/bin/MQ/parmq/$PARAMETERSERVER &> $PARAMSRV_LOG & ${_BuildDir}/bin/MQ/parmq/$PARAMETERSERVER &> $PARAMSRV_LOG & fi ############################ # Event Sink # ############################ EVTSINK_LOG="${_log_folder}evtsink1_${LOGFILETAG}" EVTSINK="DigiEventSink" EVTSINK+=" --control static" EVTSINK+=" --id evtsink1" EVTSINK+=" --severity info" # EVTSINK+=" --severity debug" EVTSINK+=" --StoreFullTs 0" EVTSINK+=" --BypassConsecutiveTs true" EVTSINK+=" --WriteMissingTs false" # EVTSINK+=" --DisableCompression true" EVTSINK+=" --TreeFileMaxSize 4000000000" EVTSINK+=" --DigiEventInput true" if [ ${_Disk} -eq 0 ]; then EVTSINK+=" --OutFileName /local/mcbm2022/data/${_run_id}_${_TriggSet}_${_localhost}.digi_events.root" else EVTSINK+=" --OutFileName /storage/${_Disk}/mcbm2022/data/${_run_id}_${_TriggSet}_${_localhost}.digi_events.root" fi EVTSINK+=" --FillHistos true" EVTSINK+=" --PubFreqTs $_pubfreqts" EVTSINK+=" --PubTimeMin $_pubminsec" EVTSINK+=" --PubTimeMax $_pubmaxsec" EVTSINK+=" --HistosSuffix _${_localhost}" EVTSINK+=" --EvtNameIn events" EVTSINK+=" --channel-config name=events,type=pull,method=bind,transport=zeromq,rcvBufSize=1,address=tcp://127.0.0.1:11556,rateLogging=$_ratelog" EVTSINK+=" --channel-config name=missedts,type=sub,method=connect,transport=zeromq,address=tcp://127.0.0.1:11006,rateLogging=$_ratelog" EVTSINK+=" --channel-config name=commands,type=sub,method=connect,transport=zeromq,address=tcp://127.0.0.1:11007,rateLogging=$_ratelog" EVTSINK+=" --channel-config name=histogram-in,type=pub,method=connect,transport=zeromq,address=tcp://${_histServHost}:11666,rateLogging=$_ratelog" echo ${_BuildDir}/bin/MQ/mcbm/$EVTSINK &> $EVTSINK_LOG & ${_BuildDir}/bin/MQ/mcbm/$EVTSINK &> $EVTSINK_LOG & ############################ # Processing branches # ############################ _iBranch=0 while (( _iBranch < _nbbranch )); do (( _iPort = 11680 + _iBranch )) ########################## # Unpacker # ########################## UNPACKER_LOG="${_log_folder}unp${_iBranch}_${LOGFILETAG}" UNPACKER="MqUnpack" UNPACKER+=" --control static" UNPACKER+=" --id unp$_iBranch" # UNPACKER+=" --severity error" UNPACKER+=" --severity info" # UNPACKER+=" --severity debug" UNPACKER+=" --Setup $_setup_name" UNPACKER+=" --RunId $_run_id" UNPACKER+=" --IgnOverMs false" UNPACKER+=" --UnpBmon true" UNPACKER+=" --UnpMuch false" UNPACKER+=" --UnpPsd false" UNPACKER+=" --SetTimeOffs kT0,${_UnpTimeOffsBMon}" UNPACKER+=" --SetTimeOffs kSTS,${_UnpTimeOffsSts}" UNPACKER+=" --SetTimeOffs kTRD,${_UnpTimeOffsTrd1d}" UNPACKER+=" --SetTimeOffs kTRD2D,${_UnpTimeOffsTrd2d}" UNPACKER+=" --SetTimeOffs kTOF,${_UnpTimeOffsTof}" UNPACKER+=" --SetTimeOffs kRICH,${_UnpTimeOffsRich}" UNPACKER+=" --PubFreqTs $_pubfreqts" UNPACKER+=" --PubTimeMin $_pubminsec" UNPACKER+=" --PubTimeMax $_pubmaxsec" # if [ ${_iBranch} -eq 0 ]; then # UNPACKER+=" --FillHistos true" # else # UNPACKER+=" --FillHistos false" # fi UNPACKER+=" --TsNameOut unpts$_iBranch" UNPACKER+=" --channel-config name=ts-request,type=req,method=connect,transport=zeromq,address=tcp://127.0.0.1:11555,rateLogging=$_ratelog" UNPACKER+=" --channel-config name=unpts$_iBranch,type=push,method=bind,transport=zeromq,sndBufSize=1,address=tcp://127.0.0.1:$_iPort,rateLogging=$_ratelog" # UNPACKER+=" --channel-config name=commands,type=sub,method=connect,transport=zeromq,address=tcp://127.0.0.1:11007" UNPACKER+=" --channel-config name=parameters,type=req,method=connect,transport=zeromq,address=tcp://${_parServHost}:11005,rateLogging=0" UNPACKER+=" --channel-config name=histogram-in,type=pub,method=connect,transport=zeromq,address=tcp://${_histServHost}:11666,rateLogging=$_ratelog" UNPACKER+=" --transport zeromq" echo ${_BuildDir}/bin/MQ/mcbm/$UNPACKER &> $UNPACKER_LOG & ${_BuildDir}/bin/MQ/mcbm/$UNPACKER &> $UNPACKER_LOG & ########################## # Event Builder # ########################## EVTBUILDER_LOG="${_log_folder}build${_iBranch}_${LOGFILETAG}" EVTBUILDER="BuildDigiEvents" EVTBUILDER+=" --control static" EVTBUILDER+=" --id build$_iBranch" EVTBUILDER+=" --severity info" # EVTBUILDER+=" --severity debug" EVTBUILDER+=" --PubFreqTs $_pubfreqts" EVTBUILDER+=" --PubTimeMin $_pubminsec" EVTBUILDER+=" --PubTimeMax $_pubmaxsec" # if [ ${_iBranch} -eq 0 ]; then # EVTBUILDER+=" --FillHistos true" # else EVTBUILDER+=" --FillHistos false" # fi EVTBUILDER+=" --IgnTsOver false" EVTBUILDER+=" --EvtOverMode AllowOverlap" EVTBUILDER+=" --RefDet kT0" EVTBUILDER+=" --DelDet kMuch" EVTBUILDER+=" --DelDet kPsd" EVTBUILDER+=" --SetTrigWin kT0,${_TrigWinMinBMon},${_TrigWinMaxBMon}" EVTBUILDER+=" --SetTrigWin kSts,${_TrigWinMinSts},${_TrigWinMaxSts}" EVTBUILDER+=" --SetTrigWin kTrd,${_TrigWinMinTrd1d},${_TrigWinMaxTrd1d}" EVTBUILDER+=" --SetTrigWin kTrd2D,${_TrigWinMinTrd2d},${_TrigWinMaxTrd2d}" EVTBUILDER+=" --SetTrigWin kTof,${_TrigWinMinTof},${_TrigWinMaxTof}" EVTBUILDER+=" --SetTrigWin kRich,${_TrigWinMinRich},${_TrigWinMaxRich}" EVTBUILDER+=" --SetTrigMinNb kT0,${_TriggerMinNumberBmon}" EVTBUILDER+=" --SetTrigMinNb kSts,${_TriggerMinNumberSts}" EVTBUILDER+=" --SetTrigMinNb kTrd,${_TriggerMinNumberTrd1d}" EVTBUILDER+=" --SetTrigMinNb kTrd2D,${_TriggerMinNumberTrd2d}" EVTBUILDER+=" --SetTrigMinNb kTof,${_TriggerMinNumberTof}" EVTBUILDER+=" --SetTrigMinNb kRich,${_TriggerMinNumberRich}" EVTBUILDER+=" --SetTrigMaxNb kT0,${_TriggerMaxNumberBMon}" EVTBUILDER+=" --SetTrigMaxNb kSts,${_TriggerMaxNumberSts}" EVTBUILDER+=" --SetTrigMaxNb kTrd,${_TriggerMaxNumberTrd1d}" EVTBUILDER+=" --SetTrigMaxNb kTrd2D,${_TriggerMaxNumberTrd2d}" EVTBUILDER+=" --SetTrigMaxNb kTof,${_TriggerMaxNumberTof}" EVTBUILDER+=" --SetTrigMaxNb kRich,${_TriggerMaxNumberRich}" EVTBUILDER+=" --SetTrigMinLayersNb kTof,${_TriggerMinLayersNumberTof}" EVTBUILDER+=" --SetTrigMinLayersNb kSts,${_TriggerMinLayersNumberSts}" EVTBUILDER+=" --TsNameIn unpts$_iBranch" EVTBUILDER+=" --EvtNameOut events" # EVTBUILDER+=" --DoNotSend true" EVTBUILDER+=" --DigiEventOutput true" EVTBUILDER+=" --channel-config name=unpts$_iBranch,type=pull,method=connect,transport=zeromq,rcvBufSize=1,address=tcp://127.0.0.1:$_iPort,rateLogging=$_ratelog" EVTBUILDER+=" --channel-config name=events,type=push,method=connect,transport=zeromq,sndBufSize=1,address=tcp://127.0.0.1:11556,rateLogging=$_ratelog" # EVTBUILDER+=" --channel-config name=commands,type=sub,method=connect,transport=zeromq,address=tcp://127.0.0.1:11007" EVTBUILDER+=" --channel-config name=parameters,type=req,method=connect,transport=zeromq,address=tcp://${_parServHost}:11005,rateLogging=0" EVTBUILDER+=" --channel-config name=histogram-in,type=pub,method=connect,transport=zeromq,address=tcp://${_histServHost}:11666,rateLogging=$_ratelog" EVTBUILDER+=" --transport zeromq" echo ${_BuildDir}/bin/MQ/mcbm/$EVTBUILDER &> $EVTBUILDER_LOG & ${_BuildDir}/bin/MQ/mcbm/$EVTBUILDER &> $EVTBUILDER_LOG & (( _iBranch += 1 )) done STILL_RUNNING=`ps | wc -l` STILL_RUNNING_OUT="${STILL_RUNNING}\n" STILL_RUNNING_OUT+=`ps` echo `date` "${STILL_RUNNING_OUT}" > ${_log_folder}/still_running.txt while [ 6 -lt $STILL_RUNNING ]; do sleep 5 # ps # echo `ps | wc -l` STILL_RUNNING=`ps | wc -l` STILL_RUNNING_OUT="${STILL_RUNNING}\n" STILL_RUNNING_OUT+=`ps` echo `date` "${STILL_RUNNING_OUT}" > ${_log_folder}/still_running.txt done