]> jspc29.x-matter.uni-frankfurt.de Git - hadesdaq.git/commitdiff
changed EB setup for 5 build server machines. Modify operator gui for this.
authorJoern Adamczewski-Musch <j.adamczewski@gsi.de>
Fri, 11 Dec 2020 13:55:46 +0000 (14:55 +0100)
committerHadaq Hades <jan@lxhadeb07>
Fri, 11 Dec 2020 13:55:46 +0000 (14:55 +0100)
Add data sources for fwdet-rpc and inner-tof.
any other changes since last commit.

37 files changed:
control/gui/eb/74_Set_5_EB [moved from control/gui/eb/73_Set_4_EB with 63% similarity]
control/gui/eb/77_Set_10_EB [moved from control/gui/eb/75_Set_8_EB with 63% similarity]
control/gui/eb/78_Set_15_EB [moved from control/gui/eb/76_Set_12_EB with 71% similarity]
evtbuild/eb_bnet_fsd_newservers.conf
evtbuild/start_eb_gbe.sh
evtbuild/start_eb_gbe_newservers_fsd.pl
hmon/QA.pm
hmon/hmon_endpoints.pl
hmon/hmon_hodo.pl
hmon/hmon_onlineqa.pl
hmon/hmon_rate2.pl
hmon/hmon_rich_temp_backplane.pl
hmon/hmon_startrate.pl [changed mode: 0755->0644]
hmon/hmon_stsrate.pl
hmon/hmon_trgsource.pl
hmon/hmon_vetohist.pl [changed mode: 0755->0644]
hmon/index.cgi
hmon/indexstyles.css
hmon/permanent/hmon_cpu.pl
hmon/permanent/hmon_richIsobutan.pl
hmon/permanent/hmon_sequencer.pl
hub/addresses_hub_trb3.db
hub/register_configgbe_2019.db
hub/register_configgbe_ip.db
hub/register_configgbe_ip_2021.db [new file with mode: 0644]
main/data_sources.db
main/startup_briccolage.sh
mdc/register_thresholds_current.db
oracle/postgres2ora.pl
oracle/postgres2orastart.sh
oracle/runinfo2ora.pl
oracle/runstatsfromora.pl
rich/startup.script
start/addresses_start_trb3.db
start/serials_start_trb3.db [deleted file]
start/startup.script
sts/startup.script

similarity index 63%
rename from control/gui/eb/73_Set_4_EB
rename to control/gui/eb/74_Set_5_EB
index bdad11f0e836a70ea75fe3543f24332fa9c38a24..2ecf86045b9bb7a85bb23e7c363a8c9821eb002d 100755 (executable)
@@ -2,19 +2,19 @@
 
 # notifyall.sh "DAQ" "<I> Eventbuilders are being restarted." "EB" &
 
-export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 4 builder nodes")
+export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 5 builder nodes")
 if [ $myvar == "256" ]; then exit; fi                            
 
-$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders are being started with 4 builder nodes." "EB" &
+$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders are being started with 5 builder nodes." "EB" &
 
 xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   ssh -X hadaq@lxhadesdaqp "
-  echo "Starting Eventbuilders  with 4 BNET builder nodes"
+  echo "Starting Eventbuilders  with 5 BNET builder nodes"
   cd ~/trbsoft/hadesdaq/evtbuild/
-  ./start_eb_gbe.pl -e restart -n 1-16  -d on -p te -b 4
+  ./start_eb_gbe.pl -e restart -n 1-16  -d on -p te -b 5
   sleep 2
  "
 '
 
-$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders have been restarted using 4 BNET builder nodes" "EB" &
+$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders have been restarted using 5 BNET builder nodes" "EB" &
 
similarity index 63%
rename from control/gui/eb/75_Set_8_EB
rename to control/gui/eb/77_Set_10_EB
index 8176a47f8f309b38c5a7fc7c0fc5f08df95612b2..936af404cabd96c01d871141442043733172d739 100755 (executable)
@@ -2,19 +2,19 @@
 
 # notifyall.sh "DAQ" "<I> Eventbuilders are being restarted." "EB" &
 
-export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 8 builder nodes")
+export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 10 builder nodes")
 if [ $myvar == "256" ]; then exit; fi                            
 
-$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders are being started with 8 builder nodes." "EB" &
+$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders are being started with 10 builder nodes." "EB" &
 
 xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   ssh -X hadaq@lxhadesdaqp "
-  echo "Starting Eventbuilders  with 8 BNET builder nodes"
+  echo "Starting Eventbuilders  with 10 BNET builder nodes"
   cd ~/trbsoft/hadesdaq/evtbuild/
-  ./start_eb_gbe.pl -e restart -n 1-16  -d on -p te -b 8
+  ./start_eb_gbe.pl -e restart -n 1-16  -d on -p te -b 10
   sleep 2
  "
 '
 
-$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders have been restarted using 8 BNET builder nodes" "EB" &
+$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders have been restarted using 10 BNET builder nodes" "EB" &
 
similarity index 71%
rename from control/gui/eb/76_Set_12_EB
rename to control/gui/eb/78_Set_15_EB
index c3de4cf5b1e0bf338edc48dfcce4668172db9fe6..7063d430665882e87b1a7e2a8b8af0aa193adb70 100755 (executable)
@@ -2,20 +2,20 @@
 
 # notifyall.sh "DAQ" "<I> Eventbuilders are being restarted." "EB" &
 
-export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 12 builder nodes")
+export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 15 builder nodes")
 if [ $myvar == "256" ]; then exit; fi                            
 
-$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders are being started with 12 builder nodes." "EB" &
+$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders are being started with 15 builder nodes." "EB" &
 
 
 xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   ssh -X hadaq@lxhadesdaqp "
   echo "Starting Eventbuilders  with 12 BNET builder nodes"
   cd ~/trbsoft/hadesdaq/evtbuild/
-  ./start_eb_gbe.pl -e restart -n 1-16  -d on -p te -b 12
+  ./start_eb_gbe.pl -e restart -n 1-16  -d on -p te -b 15
   sleep 2
  "
 '
 
-$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders have been restarted using 12 BNET builder nodes" "EB" &
+$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" "<I> Eventbuilders have been restarted using 15 BNET builder nodes" "EB" &
 
index d9b3f36ebbf538fc4b182dcbafce2cd13a4c085c..923344e4da7e81e93a2a64cf3aaf611c61193c69 100644 (file)
@@ -75,7 +75,7 @@ BNETINP:      1 1 1 1 1
 #BNETBLD:      3 3 3 0
 
 ## below enough ltsm connections? default with new servers
-BNETBLD:       3 3 3 3 
+BNETBLD:       3 3 3 3 3
 
 # JAM - do not modify this anymore, please use control button "Restart BNET 1 Builder" instead
 #BNETBLD:      1 0 0 0
@@ -145,8 +145,8 @@ LTSM:          1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
 # LTSM default options for all EB processes
 
 #LTSM_PATH:      /lustre/hades/raw/jun19test/default/tsm
-LTSM_PATH:      /lustre/hades/raw/sep20test
-#LTSM_PATH:      /hebetest/hades/raw/jun19test/
+LTSM_PATH:      /lustre/hades/raw/feb21
+#LTSM_PATH:      /hebetest/hades/raw/feb21/
 #LTSM_Server:  lxltsm01-tsm-server
 LTSM_Server: lxltsm01
 
@@ -161,17 +161,19 @@ LTSM_Passwd:    wDhgcvFF7
 LTSM_Filesystem:       /lustre
 
 # following is for first FSD test setup JAM 4-2020:
-#LTSM_Node:    hadestest
-#LTSM_Passwd:    hadestest
-#LTSM_Filesystem:      /hebetest
+# # LTSM_Node: hadestest
+# # LTSM_Passwd:    hadestest
+# # LTSM_Filesystem:   /lustre
 
 
 LTSM_USEFSD: 0
 
-# we need at least 4 entries here (number of eventbuilder servers)
+# we need at least 5 entries here (number of eventbuilder servers)
 #LTSM_FSD_SERVERS: lxfsd01 lxfsd02-eth lxfsd03 lxfsd01
-LTSM_FSD_SERVERS: lxfsd01 lxfsd03 lxfsd01 lxfsd03 
-LTSM_FSD_PORT: 7625 7625 7625 7625 
+LTSM_FSD_SERVERS: lxfsd04-eth lxfsd07-eth lxfsd04-eth lxfsd07-eth lxfsd04-eth
+#LTSM_FSD_SERVERS: lxfsd01-eth lxfsd02 lxfsd03-eth lxfsd01-eth lxfsd02
+#LTSM_FSD_SERVERS: lxfsd01-eth lxfsd03-eth lxfsd01-eth lxfsd03-eth lxfsd01-eth
+LTSM_FSD_PORT: 7625 7625 7625 7625 7625
 
 
 
index 1b3e9d1c9dd455b41c50d6b39e6167f23f76daf6..c45cfe6640e3190373e29052e3aa0fce53cc8b19 100755 (executable)
@@ -1 +1 @@
-./start_eb_gbe.pl -e restart -n 1-16 -d on -p te -b 4;
+./start_eb_gbe.pl -e restart -n 1-16 -d on -p te -b 1;
index 1c54483dec5f77ee5389f8f8ec437658383f2984..dfe3ca039625c294d2be2324dfb6c37cd5daf048 100755 (executable)
@@ -38,12 +38,12 @@ GetOptions ('h|help'      => \$opt_help,
             'r|rfio=s'    => \$opt_rfio,
             'p|prefix=s'  => \$opt_prefix,
             'o|online=s'  => \$opt_online,
-            'b|bnet=s'    => \$opt_bnet,            
+            'b|bnet=s'    => \$opt_bnet,
             'v|verb'      => \$opt_verb);
 
-if( $opt_help ) {
-    &help();
-    exit(0);
+if ( $opt_help ) {
+  &help();
+  exit(0);
 }
 
 #- List of EBs provided via command line options
@@ -59,7 +59,7 @@ my $log_path          = "/tmp/log";
 my %temp_args;
 my $temp_args_href = \%temp_args;
 read_config $opt_ebconf => %$temp_args_href;
-#rint Dumper $temp_args_href;
+#print Dumper $temp_args_href;
 #exit;
 
 
@@ -81,22 +81,22 @@ my @bnetservers = ("192.168.100.8","192.168.100.9","192.168.100.10","192.168.105
 #     '192.168.105.12'   => '140.181.83.168',
 #     '192.168.105.13'   => '140.181.83.176'
 #   );
-  
-  
- my %IP_GSI_lookup = (
-    '192.168.100.15'   => 'lxhadeb05',
-    '192.168.100.12'   => 'lxhadeb02',
-    '192.168.100.13'   => 'lxhadeb03',
-    '192.168.100.14'   => 'lxhadeb04',
-    '192.168.100.8'    => 'lxhadeb08',
-    '192.168.100.9'    => 'lxhadeb09',
-    '192.168.100.10'   => 'lxhadeb10',
-    '192.168.105.11'   => 'lxhadeb11',
-    '192.168.105.12'   => 'lxhadeb12',
-    '192.168.105.13'   => 'lxhadeb13'
-  );
-   
-  
+
+
+my %IP_GSI_lookup = (
+                     '192.168.100.15'   => 'lxhadeb05',
+                     '192.168.100.12'   => 'lxhadeb02',
+                     '192.168.100.13'   => 'lxhadeb03',
+                     '192.168.100.14'   => 'lxhadeb04',
+                     '192.168.100.8'    => 'lxhadeb08',
+                     '192.168.100.9'    => 'lxhadeb09',
+                     '192.168.100.10'   => 'lxhadeb10',
+                     '192.168.105.11'   => 'lxhadeb11',
+                     '192.168.105.12'   => 'lxhadeb12',
+                     '192.168.105.13'   => 'lxhadeb13'
+                    );
+
+
 my $IP_GSI_href = \%IP_GSI_lookup;
 
 
@@ -110,35 +110,30 @@ my $EB_Args_href = \%EB_Args;
 
 &getEBArgs( $EB_Args_href );
 
-if($opt_ioc eq "start"){
-    &killIOC();
-    &startIOC();
-}
-elsif($opt_ioc eq "stop"){
-    &killIOC();
-}
-elsif($opt_eb eq "start"){
-    &writeArgs2file();
-    &startEvtBuilders();
-}
-elsif($opt_eb eq "stop"){
-    &stopEvtBuilders();
-}
-elsif($opt_eb eq "restart"){
-    &stopEvtBuilders();
-    sleep 1;
-    &writeArgs2file();
-    &startEvtBuilders();
+if ($opt_ioc eq "start") {
+  &killIOC();
+  &startIOC();
+} elsif ($opt_ioc eq "stop") {
+  &killIOC();
+} elsif ($opt_eb eq "start") {
+  &writeArgs2file();
+  &startEvtBuilders();
+} elsif ($opt_eb eq "stop") {
+  &stopEvtBuilders();
+} elsif ($opt_eb eq "restart") {
+  &stopEvtBuilders();
+  sleep 1;
+  &writeArgs2file();
+  &startEvtBuilders();
 }
 
 exit(0);
 
 ################### END OF MAIN ####################
 
-sub help()
-{
-    print "\n";
-    print << 'EOF';
+sub help() {
+  print "\n";
+  print << 'EOF';
 start_eb_gbe.pl
 
    This script starts parallel Event Building processes.
@@ -171,1304 +166,1208 @@ Examples:
 EOF
 }
 
-sub init_CPU_status()
-{
-
-
-# JAM 17-oct-2018 - for BNET this cpu reservation is deprecated TODO: remove it
-    my ($EB_CPU_status_href) = @_;
-
-    # CPU affinity with 'taskset'
-    #
-    # CPU dec     bin  hex
-    #     0         1    1
-    #     1        10    2 
-    #     2       100    4
-    #     3      1000    8
-    #     4     10000   10 
-
-    #cores 0/1 reserved for system 02-05
-    #cores 2/3 reserved for interrupts on 02-05
-
-#lxhadeb01 is gone    
-#     foreach my $core (0..7){
-#         if($core == 1){
-#             $EB_CPU_status_href->{'192.168.100.11'}->{$core} = "res"; #reserved
-#         }
-#         else{
-#             $EB_CPU_status_href->{'192.168.100.11'}->{$core} = "free";
-#         }
-#     }
-
-#JAM adjust this to actual affinities for eth0 settings TODO
-# eth0 interrupts are above core 8 now
-#  
-#     
-#    foreach my $core (0..11){
-#         if(($core < 2) || ($core> 8 ) ){
-#             $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "res"; #reserved
-#             $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "res"; #reserved
-#             $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "res"; #reserved
-#         }
-#         else{
-#             $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "free";
-#             $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "free";
-#             $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "free";
-#         }
-#     }
-#        
-## after upgrade to debian 7: ethernet reserved cores are below 6
-  foreach my $core (0..11){
-        if(($core < 6) ){
-            $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "res"; #reserved
-            $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "res"; #reserved
-            $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "res"; #reserved
-        }
-        else{
-            $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "free";
-            $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "free";
-            $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "free";
-            
-        }
+sub init_CPU_status()   {
+
+  # JAM 17-oct-2018 - for BNET this cpu reservation is deprecated TODO: remove it
+  my ($EB_CPU_status_href) = @_;
+
+  # CPU affinity with 'taskset'
+  #
+  # CPU dec     bin  hex
+  #     0         1    1
+  #     1        10    2 
+  #     2       100    4
+  #     3      1000    8
+  #     4     10000   10 
+
+  #cores 0/1 reserved for system 02-05
+  #cores 2/3 reserved for interrupts on 02-05
+
+  #lxhadeb01 is gone    
+  #     foreach my $core (0..7){
+  #         if($core == 1){
+  #             $EB_CPU_status_href->{'192.168.100.11'}->{$core} = "res"; #reserved
+  #         }
+  #         else{
+  #             $EB_CPU_status_href->{'192.168.100.11'}->{$core} = "free";
+  #         }
+  #     }
+
+  #JAM adjust this to actual affinities for eth0 settings TODO
+  # eth0 interrupts are above core 8 now
+  #  
+  #     
+  #    foreach my $core (0..11){
+  #         if(($core < 2) || ($core> 8 ) ){
+  #             $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "res"; #reserved
+  #             $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "res"; #reserved
+  #             $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "res"; #reserved
+  #         }
+  #         else{
+  #             $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "free";
+  #             $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "free";
+  #             $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "free";
+  #         }
+  #     }
+  #        
+  ## after upgrade to debian 7: ethernet reserved cores are below 6
+  foreach my $core (0..11) {
+    if (($core < 6) ) {
+      $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "res"; #reserved
+      $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "res"; #reserved
+      $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "res"; #reserved
+    } else {
+      $EB_CPU_status_href->{'192.168.100.12'}->{$core} = "free";
+      $EB_CPU_status_href->{'192.168.100.13'}->{$core} = "free";
+      $EB_CPU_status_href->{'192.168.100.14'}->{$core} = "free";
     }
-    
-# eth0 ir is set above core 11   
-    foreach my $core (0..23){
-        if( ($core < 2) ||( $core > 11) ){
-            $EB_CPU_status_href->{'192.168.100.15'}->{$core} = "res"; #reserved
-        }
-        else{
-            $EB_CPU_status_href->{'192.168.100.15'}->{$core} = "free";
-        }
+  }
+
+  # eth0 ir is set above core 11
+  foreach my $core (0..23) {
+    if ( ($core < 2) ||( $core > 11) ) {
+      $EB_CPU_status_href->{'192.168.100.15'}->{$core} = "res"; #reserved
+    } else {
+      $EB_CPU_status_href->{'192.168.100.15'}->{$core} = "free";
     }
-    
-    # add cores for new EB servers JAM2018
-   foreach my $core (0..63){
-        if( ($core < 2) ||( $core > 60) ){
-            $EB_CPU_status_href->{'192.168.100.8'}->{$core} = "res"; #reserved
-           $EB_CPU_status_href->{'192.168.100.9'}->{$core} = "res"; #reserved
-           $EB_CPU_status_href->{'192.168.100.10'}->{$core} = "res"; #reserved
-           $EB_CPU_status_href->{'192.168.105.11'}->{$core} = "res"; #reserved
-           $EB_CPU_status_href->{'192.168.105.12'}->{$core} = "res"; #reserved
-            }
-        else{
-            $EB_CPU_status_href->{'192.168.100.8'}->{$core} = "free";
-           $EB_CPU_status_href->{'192.168.100.9'}->{$core} = "free";
-           $EB_CPU_status_href->{'192.168.100.10'}->{$core} = "free";
-           $EB_CPU_status_href->{'192.168.105.11'}->{$core} = "free";
-           $EB_CPU_status_href->{'192.168.105.12'}->{$core} = "free";
-           
-        }
-    }  
- # alternative setup: specifiy cpu bitmasks for different roles:
-    
-    $EB_CPU_status_href->{'192.168.100.15'}->{'input'} = "2-23";
-    $EB_CPU_status_href->{'192.168.100.15'}->{'build'} = "2-23";
-    
-    # JAM12-2018: reserve lower 32 cpus for network interrupts
-    $EB_CPU_status_href->{'192.168.100.8'}->{'input'} = "32-47";
-    $EB_CPU_status_href->{'192.168.100.8'}->{'build'} = "48-63";
-    $EB_CPU_status_href->{'192.168.100.9'}->{'input'} = "32-47";
-    $EB_CPU_status_href->{'192.168.100.9'}->{'build'} = "48-63";
-    $EB_CPU_status_href->{'192.168.100.10'}->{'input'} = "32-47";
-    $EB_CPU_status_href->{'192.168.100.10'}->{'build'} = "48-63";
-    $EB_CPU_status_href->{'192.168.105.11'}->{'input'} = "32-47";
-    $EB_CPU_status_href->{'192.168.105.11'}->{'build'} = "48-63";
-    $EB_CPU_status_href->{'192.168.105.12'}->{'input'} = "32-47";
-    $EB_CPU_status_href->{'192.168.105.12'}->{'build'} = "48-63";
-    
+  }
+
+  # add cores for new EB servers JAM2018
+#  foreach my $core (0..63) {
+#    if ( ($core < 2) ||( $core > 60) ) {
+#      $EB_CPU_status_href->{'192.168.100.8'}->{$core} = "res"; #reserved
+#      $EB_CPU_status_href->{'192.168.100.9'}->{$core} = "res"; #reserved
+#      $EB_CPU_status_href->{'192.168.100.10'}->{$core} = "res"; #reserved
+#      $EB_CPU_status_href->{'192.168.105.11'}->{$core} = "res"; #reserved
+#      $EB_CPU_status_href->{'192.168.105.12'}->{$core} = "res"; #reserved
+#    } else {
+#      $EB_CPU_status_href->{'192.168.100.8'}->{$core} = "free";
+#      $EB_CPU_status_href->{'192.168.100.9'}->{$core} = "free";
+#      $EB_CPU_status_href->{'192.168.100.10'}->{$core} = "free";
+#      $EB_CPU_status_href->{'192.168.105.11'}->{$core} = "free";
+#      $EB_CPU_status_href->{'192.168.105.12'}->{$core} = "free";
+#    }
+#  }
+
+  # MT: no multithreading -> only 32 cores
+  foreach my $core (0..31) {
+    if ( ($core < 10) ||( $core > 31) ) {
+      $EB_CPU_status_href->{'192.168.100.8'}->{$core} = "res"; #reserved
+      $EB_CPU_status_href->{'192.168.100.9'}->{$core} = "res"; #reserved
+      $EB_CPU_status_href->{'192.168.100.10'}->{$core} = "res"; #reserved
+      $EB_CPU_status_href->{'192.168.105.11'}->{$core} = "res"; #reserved
+      $EB_CPU_status_href->{'192.168.105.12'}->{$core} = "res"; #reserved
+    } else {
+      $EB_CPU_status_href->{'192.168.100.8'}->{$core} = "free";
+      $EB_CPU_status_href->{'192.168.100.9'}->{$core} = "free";
+      $EB_CPU_status_href->{'192.168.100.10'}->{$core} = "free";
+      $EB_CPU_status_href->{'192.168.105.11'}->{$core} = "free";
+      $EB_CPU_status_href->{'192.168.105.12'}->{$core} = "free";
+
+    }
+  }
+
+
+
+  # alternative setup: specifiy cpu bitmasks for different roles:
+
+  $EB_CPU_status_href->{'192.168.100.15'}->{'input'} = "2-23";
+  $EB_CPU_status_href->{'192.168.100.15'}->{'build'} = "2-23";
+
+  # JAM12-2018: reserve lower 32 cpus for network interrupts
+#  $EB_CPU_status_href->{'192.168.100.8'}->{'input'} = "32-47";
+#  $EB_CPU_status_href->{'192.168.100.8'}->{'build'} = "48-63";
+#  $EB_CPU_status_href->{'192.168.100.9'}->{'input'} = "32-47";
+#  $EB_CPU_status_href->{'192.168.100.9'}->{'build'} = "48-63";
+#  $EB_CPU_status_href->{'192.168.100.10'}->{'input'} = "32-47";
+#  $EB_CPU_status_href->{'192.168.100.10'}->{'build'} = "48-63";
+#  $EB_CPU_status_href->{'192.168.105.11'}->{'input'} = "32-47";
+#  $EB_CPU_status_href->{'192.168.105.11'}->{'build'} = "48-63";
+#  $EB_CPU_status_href->{'192.168.105.12'}->{'input'} = "32-47";
+#  $EB_CPU_status_href->{'192.168.105.12'}->{'build'} = "48-63";
+
+
+  
+  # MT 2020-12: reserve lower 16 cpus for network interrupts
+  $EB_CPU_status_href->{'192.168.100.8'}->{'input'}  = "10-25";
+  $EB_CPU_status_href->{'192.168.100.8'}->{'build'}  = "26-31";
+  $EB_CPU_status_href->{'192.168.100.9'}->{'input'}  = "10-25";
+  $EB_CPU_status_href->{'192.168.100.9'}->{'build'}  = "26-31";
+  $EB_CPU_status_href->{'192.168.100.10'}->{'input'} = "10-25";
+  $EB_CPU_status_href->{'192.168.100.10'}->{'build'} = "26-31";
+  $EB_CPU_status_href->{'192.168.105.11'}->{'input'} = "10-25";
+  $EB_CPU_status_href->{'192.168.105.11'}->{'build'} = "26-31";
+  $EB_CPU_status_href->{'192.168.105.12'}->{'input'} = "10-25";
+  $EB_CPU_status_href->{'192.168.105.12'}->{'build'} = "26-31";
+
+
+  # MT, separate scheme, doesn't do so well
+  #$EB_CPU_status_href->{'192.168.105.12'}->{'input'} = "16-23";
+  #$EB_CPU_status_href->{'192.168.105.12'}->{'build'} = "24-31";
+
+
 }
 
 
-sub getCoreNr()
-{
-    #my ($ip) = @_;
-    my ($ip, $role) = @_;
-    my $core_nr;
-    if(defined $role)
-    {
-    
-       $core_nr = $EB_CPU_status_href->{$ip}->{$role}
+sub getCoreNr()  {
+  #my ($ip) = @_;
+  my ($ip, $role) = @_;
+  my $core_nr;
+  if (defined $role) {
+    $core_nr = $EB_CPU_status_href->{$ip}->{$role}
+  } else {
+    ################### begin old       
+
+    foreach my $eb_ip (sort keys %$EB_CPU_status_href) {
+      next unless($ip eq $eb_ip);
+
+      foreach my $core ( sort {$a <=> $b} keys %{$EB_CPU_status_href->{$eb_ip}} ) {
+        my $core_status = $EB_CPU_status_href->{$eb_ip}->{$core};
+
+        next unless(lc($core_status) eq "free");
+
+        $core_nr = $core;
+        $EB_CPU_status_href->{$eb_ip}->{$core} = "busy";
+        last;
+      }
     }
-    else
-    {
- ################### begin old       
 
-    foreach my $eb_ip (sort keys %$EB_CPU_status_href){
+    #- If no free cores left - take reserved cores
+    unless( defined $core_nr ){
+      foreach my $eb_ip (sort keys %$EB_CPU_status_href) {
         next unless($ip eq $eb_ip);
-            
-        foreach my $core ( sort {$a <=> $b} keys %{$EB_CPU_status_href->{$eb_ip}} ){
-            my $core_status = $EB_CPU_status_href->{$eb_ip}->{$core};
-            
-            next unless(lc($core_status) eq "free");
-
+        foreach my $core ( sort {$a <=> $b} keys %{$EB_CPU_status_href->{$eb_ip}} ) {
+          my $core_status = $EB_CPU_status_href->{$eb_ip}->{$core};
+          if (lc($core_status) eq "res") {
             $core_nr = $core;
             $EB_CPU_status_href->{$eb_ip}->{$core} = "busy";
             last;
+          }
         }
+      }
     }
 
-    #- If no free cores left - take reserved cores
-    unless( defined $core_nr ){
-        foreach my $eb_ip (sort keys %$EB_CPU_status_href){
-            next unless($ip eq $eb_ip);
-            
-            foreach my $core ( sort {$a <=> $b} keys %{$EB_CPU_status_href->{$eb_ip}} ){
-                my $core_status = $EB_CPU_status_href->{$eb_ip}->{$core};
-                
-                if(lc($core_status) eq "res"){
-                    $core_nr = $core;
-                    $EB_CPU_status_href->{$eb_ip}->{$core} = "busy";
-                    last;
-                }
-            }
-        }
-    }
-    
-################### end old    
-}
-    unless( defined $core_nr ){
-        print "No free cores left on CPU $ip. Exit.\n";
-        exit(0);
-    }
+    ################### end old    
+  }
+  unless( defined $core_nr ){
+    print "No free cores left on CPU $ip. Exit.\n";
+    exit(0);
+  }
 
-    print "found core numbers $core_nr for node $ip, role $role\n";  
-    return $core_nr;
+  print "found core numbers $core_nr for node $ip, role $role\n";  
+  return $core_nr;
 }
 
 
 
 
-sub setArgs()
-{
-    my @active_EBs;
-
-    if(@opt_ebrange){
-        foreach my $range (@opt_ebrange){
-            if($range =~ /(\d+)-(\d+)/){
-                my $max = $1;
-                my $min = $2;
-                
-                foreach my $eb ($max..$min){
-                    #- 1 must be subtracted to match
-                    #  EB numbering in the register_configgbe_ip.db
-                    #  which starts from zero
-                    &checkEB_nr($eb);
-                    push(@active_EBs, $eb-1);
-                }
-            }
-            elsif($range =~ /(\d+)/){
-                &checkEB_nr($1);
-                push(@active_EBs, $1-1);
-            }
+sub setArgs()   {
+  my @active_EBs;
+
+  if (@opt_ebrange) {
+    foreach my $range (@opt_ebrange) {
+      if ($range =~ /(\d+)-(\d+)/) {
+        my $max = $1;
+        my $min = $2;
+
+        foreach my $eb ($max..$min) {
+          #- 1 must be subtracted to match
+          #  EB numbering in the register_configgbe_ip.db
+          #  which starts from zero
+          &checkEB_nr($eb);
+          push(@active_EBs, $eb-1);
         }
+      } elsif ($range =~ /(\d+)/) {
+        &checkEB_nr($1);
+        push(@active_EBs, $1-1);
+      }
     }
+  }
 
-    return \@active_EBs;
+  return \@active_EBs;
 }
 
-sub checkEB_nr()
-{
-    my ($eb_nr) = @_;
+sub checkEB_nr()  {
+  my ($eb_nr) = @_;
 
-    if( $eb_nr < 1 || $eb_nr > 16 ){
-        print "ERROR: EB number should be in the range 1-16. Exit.";
-        exit(0);
-    }
+  if ( $eb_nr < 1 || $eb_nr > 16 ) {
+    print "ERROR: EB number should be in the range 1-16. Exit.";
+    exit(0);
+  }
 }
 
-sub getEBArgs()
-{
-    my ($href) = @_;
+sub getEBArgs()   {
+  my ($href) = @_;
 
-    my $prefix = $temp_args_href->{'Main'}->{'EB_EXT'};
-    $prefix = $opt_prefix if( defined $opt_prefix );
-    my $filesize = $temp_args_href->{'Main'}->{'EB_FSIZE'};
+  my $prefix = $temp_args_href->{'Main'}->{'EB_EXT'};
+  $prefix = $opt_prefix if( defined $opt_prefix );
+  my $filesize = $temp_args_href->{'Main'}->{'EB_FSIZE'};
 
-    my $base_port  = $temp_args_href->{'Parallel'}->{'BASE_PORT'};
-    my $shift_port = $temp_args_href->{'Parallel'}->{'SHIFT_PORT'};
-    my $source_num = $temp_args_href->{'Parallel'}->{'NUM_OF_SOURCES'};
-    my $queuesize  = $temp_args_href->{'Parallel'}->{'QUEUESIZE'};
+  my $base_port  = $temp_args_href->{'Parallel'}->{'BASE_PORT'};
+  my $shift_port = $temp_args_href->{'Parallel'}->{'SHIFT_PORT'};
+  my $source_num = $temp_args_href->{'Parallel'}->{'NUM_OF_SOURCES'};
+  my $queuesize  = $temp_args_href->{'Parallel'}->{'QUEUESIZE'};
 
-    my $multidisk  = $temp_args_href->{'Parallel'}->{'MULTIDISK'};
+  my $multidisk  = $temp_args_href->{'Parallel'}->{'MULTIDISK'};
 
-    #- Number of EB process
-    my $ebproc = 0;
+  #- Number of EB process
+  my $ebproc = 0;
 
-    #- List of BEs
-    my $listOfEBs = $temp_args_href->{'Parallel'}->{'EB_LIST'};
-    my @eb_list = split(/\s+/, $listOfEBs);
+  #- List of BEs
+  my $listOfEBs = $temp_args_href->{'Parallel'}->{'EB_LIST'};
+  my @eb_list = split(/\s+/, $listOfEBs);
 
-    #- DABC mode selection
-    my $listOfDABC = $temp_args_href->{'Parallel'}->{'DABC'};
-    my @dabc_list = split(/\s+/, $listOfDABC);
-    
-    
-    # BNET setup:
-    my $listOfBnetInputs = $temp_args_href->{'Parallel'}->{'BNETINP'};
-    my @bnet_in_list = split(/\s+/, $listOfBnetInputs);
-    
-    my $listOfBnetBuilders = $temp_args_href->{'Parallel'}->{'BNETBLD'};
-    my @bnet_bld_list = split(/\s+/, $listOfBnetBuilders);
-    #print Dumper @bnet_bld_list;
-     
-
-    #- Default RFIO settings
-    my $rfio               = $temp_args_href->{'Parallel'}->{'RFIO'};
-    my $rfio_path          = $temp_args_href->{'Parallel'}->{'RFIO_PATH'};
-    my $rfio_pcOptions     = $temp_args_href->{'Parallel'}->{'RFIO_pcOptions'};
-    my $rfio_iCopyMode     = $temp_args_href->{'Parallel'}->{'RFIO_iCopyMode'};
-    my $rfio_pcCopyPath    = $temp_args_href->{'Parallel'}->{'RFIO_pcCopyPath'};
-    my $rfio_iCopyFrac     = $temp_args_href->{'Parallel'}->{'RFIO_iCopyFraction'};
-    my $rfio_iMaxFile      = $temp_args_href->{'Parallel'}->{'RFIO_iMaxFile'};
-    my $rfio_iPathConv     = $temp_args_href->{'Parallel'}->{'RFIO_iPathConvention'};
-    
-    my @rfio_list = split(/\s+/, $rfio);
-    
-    
-    
-    #- LTSM settings
-    my $listOfLTSM = $temp_args_href->{'Parallel'}->{'LTSM'};
-    my @ltsm_list = split(/\s+/, $listOfLTSM);
-    
-    my $ltsm_path          = $temp_args_href->{'Parallel'}->{'LTSM_PATH'};
-    my $ltsm_server        = $temp_args_href->{'Parallel'}->{'LTSM_Server'};
-    my $ltsm_node          = $temp_args_href->{'Parallel'}->{'LTSM_Node'};
-    my $ltsm_passwd        = $temp_args_href->{'Parallel'}->{'LTSM_Passwd'};
-    my $ltsm_filesys       = $temp_args_href->{'Parallel'}->{'LTSM_Filesystem'};
-    
-    my $ltsm_usefsd       = $temp_args_href->{'Parallel'}->{'LTSM_USEFSD'};
-    my $ltsm_fsd_servers       = $temp_args_href->{'Parallel'}->{'LTSM_FSD_SERVERS'};
-    my @ltsm_fsd_server_list = split(/\s+/, $ltsm_fsd_servers);
-    my $ltsm_fsd_ports      = $temp_args_href->{'Parallel'}->{'LTSM_FSD_PORT'};
-    my @ltsm_fsd_port_list = split(/\s+/, $ltsm_fsd_ports);
-    
-    #my $ltsm_fsd_port      = $temp_args_href->{'Parallel'}->{'LTSM_FSD_PORT'};
-    
-    
-    #- EPICS Controled 
-    my $epics_ctrl = $temp_args_href->{'Parallel'}->{'EPICS_CTRL'};
+  #- DABC mode selection
+  my $listOfDABC = $temp_args_href->{'Parallel'}->{'DABC'};
+  my @dabc_list = split(/\s+/, $listOfDABC);
 
-    my @epics_list = split(/\s+/, $epics_ctrl);
 
-     #- Logging the output of EBs
-    my $eb_log     = $temp_args_href->{'Parallel'}->{'EB_LOG'};
-    my $eb_debug     = $temp_args_href->{'Parallel'}->{'EB_DEBUG'};
-    my $nm_log     = $temp_args_href->{'Parallel'}->{'NM_LOG'};
-    my @eblog_list =  split(/\s+/, $eb_log);
-    my @ebdbg_list =  split(/\s+/, $eb_debug);
-    my @nmlog_list =  split(/\s+/, $nm_log);
+  # BNET setup:
+  my $listOfBnetInputs = $temp_args_href->{'Parallel'}->{'BNETINP'};
+  my @bnet_in_list = split(/\s+/, $listOfBnetInputs);
 
-    
-    #- Write to disk
-    my $write2disk = $temp_args_href->{'Parallel'}->{'WRITE_TO_DISK'};
-    my @write2disk_list = split(/\s+/, $write2disk);
+  my $listOfBnetBuilders = $temp_args_href->{'Parallel'}->{'BNETBLD'};
+  my @bnet_bld_list = split(/\s+/, $listOfBnetBuilders);
+  #print Dumper @bnet_bld_list;
+
+
+  #- Default RFIO settings
+  my $rfio               = $temp_args_href->{'Parallel'}->{'RFIO'};
+  my $rfio_path          = $temp_args_href->{'Parallel'}->{'RFIO_PATH'};
+  my $rfio_pcOptions     = $temp_args_href->{'Parallel'}->{'RFIO_pcOptions'};
+  my $rfio_iCopyMode     = $temp_args_href->{'Parallel'}->{'RFIO_iCopyMode'};
+  my $rfio_pcCopyPath    = $temp_args_href->{'Parallel'}->{'RFIO_pcCopyPath'};
+  my $rfio_iCopyFrac     = $temp_args_href->{'Parallel'}->{'RFIO_iCopyFraction'};
+  my $rfio_iMaxFile      = $temp_args_href->{'Parallel'}->{'RFIO_iMaxFile'};
+  my $rfio_iPathConv     = $temp_args_href->{'Parallel'}->{'RFIO_iPathConvention'};
+
+  my @rfio_list = split(/\s+/, $rfio);
+
+
+
+  #- LTSM settings
+  my $listOfLTSM = $temp_args_href->{'Parallel'}->{'LTSM'};
+  my @ltsm_list = split(/\s+/, $listOfLTSM);
+
+  my $ltsm_path          = $temp_args_href->{'Parallel'}->{'LTSM_PATH'};
+  my $ltsm_server        = $temp_args_href->{'Parallel'}->{'LTSM_Server'};
+  my $ltsm_node          = $temp_args_href->{'Parallel'}->{'LTSM_Node'};
+  my $ltsm_passwd        = $temp_args_href->{'Parallel'}->{'LTSM_Passwd'};
+  my $ltsm_filesys       = $temp_args_href->{'Parallel'}->{'LTSM_Filesystem'};
+
+  my $ltsm_usefsd       = $temp_args_href->{'Parallel'}->{'LTSM_USEFSD'};
+  my $ltsm_fsd_servers       = $temp_args_href->{'Parallel'}->{'LTSM_FSD_SERVERS'};
+  my @ltsm_fsd_server_list = split(/\s+/, $ltsm_fsd_servers);
+  my $ltsm_fsd_ports      = $temp_args_href->{'Parallel'}->{'LTSM_FSD_PORT'};
+  my @ltsm_fsd_port_list = split(/\s+/, $ltsm_fsd_ports);
 
-    #--- Read GbE configuration
-    my %eb_ids_gbe_hash;
-    my $eb_ids_gbe_href = \%eb_ids_gbe_hash;
+  #my $ltsm_fsd_port      = $temp_args_href->{'Parallel'}->{'LTSM_FSD_PORT'};
 
-    &getGbEconfig($eb_ids_gbe_href);
 
-    #--- Loop over all EB processes
-    #print Dumper $eb_ids_gbe_href;
-    #exit;
-    #foreach my $ebproc ( sort keys %{$eb_ids_gbe_href} ){
-    foreach my $ebproc ( 0 ..  $#bnetservers){
+  #- EPICS Controled 
+  my $epics_ctrl = $temp_args_href->{'Parallel'}->{'EPICS_CTRL'};
+
+  my @epics_list = split(/\s+/, $epics_ctrl);
+
+  #- Logging the output of EBs
+  my $eb_log     = $temp_args_href->{'Parallel'}->{'EB_LOG'};
+  my $eb_debug     = $temp_args_href->{'Parallel'}->{'EB_DEBUG'};
+  my $nm_log     = $temp_args_href->{'Parallel'}->{'NM_LOG'};
+  my @eblog_list =  split(/\s+/, $eb_log);
+  my @ebdbg_list =  split(/\s+/, $eb_debug);
+  my @nmlog_list =  split(/\s+/, $nm_log);
+
     
-      #- If there was a list of EBs provided via command line options
-      #  go to the next $ebproc if the current $ebproc is not in this list.
-      #print "active EBs:\n";
-      #print Dumper $active_EBs_aref;
+  #- Write to disk
+  my $write2disk = $temp_args_href->{'Parallel'}->{'WRITE_TO_DISK'};
+  my @write2disk_list = split(/\s+/, $write2disk);
+
+  #--- Read GbE configuration
+  my %eb_ids_gbe_hash;
+  my $eb_ids_gbe_href = \%eb_ids_gbe_hash;
+
+  &getGbEconfig($eb_ids_gbe_href);
+
+  #--- Loop over all EB processes
+  #print Dumper $eb_ids_gbe_href;
+  #exit;
+  #foreach my $ebproc ( sort keys %{$eb_ids_gbe_href} ){
+  foreach my $ebproc ( 0 ..  $#bnetservers) {
+
+    #- If there was a list of EBs provided via command line options
+    #  go to the next $ebproc if the current $ebproc is not in this list.
+    #print "active EBs:\n";
+    #print Dumper $active_EBs_aref;
+
+    if (@$active_EBs_aref) {
+      next unless( any {$_ == $ebproc} @$active_EBs_aref ); #from command line args
+    } else {
+      next unless( $eb_list[$ebproc] ); #from eb.conf
+    }
 
-        if(@$active_EBs_aref){
-            next unless( any {$_ == $ebproc} @$active_EBs_aref );  #from command line args
-        }
-        else{
-            next unless( $eb_list[$ebproc] );  #from eb.conf
-        }
 
+    #my $eb_ip = $eb_ids_gbe_href->{$ebproc}->{'IP'};
 
-        #my $eb_ip = $eb_ids_gbe_href->{$ebproc}->{'IP'};
+    #- Save IP needed by other function to stop EBs.
+    #push(@EB_IP_list, $eb_ip) unless( any {$_ eq $eb_ip} @EB_IP_list );
 
-        #- Save IP needed by other function to stop EBs.
-        #push(@EB_IP_list, $eb_ip) unless( any {$_ eq $eb_ip} @EB_IP_list );
+    #- Some checks on number of EB processes
+    die "Number of EB processes exceeds the number in RFIO setting! Exit." if($ebproc > $#rfio_list);
+    die "Number of EB processes exceeds the number in EPICS_CTRL setting! Exit." if($ebproc > $#epics_list);
+    #- Here we can overwrite default rfio settings with individual settings per EB processes
+    my $procname = sprintf("EB_PROC_%d", 1+$ebproc);
+    # $rfio_iCopyMode     = $temp_args_href->{$procname}->{'RFIO_iCopyMode'};
 
-        #- Some checks on number of EB processes
-        die "Number of EB processes exceeds the number in RFIO setting! Exit." if($ebproc > $#rfio_list);
-        die "Number of EB processes exceeds the number in EPICS_CTRL setting! Exit." if($ebproc > $#epics_list);
-        
-        #- Here we can overwrite default rfio settings with individual settings per EB processes
-        my $procname = sprintf("EB_PROC_%d", 1+$ebproc);
-        # $rfio_iCopyMode     = $temp_args_href->{$procname}->{'RFIO_iCopyMode'};
-        
-        #$href->{$ebproc}->{'IP'}        = $eb_ip;
-        $href->{$ebproc}->{'IP'} = $bnetservers[$ebproc];
-        $href->{$ebproc}->{'EBNUM'}     = $ebproc+1;
-        $href->{$ebproc}->{'BASEPORT'}  = $base_port;
-        $href->{$ebproc}->{'PORT_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'port_list'};
-        $href->{$ebproc}->{'SOURCENUM'} = scalar @{$eb_ids_gbe_href->{$ebproc}->{'port_list'}};
-
-        # JAM2016: bnet requieres udp destination nodes in a list like the ports:
-        $href->{$ebproc}->{'IP_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'ip_list'};
-        
-        # JAM2018: bnet requieres calibration modes in a list like the ports:
-        $href->{$ebproc}->{'CALIB_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'calib_list'};
-        
-        # JAM2018: bnet requires hub addresses/subevents in a list like the ports:
-        $href->{$ebproc}->{'HUB_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'addr_list'};
-        
-        
-        $href->{$ebproc}->{'BUFSIZE_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'bufsize_list'};
-        $href->{$ebproc}->{'PREFIX'}    = $prefix;
-        $href->{$ebproc}->{'QUEUESIZE'} = $queuesize;
-        $href->{$ebproc}->{'MULTIDISK'} = $multidisk;
-        $href->{$ebproc}->{'FILESIZE'} = $filesize;
-
-        if( defined $temp_args_href->{$procname}->{'MULTIDISK'} ){
-            $href->{$ebproc}->{'MULTIDISK'} = $temp_args_href->{$procname}->{'MULTIDISK'};
-        }
-        elsif($multidisk){
-            $href->{$ebproc}->{'MULTIDISK'} = $href->{$ebproc}->{'EBNUM'};
-        }
-        else{
-            $href->{$ebproc}->{'MULTIDISK'} = $multidisk;
-        }
+    #$href->{$ebproc}->{'IP'}        = $eb_ip;
+    $href->{$ebproc}->{'IP'} = $bnetservers[$ebproc];
+    $href->{$ebproc}->{'EBNUM'}     = $ebproc+1;
+    $href->{$ebproc}->{'BASEPORT'}  = $base_port;
+    $href->{$ebproc}->{'PORT_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'port_list'};
+    $href->{$ebproc}->{'SOURCENUM'} = scalar @{$eb_ids_gbe_href->{$ebproc}->{'port_list'}};
 
-        if( defined $temp_args_href->{$procname}->{'RESDOWNSCALE'} ){
-            $href->{$ebproc}->{'RESDOWNSCALE'} = $temp_args_href->{$procname}->{'RESDOWNSCALE'};
-            $href->{$ebproc}->{'RESNUMEVENTS'} = $temp_args_href->{$procname}->{'RESNUMEVENTS'};
-            $href->{$ebproc}->{'RESPATH'}      = $temp_args_href->{$procname}->{'RESPATH'};
-            $href->{$ebproc}->{'RESSIZELIMIT'} = $temp_args_href->{$procname}->{'RESSIZELIMIT'};
-        }
+    # JAM2016: bnet requieres udp destination nodes in a list like the ports:
+    $href->{$ebproc}->{'IP_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'ip_list'};
 
-        if( defined $temp_args_href->{$procname}->{'ONLINESERVER'} ){
-            if($opt_online eq "on"){
-                $href->{$ebproc}->{'ONLINESERVER'} = "on";
-            }
-            elsif($opt_online eq "off"){
-                $href->{$ebproc}->{'ONLINESERVER'} = "off";
-            }
-            else{
-                $href->{$ebproc}->{'ONLINESERVER'} = $temp_args_href->{$procname}->{'ONLINESERVER'};
-            }
-        }
-        else{
-            $href->{$ebproc}->{'ONLINESERVER'} = "off";
-        }
+    # JAM2018: bnet requieres calibration modes in a list like the ports:
+    $href->{$ebproc}->{'CALIB_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'calib_list'};
 
-        $href->{$ebproc}->{'RFIO'}             = $rfio_list[$ebproc] if(lc($opt_rfio) eq 'undef');  # 0|1
-        $href->{$ebproc}->{'RFIO'}             = 1 if(lc($opt_rfio) eq 'on');  # 0|1
-        $href->{$ebproc}->{'RFIO'}             = 0 if(lc($opt_rfio) eq 'off');  # 0|1
-        $href->{$ebproc}->{'RFIO_PATH'}        = $rfio_path;
-        $href->{$ebproc}->{'RFIO_pcOptions'}   = $rfio_pcOptions;
-        $href->{$ebproc}->{'RFIO_iCopyMode'}   = $rfio_iCopyMode;
-        $href->{$ebproc}->{'RFIO_pcCopyPath'}  = $rfio_pcCopyPath;
-        $href->{$ebproc}->{'RFIO_iCopyFrac'}   = $rfio_iCopyFrac;
-        $href->{$ebproc}->{'RFIO_iMaxFile'}    = $rfio_iMaxFile;
-        $href->{$ebproc}->{'RFIO_iPathConv'}   = $rfio_iPathConv;
-        
-        
-        
-        $href->{$ebproc}->{'LTSM'}             = $ltsm_list[$ebproc];  # 0|1
-        $href->{$ebproc}->{'LTSM_PATH'}        = $ltsm_path;
-        $href->{$ebproc}->{'LTSM_Server'}      = $ltsm_server;
-        $href->{$ebproc}->{'LTSM_Node'}        = $ltsm_node;
-        $href->{$ebproc}->{'LTSM_Passwd'}      = $ltsm_passwd;
-        $href->{$ebproc}->{'LTSM_Filesystem'}  = $ltsm_filesys;
-        
-        $href->{$ebproc}->{'LTSM_USEFSD'}  = $ltsm_usefsd;
-        #$href->{$ebproc}->{'LTSM_FSD_PORT'}  = $ltsm_fsd_port;
-        $href->{$ebproc}->{'LTSM_FSD_PORT'}  = $ltsm_fsd_port_list[$ebproc];
-        $href->{$ebproc}->{'LTSM_FSD_SERVER'}  = $ltsm_fsd_server_list[$ebproc];
-        
-        
+    # JAM2018: bnet requires hub addresses/subevents in a list like the ports:
+    $href->{$ebproc}->{'HUB_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'addr_list'};
 
-        $href->{$ebproc}->{'EPICS_CTRL'}       = $epics_list[$ebproc];  # 0|1
+    $href->{$ebproc}->{'BUFSIZE_LIST'} = $eb_ids_gbe_href->{$ebproc}->{'bufsize_list'};
+    $href->{$ebproc}->{'PREFIX'}    = $prefix;
+    $href->{$ebproc}->{'QUEUESIZE'} = $queuesize;
+    $href->{$ebproc}->{'MULTIDISK'} = $multidisk;
+    $href->{$ebproc}->{'FILESIZE'} = $filesize;
 
-       $href->{$ebproc}->{'DABC'}             = $dabc_list[$ebproc];  # 0|1
+    if ( defined $temp_args_href->{$procname}->{'MULTIDISK'} ) {
+      $href->{$ebproc}->{'MULTIDISK'} = $temp_args_href->{$procname}->{'MULTIDISK'};
+    } elsif ($multidisk) {
+      $href->{$ebproc}->{'MULTIDISK'} = $href->{$ebproc}->{'EBNUM'};
+    } else {
+      $href->{$ebproc}->{'MULTIDISK'} = $multidisk;
+    }
 
-       $href->{$ebproc}->{'EB_DEBUG'}         = $ebdbg_list[$ebproc];  # 0|1
+    if ( defined $temp_args_href->{$procname}->{'RESDOWNSCALE'} ) {
+      $href->{$ebproc}->{'RESDOWNSCALE'} = $temp_args_href->{$procname}->{'RESDOWNSCALE'};
+      $href->{$ebproc}->{'RESNUMEVENTS'} = $temp_args_href->{$procname}->{'RESNUMEVENTS'};
+      $href->{$ebproc}->{'RESPATH'}      = $temp_args_href->{$procname}->{'RESPATH'};
+      $href->{$ebproc}->{'RESSIZELIMIT'} = $temp_args_href->{$procname}->{'RESSIZELIMIT'};
+    }
 
-        $href->{$ebproc}->{'EB_LOG'}           = $eblog_list[$ebproc];  # 0|1
-        $href->{$ebproc}->{'NM_LOG'}           = $nmlog_list[$ebproc];  # 0|1
-        
-        
-        if($ebproc<5)
-        {
-        # note that for bnet setup, index does not mean eb number, but machine number!
-        # we misuse this here to save complexity of setup
-         $href->{$ebproc}->{'BNET_INP'}       = $bnet_in_list[$ebproc];  # 0|1|2...
-         $href->{$ebproc}->{'BNET_BLD'}       = $bnet_bld_list[$ebproc];  # 0|1|2|3
-         #print "dump bnet_bld\n";
-         #print Dumper \$bnet_bld_list[$ebproc];
-        }
-       
-        
-        if( $write2disk_list[$ebproc] && lc($opt_disk) eq 'undef' ){
-            if(&isVarDefined($temp_args_href->{$procname}->{'OUTDIR'}, "OUTDIR for $procname")){
-                $href->{$ebproc}->{'OUTDIR'} = $temp_args_href->{$procname}->{'OUTDIR'};
-            }
-        }
-        elsif( lc($opt_disk) eq 'on' ){
-            if(&isVarDefined($temp_args_href->{$procname}->{'OUTDIR'}, "OUTDIR for $procname")){
-                $href->{$ebproc}->{'OUTDIR'} = $temp_args_href->{$procname}->{'OUTDIR'};
-            }
-        }
-        elsif( lc($opt_disk) eq 'off' ){
-            #- do not do anything. If $href->{$ebproc}->{'OUTDIR'} is undefined, 
-            #  the data will go to /dev/null
-        }
-    }    
+    if ( defined $temp_args_href->{$procname}->{'ONLINESERVER'} ) {
+      if ($opt_online eq "on") {
+        $href->{$ebproc}->{'ONLINESERVER'} = "on";
+      } elsif ($opt_online eq "off") {
+        $href->{$ebproc}->{'ONLINESERVER'} = "off";
+      } else {
+        $href->{$ebproc}->{'ONLINESERVER'} = $temp_args_href->{$procname}->{'ONLINESERVER'};
+      }
+    } else {
+      $href->{$ebproc}->{'ONLINESERVER'} = "off";
+    }
+
+    $href->{$ebproc}->{'RFIO'}             = $rfio_list[$ebproc] if(lc($opt_rfio) eq 'undef'); # 0|1
+    $href->{$ebproc}->{'RFIO'}             = 1 if(lc($opt_rfio) eq 'on'); # 0|1
+    $href->{$ebproc}->{'RFIO'}             = 0 if(lc($opt_rfio) eq 'off'); # 0|1
+    $href->{$ebproc}->{'RFIO_PATH'}        = $rfio_path;
+    $href->{$ebproc}->{'RFIO_pcOptions'}   = $rfio_pcOptions;
+    $href->{$ebproc}->{'RFIO_iCopyMode'}   = $rfio_iCopyMode;
+    $href->{$ebproc}->{'RFIO_pcCopyPath'}  = $rfio_pcCopyPath;
+    $href->{$ebproc}->{'RFIO_iCopyFrac'}   = $rfio_iCopyFrac;
+    $href->{$ebproc}->{'RFIO_iMaxFile'}    = $rfio_iMaxFile;
+    $href->{$ebproc}->{'RFIO_iPathConv'}   = $rfio_iPathConv;
+
+    $href->{$ebproc}->{'LTSM'}             = $ltsm_list[$ebproc]; # 0|1
+    $href->{$ebproc}->{'LTSM_PATH'}        = $ltsm_path;
+    $href->{$ebproc}->{'LTSM_Server'}      = $ltsm_server;
+    $href->{$ebproc}->{'LTSM_Node'}        = $ltsm_node;
+    $href->{$ebproc}->{'LTSM_Passwd'}      = $ltsm_passwd;
+    $href->{$ebproc}->{'LTSM_Filesystem'}  = $ltsm_filesys;
+
+    $href->{$ebproc}->{'LTSM_USEFSD'}  = $ltsm_usefsd;
+    #$href->{$ebproc}->{'LTSM_FSD_PORT'}  = $ltsm_fsd_port;
+    $href->{$ebproc}->{'LTSM_FSD_PORT'}  = $ltsm_fsd_port_list[$ebproc];
+    $href->{$ebproc}->{'LTSM_FSD_SERVER'}  = $ltsm_fsd_server_list[$ebproc];
+
+    $href->{$ebproc}->{'EPICS_CTRL'}       = $epics_list[$ebproc]; # 0|1
+
+    $href->{$ebproc}->{'DABC'}             = $dabc_list[$ebproc]; # 0|1
+
+    $href->{$ebproc}->{'EB_DEBUG'}         = $ebdbg_list[$ebproc]; # 0|1
+
+    $href->{$ebproc}->{'EB_LOG'}           = $eblog_list[$ebproc]; # 0|1
+    $href->{$ebproc}->{'NM_LOG'}           = $nmlog_list[$ebproc]; # 0|1
+
+    if ($ebproc<5) {
+      # note that for bnet setup, index does not mean eb number, but machine number!
+      # we misuse this here to save complexity of setup
+      $href->{$ebproc}->{'BNET_INP'}       = $bnet_in_list[$ebproc]; # 0|1|2...
+      $href->{$ebproc}->{'BNET_BLD'}       = $bnet_bld_list[$ebproc]; # 0|1|2|3
+      #print "dump bnet_bld\n";
+      #print Dumper \$bnet_bld_list[$ebproc];
+    }
+
+    if ( $write2disk_list[$ebproc] && lc($opt_disk) eq 'undef' ) {
+      if (&isVarDefined($temp_args_href->{$procname}->{'OUTDIR'}, "OUTDIR for $procname")) {
+        $href->{$ebproc}->{'OUTDIR'} = $temp_args_href->{$procname}->{'OUTDIR'};
+      }
+    } elsif ( lc($opt_disk) eq 'on' ) {
+      if (&isVarDefined($temp_args_href->{$procname}->{'OUTDIR'}, "OUTDIR for $procname")) {
+        $href->{$ebproc}->{'OUTDIR'} = $temp_args_href->{$procname}->{'OUTDIR'};
+      }
+    } elsif ( lc($opt_disk) eq 'off' ) {
+      #- do not do anything. If $href->{$ebproc}->{'OUTDIR'} is undefined,
+      #  the data will go to /dev/null
+    }
+  }
 
-    $numOfEBProcs = $ebproc;
-    #print "result\n";
-    #print Dumper $ebproc;
-   # exit;
+  $numOfEBProcs = $ebproc;
+  #print "result\n";
+  #print Dumper $ebproc;
+  # exit;
 }
 
-sub isVarDefined()
-{
-    my ($var, $msg) = @_;
+sub isVarDefined()  {
+  my ($var, $msg) = @_;
 
-    my $retval = 1;
+  my $retval = 1;
 
-    unless( defined $var ){
-        print "Undefined variable found: $msg\n";
-        $retval = 0;
-    }
-        
-    return $retval;
+  unless( defined $var ){
+    print "Undefined variable found: $msg\n";
+    $retval = 0;
+  }
+  return $retval;
 }
 
-sub getVarSizeArg()
-{
-    my ($ebproc) = @_;
-    
-    my $i = 0;
-    my $arg = " ";
+sub getVarSizeArg()   {
+  my ($ebproc) = @_;
 
-    foreach my $size (@{$EB_Args_href->{$ebproc}->{'BUFSIZE_LIST'}}){
+  my $i = 0;
+  my $arg = " ";
 
-        if($EB_Args_href->{$ebproc}->{'BUFSIZE_LIST'}->[$i] == 
-           $EB_Args_href->{$ebproc}->{'QUEUESIZE'}){
-            $i++;
-            next;
-        }
+  foreach my $size (@{$EB_Args_href->{$ebproc}->{'BUFSIZE_LIST'}}) {
 
-        $arg = $arg . " -Q " . $i . ":" . $EB_Args_href->{$ebproc}->{'BUFSIZE_LIST'}->[$i];
-        $i++;
+    if ($EB_Args_href->{$ebproc}->{'BUFSIZE_LIST'}->[$i] == 
+        $EB_Args_href->{$ebproc}->{'QUEUESIZE'}) {
+      $i++;
+      next;
     }
 
-    return $arg;
+    $arg = $arg . " -Q " . $i . ":" . $EB_Args_href->{$ebproc}->{'BUFSIZE_LIST'}->[$i];
+    $i++;
+  }
+
+  return $arg;
 }
 
 
-sub startBnet()
-{
-# here we launch the dabc bnet.
-# parameters in eb.conf can specify how many input and builder processes run on each node.
-# we misuse daq gbe setup for EB 15 to specify ports and destination nodes.
-my (@process_list);
-# setup for first EB
-my $ebproc =0; # setup for first EB will define the BNET
+sub startBnet()   {
+  # here we launch the dabc bnet.
+  # parameters in eb.conf can specify how many input and builder processes run on each node.
+  # we misuse daq gbe setup for EB 15 to specify ports and destination nodes.
+  my (@process_list);
+  # setup for first EB
+  my $ebproc =0;             # setup for first EB will define the BNET
   my $username = "hadaq";
   my $cdworkdir = "cd /home/hadaq/oper;";
-   
+
   # here the default installation. always the most recent... 
   my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.head; ";
   my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.head ";
-#   my $cmd_dabc = "/usr/bin/gdb  -x /home/hadaq/soft/dabc/head/base/run/gdbcmd.txt --args /home/hadaq/soft/dabc/bin/dabc_exe.head ";
+  #   my $cmd_dabc = "/usr/bin/gdb  -x /home/hadaq/soft/dabc/head/base/run/gdbcmd.txt --args /home/hadaq/soft/dabc/bin/dabc_exe.head ";
   my $conf_bnet_inp = " BnetInputHades.head.xml";
   #my $conf_bnet_bld = " BnetBuilderHades.head.xml";
   my $conf_bnet_bld = " BnetBuilderHadesFSD.head.xml";
-  
- # JAM2020- enable this to switch different dabc version: 
-#    my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.jun20; ";
-#    my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.jun20 ";
-#    my $conf_bnet_inp = " BnetInputHades.jun20.xml";
-#    my $conf_bnet_bld = " BnetBuilderHadesFSD.jun20.xml";
-   
-   
-#  my @bnetservers = ("192.168.100.8","192.168.100.9","192.168.100.10","192.168.105.11", "192.168.105.12");
+
+  # JAM2020- enable this to switch different dabc version: 
+  #    my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.jun20; ";
+  #    my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.jun20 ";
+  #    my $conf_bnet_inp = " BnetInputHades.jun20.xml";
+  #    my $conf_bnet_bld = " BnetBuilderHadesFSD.jun20.xml";
+
+  #  my @bnetservers = ("192.168.100.8","192.168.100.9","192.168.100.10","192.168.105.11", "192.168.105.12");
 
   # variable master node now:
   my $bnetmaster = "lxhadeb07";
   #lxhadeb12";
-  
-# before we start inidividual bnet processes, need to evaluate list of ports and nodes:
-# BNETSENDERS=[localhost:12501,localhost:12502]
-# BNETRECEIVERS= [localhost:12101,localhost:12102] 
-# HADAQPORTS =[50000,50001,50002]
-
-my $bnetsenders = "[";
-my $bnetrcvs = "[";
-my @bnet_port_list   = ();
-my @bnet_calib_list  = ();
-my @bnet_subevt_list = ();
-my $firstsnd = 1;
-my $firstrcv = 1;
-
- my $maxbuildservers = 4; #exclude lxhadeb12 from data writing
- my $maxbuilders=1; 
-    if ($opt_bnet>0 && $opt_bnet <16) {
-      $maxbuilders=$opt_bnet;
-    }
-    
-   print "Using $maxbuilders event builder nodes from option -b $opt_bnet\n";     
-my $totalbuilders=0;
-my @localbuilders = (0,0,0,0,0);
-while($totalbuilders < $maxbuilders)
-{
-    my $lasttotalbuilders=$totalbuilders;
-    for ( my $ebserver=0; $ebserver<$maxbuildservers; $ebserver=$ebserver+1){
-         my $bnet_numbuilders =  $EB_Args_href->{$ebserver}->{'BNET_BLD'};
-         #print "numbuilders for $ebserver is $bnet_numbuilders \n";
-         if($totalbuilders < $maxbuilders)
-           {
-             if($localbuilders[$ebserver] < $bnet_numbuilders)
-                 {
-                     $localbuilders[$ebserver]++;
-                     $totalbuilders++;
-                     #  print "Added 1 builder on EB server: $ebserver\n";
-                 }
-           }
-         }
-     if ($totalbuilders==$lasttotalbuilders){ last;} # more ebs demanded than configured             
-}
-
- for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1){
-         print "Found $localbuilders[$ebserver]  builders on EB server: $ebserver\n";
-         }
-
-my $rcvport = 12100;
-for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1){
-         print "Gathering processes at EB server: $ebserver\n";
-      my $sendport = 12501;
-      my $ip = $bnetservers[$ebserver];
 
-      
-      # JAM2018 - need to transform HADES VLAN IPs into GSI VLAN for BNET!
-      my $gsi_ip = getIP_hades2gsi($ip);
-      
-      # array of BNET values is already indexed with server id:
-      my $bnet_numsenders =  $EB_Args_href->{$ebserver}->{'BNET_INP'};
-      
-      for (my $six=0; $six<$bnet_numsenders; $six=$six+1)
-      {
-       $bnetsenders=$bnetsenders . "," unless ($firstsnd>0);
-       $bnetsenders=$bnetsenders . $gsi_ip.":". $sendport;
-       $sendport=$sendport+1;
-       $firstsnd=0 if($firstsnd>0);
+  # before we start inidividual bnet processes, need to evaluate list of ports and nodes:
+  # BNETSENDERS=[localhost:12501,localhost:12502]
+  # BNETRECEIVERS= [localhost:12101,localhost:12102] 
+  # HADAQPORTS =[50000,50001,50002]
+
+  my $bnetsenders = "[";
+  my $bnetrcvs = "[";
+  my @bnet_port_list   = ();
+  my @bnet_calib_list  = ();
+  my @bnet_subevt_list = ();
+  my $firstsnd = 1;
+  my $firstrcv = 1;
+
+  #my $maxbuildservers = 4;      #exclude lxhadeb12 from data writing
+  my $maxbuildservers = 5;      #include lxhadeb12 from data writing, MT
+  my $maxbuilders=1;
+  if ($opt_bnet>0 && $opt_bnet <16) {
+    $maxbuilders=$opt_bnet;
+  }
+
+  print "Using $maxbuilders event builder nodes from option -b $opt_bnet\n";
+  my $totalbuilders=0;
+  my @localbuilders = (0,0,0,0,0);
+  while ($totalbuilders < $maxbuilders) {
+    my $lasttotalbuilders=$totalbuilders;
+    for ( my $ebserver=0; $ebserver<$maxbuildservers; $ebserver=$ebserver+1) {
+      my $bnet_numbuilders =  $EB_Args_href->{$ebserver}->{'BNET_BLD'};
+      print "numbuilders for $ebserver is $bnet_numbuilders \n";
+      if ($totalbuilders < $maxbuilders) {
+        if ($localbuilders[$ebserver] < $bnet_numbuilders) {
+          $localbuilders[$ebserver]++;
+          $totalbuilders++;
+          print "Added 1 builder on EB server: $ebserver\n";
+        }
       }
-      
-      
-       for (my $rix=0; $rix<$localbuilders[$ebserver]; $rix=$rix+1)
-       {
-           $bnetrcvs=$bnetrcvs . "," unless ($firstrcv>0);
-           $bnetrcvs=$bnetrcvs . $gsi_ip.":". $rcvport;
-           $rcvport=$rcvport+1;
-           $firstrcv=0 if($firstrcv>0);
-       }      
-      my $hadaqports = "[";
-      my $calibflags = "[";
-      my $subevents  = "[";
-      my $firstport = 1;
-      
-  
-        #- add ports: note that we only use eb 1 setup and do check which ports belong to our eb server:
-       my $ix =0;
-        foreach my $port (@{$EB_Args_href->{$ebproc}->{'PORT_LIST'}}){ 
-           # here we only gather such ports that are assigned to our node:
-           # todo: how to distribute the ports to more than one bnet input process per server?
-           my $cflag = $EB_Args_href->{$ebproc}->{'CALIB_LIST'}[$ix];
-           my $hub = $EB_Args_href->{$ebproc}->{'HUB_LIST'}[$ix];
-           #print "ip" . $ip . " with port:" . $port ." index:" . $ix . " ip: ". $EB_Args_href->{$ebproc}->{'IP_LIST'}[$ix] . " calib: ". $cflag ." hub: ". $hub ."\n" ;
-           if($ip eq $EB_Args_href->{$ebproc}->{'IP_LIST'}[$ix])
-           {
-             $hadaqports=$hadaqports . "," unless ($firstport>0);
-             $hadaqports = $hadaqports . $port;
-             $calibflags=$calibflags . "," unless ($firstport>0);
-             $calibflags = $calibflags . $cflag;
-             $subevents=$subevents . "," unless ($firstport>0);
-             $subevents = $subevents . $hub;
-             $firstport=0 if($firstport>0);
-           }
-           $ix++;
-         
     }
-    $hadaqports=$hadaqports . "]";   
+    if ($totalbuilders==$lasttotalbuilders) {
+      last;
+    }                 # more ebs demanded than configured
+  }
+
+  for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1) {
+    print "Found $localbuilders[$ebserver]  builders on EB server: $ebserver\n";
+  }
+
+  my $rcvport = 12100;
+  for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1) {
+    print "Gathering processes at EB server: $ebserver\n";
+    my $sendport = 12501;
+    my $ip = $bnetservers[$ebserver];
+
+    # JAM2018 - need to transform HADES VLAN IPs into GSI VLAN for BNET!
+    my $gsi_ip = getIP_hades2gsi($ip);
+    # array of BNET values is already indexed with server id:
+    my $bnet_numsenders =  $EB_Args_href->{$ebserver}->{'BNET_INP'};
+    for (my $six=0; $six<$bnet_numsenders; $six=$six+1) {
+      $bnetsenders=$bnetsenders . "," unless ($firstsnd>0);
+      $bnetsenders=$bnetsenders . $gsi_ip.":". $sendport;
+      $sendport=$sendport+1;
+      $firstsnd=0 if($firstsnd>0);
+    }
+    for (my $rix=0; $rix<$localbuilders[$ebserver]; $rix=$rix+1) {
+      $bnetrcvs=$bnetrcvs . "," unless ($firstrcv>0);
+      $bnetrcvs=$bnetrcvs . $gsi_ip.":". $rcvport;
+      $rcvport=$rcvport+1;
+      $firstrcv=0 if($firstrcv>0);
+    }
+    my $hadaqports = "[";
+    my $calibflags = "[";
+    my $subevents  = "[";
+    my $firstport = 1;
+
+    #- add ports: note that we only use eb 1 setup and do check which ports belong to our eb server:
+    my $ix =0;
+    foreach my $port (@{$EB_Args_href->{$ebproc}->{'PORT_LIST'}}) { 
+      # here we only gather such ports that are assigned to our node:
+      # todo: how to distribute the ports to more than one bnet input process per server?
+      my $cflag = $EB_Args_href->{$ebproc}->{'CALIB_LIST'}[$ix];
+      my $hub = $EB_Args_href->{$ebproc}->{'HUB_LIST'}[$ix];
+      #print "ip" . $ip . " with port:" . $port ." index:" . $ix . " ip: ". $EB_Args_href->{$ebproc}->{'IP_LIST'}[$ix] . " calib: ". $cflag ." hub: ". $hub ."\n" ;
+      if ($ip eq $EB_Args_href->{$ebproc}->{'IP_LIST'}[$ix]) {
+        $hadaqports=$hadaqports . "," unless ($firstport>0);
+        $hadaqports = $hadaqports . $port;
+        $calibflags=$calibflags . "," unless ($firstport>0);
+        $calibflags = $calibflags . $cflag;
+        $subevents=$subevents . "," unless ($firstport>0);
+        $subevents = $subevents . $hub;
+        $firstport=0 if($firstport>0);
+      }
+      $ix++;
+    }
+    $hadaqports=$hadaqports . "]";
     push(@bnet_port_list, $hadaqports); # ports are per server
-    
-    $calibflags=$calibflags . "]";   
+    $calibflags=$calibflags . "]";
     push(@bnet_calib_list, $calibflags); # flags per server
-    
-    $subevents=$subevents . "]";   
+    $subevents=$subevents . "]";
     push(@bnet_subevt_list, $subevents); # flags per server
-    
-    
-    
-   # print "node ". $gsi_ip . " uses ports ".$hadaqports . ", calibflags " .$calibflags . " hubs: ". $subevents ."\n";
-}
-$bnetsenders = $bnetsenders . "]";
-$bnetrcvs = $bnetrcvs . "]";
+    # print "node ". $gsi_ip . " uses ports ".$hadaqports . ", calibflags " .$calibflags . " hubs: ". $subevents ."\n";
+  }
+  $bnetsenders = $bnetsenders . "]";
+  $bnetrcvs = $bnetrcvs . "]";
 
-print "bnetsenders: ".   $bnetsenders ."\n";
-print "bnetreceivers: ". $bnetrcvs ."\n";
+  print "bnetsenders: ".   $bnetsenders ."\n";
+  print "bnetreceivers: ". $bnetrcvs ."\n";
 
-  my $portid=0; #
+  my $portid=0;                 #
   my $sendid=0;
-   my $bnebport=12100;
-for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1){
-         print "Starting input processes on EB server: $ebserver\n";
-         my $ebid=$ebserver + 1; # still need unique eventbuilder ids on cluster because of epics!
-        
-         my $cpu = $bnetservers[$ebserver];
-
-         my $gsi_cpu = getIP_hades2gsi($cpu);
-        # in the following, the port and ip setup of the bnet is taken from ebproc 15 or 0 only!
-        
-        my $bnet_numsenders =  $EB_Args_href->{$ebserver}->{'BNET_INP'};
-        #my $bnet_numbuilders =  $EB_Args_href->{$ebserver}->{'BNET_BLD'};
-        print "found $bnet_numsenders senders on node $cpu \n";
-       
-        
-        
-        my $bninpport=12501;
-        
-        # loop over senders on this node and start them:
-        for(my $sender=0; $sender<$bnet_numsenders; $sender=$sender+1)
-        {
-           
-           #my $sendnum= $sender + 1;
-           
-           my $exports = " export MYHOST=" . $gsi_cpu . ";" .
-               " export BNETMASTER=" . $bnetmaster . ";" .
-               #" export BNINPNUM=" . $sendnum . ";" . # need to use different sender numbers on differentnodes
-               " export BNINPNUM=" . $ebid . ";" . # todo: extend if more than one sender per node
-               " export BNINPID=" . $sendid . "; " .
-               " export BNINPPORT=" . $bninpport . "; " .
-               " export BNETSENDERS=" . $bnetsenders . ";" .
-               " export BNETRECEIVERS=" . $bnetrcvs . ";" .
-               " export HADAQPORTS=" . $bnet_port_list[$ebserver] .";" .
-               " export SUBEVENTS=" . $bnet_subevt_list[$ebserver] .";" .
-               " export CALIBFLAGS=" . $bnet_calib_list[$ebserver] .";";
-               
-         # todo: how to configure situation with more than one bnet input per node? hadaqports must be distributed on them...
-         #     
-               
-         #my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu);
-         my $core_nr = &getCoreNr($cpu, 'input'); 
-        my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports taskset -c $core_nr  $cmd_dabc $conf_bnet_inp 1</dev/null &\"";
-     #    my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports   $cmd_dabc $conf_bnet_inp >senderlog_$cpu.log 2>&1  &\"";
-
-
-         my $log = $log_path . "/log_" . $ebserver . "_" . "startBnetInp_". $sender. ".txt";
-   #my $log = "/dev/null 2>&1";
-   
-         print "Forking:" . $exe_dabc ."\n";
-         forkMe($exe_dabc, $log, \@process_list) unless($opt_test);
-
-         $sendid = $sendid +1; 
-         $bninpport =  $bninpport +1;  
-               
-         } # bnet sender/input processes
-       
-    } # end senders   
-    # todo: loop over builders
-    
-   for ( my $ebserver=0; $ebserver<4; $ebserver=$ebserver+1){
-         print "Starting builder processes on EB server: $ebserver\n";
-         my $ebid=$ebserver + 1; # still need unique eventbuilder ids on cluster because of epics!
-        
-         my $cpu = $bnetservers[$ebserver];
-         my $gsi_cpu = getIP_hades2gsi($cpu);
-        # in the following, the port and ip setup of the bnet is taken from ebproc 15 or 0 only!
-        
-        #my $bnet_numbuilders =  $EB_Args_href->{$ebserver}->{'BNET_BLD'};
-        
-        print "start $localbuilders[$ebserver] builders on node $cpu \n";     
-         
-         
-        
-         for(my $builder=0; $builder<$localbuilders[$ebserver]; $builder=$builder+1)
-        {
-        
-           my $exports = " export MYHOST=" . $gsi_cpu . ";" .
-               " export BNETMASTER=" . $bnetmaster . ";" .
-               " export BNEBNUM=" . $ebid . ";" .
-               " export BNEBID=" . $portid . "; " .
-               " export BNEBPORT=" . $bnebport . "; " .
-               # ignore prefix at startup. always start without files and show it:
-               #" export PREFIX=" . $EB_Args_href->{$ebproc}->{'PREFIX'}. "; " .
-               " export PREFIX=--;" .
-               " export BNETSENDERS=" . $bnetsenders . ";" .
-               " export BNETRECEIVERS=" . $bnetrcvs . ";" .
-               " export HADAQPORTS=" . $bnet_port_list[$ebserver]. "; " ;
-               
-               
-#      
-               
-               
-               
-               if($EB_Args_href->{$ebproc}->{'OUTDIR'} ){
-               # no daqdisk demon anymore for raid6-
-               $exports = $exports . "export DAQDISK=0; export OUTDIR=/data01/data; ";
-               
-#              if($EB_Args_href->{$ebproc}->{'MULTIDISK'}){
-#               $exports = $exports . "export DAQDISK=1; export OUTDIR=/data01; ";
-#              }
-#              else{
-#               $exports = $exports . "export DAQDISK=0; export OUTDIR=" . $EB_Args_href->{$ebproc}->{'OUTDIR'} .";";
-#              }
-         
-         
-         
-
-#      }
-          if( $EB_Args_href->{$ebproc}->{'LTSM'} ){
-
-          # switch on by number of outputs
-         $exports = $exports . " export FILEOUTPUTS=3;";
-       # additional exports for LTSM
-
-        $exports = $exports . " export LTSMPATH=". $EB_Args_href->{$ebproc}->{'LTSM_PATH'} . ";";
-         $exports = $exports . " export LTSMSERVER=". $EB_Args_href->{$ebproc}->{'LTSM_Server'} . ";";
-         $exports = $exports . " export LTSMNODE=". $EB_Args_href->{$ebproc}->{'LTSM_Node'} . ";";
-         $exports = $exports . " export LTSMPASSWD=". $EB_Args_href->{$ebproc}->{'LTSM_Passwd'} . ";";
-        $exports = $exports . " export LTSMFSNAME=". $EB_Args_href->{$ebproc}->{'LTSM_Filesystem'} . ";";
-        $exports = $exports . " export DSM_LOG=/home/hadaq/oper/ltsm". $ebid .".log;";
-
-        # new for file system daemon JAM2020:
-          if ($EB_Args_href->{$ebproc}->{'LTSM_USEFSD'}){
-          $exports = $exports . " export USEFSD=true;";
-          $exports = $exports . " export LTSMSESSIONFILES=999999;";
-           # increase number of session files if fsd is used:
-          }
-          else
-          {
-           $exports = $exports . " export USEFSD=false;";
-           $exports = $exports . " export LTSMSESSIONFILES=10;"
-          }
-          
-#         $exports = $exports . " export FSDPORT=". $EB_Args_href->{$ebproc}->{'LTSM_FSD_PORT'} . ";";           
-#        $exports = $exports . " export FSDSERVER=". $EB_Args_href->{$ebproc}->{'LTSM_FSD_SERVER'} . ";";
-     
-       my $fsdix=$ebserver % 3; # number of FSD servers used TODO get from configuration
-       # in this case, server 4 will use first fsd
-       $exports = $exports . " export FSDPORT=". $EB_Args_href->{$fsdix}->{'LTSM_FSD_PORT'} . ";";       
-       $exports = $exports . " export FSDSERVER=". $EB_Args_href->{$fsdix}->{'LTSM_FSD_SERVER'} . ";";
-       
-       
-       }
-       
-       else
-       {
-            # no rfio, just local file 
-            $exports = $exports . " export FILEOUTPUTS=2;";
-       }
-
-         
-         
-         
-         } #outdir
-         else{
-               $exports = $exports . " export FILEOUTPUTS=1;";
-               # no output except for the stream server...
-         }
-  
-       #my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu);
-    my $core_nr = &getCoreNr($cpu, 'build');
-     
-       my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports taskset -c $core_nr  $cmd_dabc $conf_bnet_bld 1</dev/null &\"";
-       #my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports   $cmd_dabc $conf_bnet_bld  >builderlog_$cpu.log 2>&1  &\"";
-
-
-       my $log = $log_path . "/log_" . $ebserver . "_" . "startBnetBld_". $builder . ".txt";
-   #my $log = "/dev/null 2>&1";
-   
-       print "Forking:" . $exe_dabc ."\n";
-       forkMe($exe_dabc, $log, \@process_list) unless($opt_test);
-
-       $ebid = $ebid + 4 ; # increment ebnum by 4 per ebserver to re-use EPICS iocs
-       $portid = $portid + 1; 
-       $bnebport = $bnebport +1;
-       # 
+
+  my $bnebport=12100;
+  for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1) {
+    print "Starting input processes on EB server: $ebserver\n";
+    my $ebid=$ebserver + 1; # still need unique eventbuilder ids on cluster because of epics!
+    my $cpu = $bnetservers[$ebserver];
+
+    my $gsi_cpu = getIP_hades2gsi($cpu);
+    # in the following, the port and ip setup of the bnet is taken from ebproc 15 or 0 only!
+    my $bnet_numsenders =  $EB_Args_href->{$ebserver}->{'BNET_INP'};
+    #my $bnet_numbuilders =  $EB_Args_href->{$ebserver}->{'BNET_BLD'};
+    print "found $bnet_numsenders senders on node $cpu \n";
+
+    my $bninpport=12501;
+    # loop over senders on this node and start them:
+    for (my $sender=0; $sender<$bnet_numsenders; $sender=$sender+1) {
+      #my $sendnum= $sender + 1;
+      my $exports = " export MYHOST=" . $gsi_cpu . ";" .
+        " export BNETMASTER=" . $bnetmaster . ";" .
+        #" export BNINPNUM=" . $sendnum . ";" . # need to use different sender numbers on differentnodes
+        " export BNINPNUM=" . $ebid . ";" . # todo: extend if more than one sender per node
+        " export BNINPID=" . $sendid . "; " .
+        " export BNINPPORT=" . $bninpport . "; " .
+        " export BNETSENDERS=" . $bnetsenders . ";" .
+        " export BNETRECEIVERS=" . $bnetrcvs . ";" .
+        " export HADAQPORTS=" . $bnet_port_list[$ebserver] .";" .
+        " export SUBEVENTS=" . $bnet_subevt_list[$ebserver] .";" .
+        " export CALIBFLAGS=" . $bnet_calib_list[$ebserver] .";";
+      # todo: how to configure situation with more than one bnet input per node? hadaqports must be distributed on them...
+      #
+      #my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu);
+      my $core_nr = &getCoreNr($cpu, 'input'); 
+      my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports taskset -c $core_nr  $cmd_dabc $conf_bnet_inp 1</dev/null & (sleep 2; ~/bin/optimize_taskset.sh) &\"";
+      #    my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports   $cmd_dabc $conf_bnet_inp >senderlog_$cpu.log 2>&1  &\"";
+
+
+      my $log = $log_path . "/log_" . $ebserver . "_" . "startBnetInp_". $sender. ".txt";
+      #my $log = "/dev/null 2>&1";
+
+      print "Forking:" . $exe_dabc ."\n";
+      forkMe($exe_dabc, $log, \@process_list) unless($opt_test);
+
+      $sendid = $sendid +1;
+      $bninpport =     $bninpport +1;
+    }                           # bnet sender/input processes
+  }                             # end senders
+  # todo: loop over builders
+
+  for ( my $ebserver=0; $ebserver<5; $ebserver=$ebserver+1) {
+    print "Starting builder processes on EB server: $ebserver\n";
+    my $ebid=$ebserver + 1; # still need unique eventbuilder ids on cluster because of epics!
+    my $cpu = $bnetservers[$ebserver];
+    my $gsi_cpu = getIP_hades2gsi($cpu);
+    # in the following, the port and ip setup of the bnet is taken from ebproc 15 or 0 only!
+    #my $bnet_numbuilders =  $EB_Args_href->{$ebserver}->{'BNET_BLD'};
+    print "start $localbuilders[$ebserver] builders on node $cpu \n";     
+
+    for (my $builder=0; $builder<$localbuilders[$ebserver]; $builder=$builder+1) {
+      my $exports = " export MYHOST=" . $gsi_cpu . ";" .
+        " export BNETMASTER=" . $bnetmaster . ";" .
+        " export BNEBNUM=" . $ebid . ";" .
+        " export BNEBID=" . $portid . "; " .
+        " export BNEBPORT=" . $bnebport . "; " .
+        # ignore prefix at startup. always start without files and show it:
+        #" export PREFIX=" . $EB_Args_href->{$ebproc}->{'PREFIX'}. "; " .
+        " export PREFIX=--;" .
+        " export BNETSENDERS=" . $bnetsenders . ";" .
+        " export BNETRECEIVERS=" . $bnetrcvs . ";" .
+        " export HADAQPORTS=" . $bnet_port_list[$ebserver]. "; " ;
+
+      if ($EB_Args_href->{$ebproc}->{'OUTDIR'} ) {
+        # no daqdisk demon anymore for raid6-
+        $exports = $exports . "export DAQDISK=0; export OUTDIR=/data01/data; ";
+        #              if($EB_Args_href->{$ebproc}->{'MULTIDISK'}){
+        #               $exports = $exports . "export DAQDISK=1; export OUTDIR=/data01; ";
+        #              }
+        #              else{
+        #               $exports = $exports . "export DAQDISK=0; export OUTDIR=" . $EB_Args_href->{$ebproc}->{'OUTDIR'} .";";
+        #              }
+
+        #      }
+        if ( $EB_Args_href->{$ebproc}->{'LTSM'} ) {
+
+          # switch on by number of outputs
+          $exports = $exports . " export FILEOUTPUTS=3;";
+          # additional exports for LTSM
+
+          $exports = $exports . " export LTSMPATH=". $EB_Args_href->{$ebproc}->{'LTSM_PATH'} . ";";
+          $exports = $exports . " export LTSMSERVER=". $EB_Args_href->{$ebproc}->{'LTSM_Server'} . ";";
+          $exports = $exports . " export LTSMNODE=". $EB_Args_href->{$ebproc}->{'LTSM_Node'} . ";";
+          $exports = $exports . " export LTSMPASSWD=". $EB_Args_href->{$ebproc}->{'LTSM_Passwd'} . ";";
+          $exports = $exports . " export LTSMFSNAME=". $EB_Args_href->{$ebproc}->{'LTSM_Filesystem'} . ";";
+          $exports = $exports . " export DSM_LOG=/home/hadaq/oper/ltsm". $ebid .".log;";
+
+          # new for file system daemon JAM2020:
+          if ($EB_Args_href->{$ebproc}->{'LTSM_USEFSD'}) {
+            $exports = $exports . " export USEFSD=true;";
+            $exports = $exports . " export LTSMSESSIONFILES=999999;";
+            # increase number of session files if fsd is used:
+          } else {
+            $exports = $exports . " export USEFSD=false;";
+            $exports = $exports . " export LTSMSESSIONFILES=10;"
+          }
+          #       $exports = $exports . " export FSDPORT=". $EB_Args_href->{$ebproc}->{'LTSM_FSD_PORT'} . ";";           
+          #        $exports = $exports . " export FSDSERVER=". $EB_Args_href->{$ebproc}->{'LTSM_FSD_SERVER'} . ";";
+          my $fsdix=$ebserver % 3; # number of FSD servers used TODO get from configuration
+          # in this case, server 4 will use first fsd
+          $exports = $exports . " export FSDPORT=". $EB_Args_href->{$fsdix}->{'LTSM_FSD_PORT'} . ";";    
+          $exports = $exports . " export FSDSERVER=". $EB_Args_href->{$fsdix}->{'LTSM_FSD_SERVER'} . ";";
+        } else {
+          # no rfio, just local file 
+          $exports = $exports . " export FILEOUTPUTS=2;";
+        }
+
+      }                         #outdir
+      else {
+        $exports = $exports . " export FILEOUTPUTS=1;";
+        # no output except for the stream server...
+      }
+      #my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu);
+      my $core_nr = &getCoreNr($cpu, 'build');
+      my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports taskset -c $core_nr  $cmd_dabc $conf_bnet_bld 1</dev/null & (sleep 4; ~/bin/optimize_taskset.sh) &\"";
+      #my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports   $cmd_dabc $conf_bnet_bld  >builderlog_$cpu.log 2>&1  &\"";
+
+
+      my $log = $log_path . "/log_" . $ebserver . "_" . "startBnetBld_". $builder . ".txt";
+      #my $log = "/dev/null 2>&1";
+      print "Forking:" . $exe_dabc ."\n";
+      forkMe($exe_dabc, $log, \@process_list) unless($opt_test);
+
+      $ebid = $ebid + 5 ; # increment ebnum by 5 (JAM2020) per ebserver to re-use EPICS iocs
+      $portid = $portid + 1; 
+      $bnebport = $bnebport +1;
+      # 
     } # builder processes
-        
-  } # servers
-
- # finally, we need to set eb lut on cts for setup of EB1 => bnet distribution
- #trbcmd w 0x0003 0xa0f0 0x8000`;
- #`trbcmd w 0x0003 0xa0f0 0x1`; 
- `trbcmd setbit 0x0003 0xa0f0 0x1`; 
- # use EB1 as pseude for BNET now
- # all calibration triggers also assigned to pseudo EB1=> bnet distribution for the moment
- #trbcmd w 0x0003 0xa0f3 0xfff`;
- # `trbcmd w 0x0003 0xa0f3 0xff0`; 
- `trbcmd setbit 0x0003 0xa0f3 0xff0`; 
- # use EB1 as pseudo receiver for calib triggers
-
-sleep (5); # seems also to be fine: michael, 2019-02-18
-
-# sleep (20) # old # need to wait until forking is done, otherwise it does not work via gui control xterm
+  }                             # servers
+
+  # finally, we need to set eb lut on cts for setup of EB1 => bnet distribution
+  #trbcmd w 0x0003 0xa0f0 0x8000`;
+  #`trbcmd w 0x0003 0xa0f0 0x1`; 
+  `trbcmd setbit 0x0003 0xa0f0 0x1`; 
+  # use EB1 as pseude for BNET now
+  # all calibration triggers also assigned to pseudo EB1=> bnet distribution for the moment
+  #trbcmd w 0x0003 0xa0f3 0xfff`;
+  # `trbcmd w 0x0003 0xa0f3 0xff0`; 
+  `trbcmd setbit 0x0003 0xa0f3 0xff0`; 
+  # use EB1 as pseudo receiver for calib triggers
+
+  sleep (5);              # seems also to be fine: michael, 2019-02-18
+
+  # sleep (20) # old # need to wait until forking is done, otherwise it does not work via gui control xterm
  
 }
 
 
 
-sub startEvtBuilders()
-{
-    if( $EB_Args_href->{0}->{'BNET_INP'} ){
+sub startEvtBuilders()   {
+  if ( $EB_Args_href->{0}->{'BNET_INP'} ) {
     print "Starting Builder network...\n";
-      startBnet();
-      return;
-    }
+    startBnet();
+    return;
+  }
     
-#   print "DISABLING regular eventbuilder start for testing!\n";
-#    return;
-########################################
-    my $username = "hadaq";
+  #   print "DISABLING regular eventbuilder start for testing!\n";
+  #    return;
+  ########################################
+  my $username = "hadaq";
 
-    my (@process_list);
+  my (@process_list);
 
-    foreach my $ebproc (sort {$a <=> $b} keys %$EB_Args_href){
+  foreach my $ebproc (sort {$a <=> $b} keys %$EB_Args_href) {
+      
+    my $ebnum2print = $ebproc+1;
+    print "EB process: $ebnum2print\n";
 
-        my $ebnum2print = $ebproc+1;
-        print "EB process: $ebnum2print\n";
+    if ($ebproc==15) {
+      print "Ignore eventbuilder 16, setup is reserved for BNET. \n";
+      return;
+    }
+    # JAM first test if we should activate dabc eventbuilder or old one
+
+    if ( $EB_Args_href->{$ebproc}->{'DABC'} ) {
+      print "Starting DABC process..\n";
+
+      #". /home/joern/dabcwork/head/dabclogin;cd /home/joern/dabcwork/head/plugins/hadaq/app; export EBNUM=1; export STREAMS=5; export UDP00=10101; export UDP01=10102; export UDP02=10103; export UDP03=10104; export UDP04=10105 export PREFIX=be; /home/joern/dabcwork/head/bin/dabc_exe EventBuilderHades.xml &" > /dev/null 2>&1  &
+
+      my $cpu = $EB_Args_href->{$ebproc}->{'IP'};
+      # JAM old, direct to version
+      #my $dabclogin = ". /home/hadaq/soft/dabc/head/dabclogin;";
+      # JAM default:
+      #my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin;";#
+      #my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.275;";
+      my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.head; ";
+      # here test special installations:
+      my $cdworkdir = "cd /home/hadaq/oper;";
+
+      # JAM old, direct to version
+      #my $cmd_dabc = "/home/hadaq/soft/dabc/head/bin/dabc_exe ";
+      # JAM default:
+      #my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe ";
+      # here test special installations:
+      #  my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.275 ";
+      my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.head ";
+
+      #  my $conf_dabc = " EventBuilderHades.xml";
+      # my $conf_dabc = " EventBuilderHades.275.xml";
+      my $conf_dabc = " EventBuilderHades.head.xml";
+
+      my $exports = " export LC_ALL=C;" .
+        " export EBNUM=" . $EB_Args_href->{$ebproc}->{'EBNUM'} . "; " .
+        " export STREAMS=" . $EB_Args_href->{$ebproc}->{'SOURCENUM'} . "; " .
+        " export PREFIX=" . $EB_Args_href->{$ebproc}->{'PREFIX'}. "; " ;
+
+      my @port_list = ();
+
+      #- add ports
+      my $ix =0;
+      foreach my $port (@{$EB_Args_href->{$ebproc}->{'PORT_LIST'}}) { 
+        #$cmd_nm = $cmd_nm . " -i UDP:0.0.0.0:" . $port;
+        my $index=sprintf("%02d", $ix++);
+        $exports = $exports . " export UDP". $index. "=" . $port . "; ";
+        push(@port_list, $port);
+      }
+      &cpPortList2EB(\@port_list, $EB_Args_href->{$ebproc}->{'EBNUM'}, $cpu);
 
-if($ebproc==15)
-{
-  print "Ignore eventbuilder 16, setup is reserved for BNET. \n";
-  return;
-}
-        
-        
-# JAM first test if we should activate dabc eventbuilder or old one
 
- if( $EB_Args_href->{$ebproc}->{'DABC'} ){
-    print "Starting DABC process..\n";
+      #        MULTIDISK
 
-#". /home/joern/dabcwork/head/dabclogin;cd /home/joern/dabcwork/head/plugins/hadaq/app; export EBNUM=1; export STREAMS=5; export UDP00=10101; export UDP01=10102; export UDP02=10103; export UDP03=10104; export UDP04=10105 export PREFIX=be; /home/joern/dabcwork/head/bin/dabc_exe EventBuilderHades.xml &" > /dev/null 2>&1  &
+      #- add output type
 
-  my $cpu = $EB_Args_href->{$ebproc}->{'IP'};
-# JAM old, direct to version
-  #my $dabclogin = ". /home/hadaq/soft/dabc/head/dabclogin;";
-# JAM default:
-#my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin;";#
-#my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.275;";
-  my $dabclogin = ". /home/hadaq/soft/dabc/bin/dabclogin.head; ";
-# here test special installations:
-  my $cdworkdir = "cd //home/hadaq/oper;";
-
-# JAM old, direct to version
-#my $cmd_dabc = "/home/hadaq/soft/dabc/head/bin/dabc_exe ";
-# JAM default:
-#my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe ";
-# here test special installations:
-#  my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.275 ";
-my $cmd_dabc = "/home/hadaq/soft/dabc/bin/dabc_exe.head ";
-
-#  my $conf_dabc = " EventBuilderHades.xml";
-# my $conf_dabc = " EventBuilderHades.275.xml";
-  my $conf_dabc = " EventBuilderHades.head.xml";
-  my $exports = " export LC_ALL=C;" .
-               " export EBNUM=" . $EB_Args_href->{$ebproc}->{'EBNUM'} . "; " .
-               " export STREAMS=" . $EB_Args_href->{$ebproc}->{'SOURCENUM'} . "; " .
-               " export PREFIX=" . $EB_Args_href->{$ebproc}->{'PREFIX'}. "; " ;
-
-   my @port_list = ();
-
-        #- add ports
-       my $ix =0;
-        foreach my $port (@{$EB_Args_href->{$ebproc}->{'PORT_LIST'}}){ 
-            #$cmd_nm = $cmd_nm . " -i UDP:0.0.0.0:" . $port;
-           my $index=sprintf("%02d", $ix++);
-            $exports = $exports . " export UDP". $index. "=" . $port . "; "; 
-            push(@port_list, $port);
-     }
-        &cpPortList2EB(\@port_list, $EB_Args_href->{$ebproc}->{'EBNUM'}, $cpu);
-
-
-
-
-
-
-#      MULTIDISK
-
-#- add output type
-
-       if($EB_Args_href->{$ebproc}->{'OUTDIR'} ){            
-             if($EB_Args_href->{$ebproc}->{'MULTIDISK'}){
-                $exports = $exports . "export DAQDISK=1; export OUTDIR=/data01; ";
-             }
-             else{
-                $exports = $exports . "export DAQDISK=0; export OUTDIR=" . $EB_Args_href->{$ebproc}->{'OUTDIR'} .";";
-             }
-         
-         if( $EB_Args_href->{$ebproc}->{'LTSM'} ){
-         
-         $exports = $exports . " export FILEOUTPUTS=3;";
-       # additional exports for LTSM
-
-        $exports = $exports . " export LTSMPATH=". $EB_Args_href->{$ebproc}->{'LTSM_PATH'} . ";";
-         $exports = $exports . " export LTSMSERVER=". $EB_Args_href->{$ebproc}->{'LTSM_Server'} . ";";
-         $exports = $exports . " export LTSMNODE=". $EB_Args_href->{$ebproc}->{'LTSM_Node'} . ";";
-         $exports = $exports . " export LTSMPASSWD=". $EB_Args_href->{$ebproc}->{'LTSM_Passwd'} . ";";
-         $exports = $exports . " export LTSMFSNAME=". $EB_Args_href->{$ebproc}->{'LTSM_Filesystem'} . ";";
-       
-# switch on by number of outputs
-       }
-################## deprecated, keep code for optional testing?
-# JAM 5-2017 - we never run rfio and ltsm in parallel. 
-#       if( $EB_Args_href->{$ebproc}->{'RFIO'} ){
-#          
-#          $exports = $exports . " export FILEOUTPUTS=3;";
-#      # additional exports for RFIO
-# 
-#      $exports = $exports . " export RFIOPATH=". $EB_Args_href->{$ebproc}->{'RFIO_PATH'} . ";";
-#          $exports = $exports . " export RFIOLUSTREPATH=". $EB_Args_href->{$ebproc}->{'RFIO_pcCopyPath'} . ";";
-#          $exports = $exports . " export RFIOCOPYMODE=". $EB_Args_href->{$ebproc}->{'RFIO_iCopyMode'} . ";";
-#          $exports = $exports . " export RFIOCOPYFRAC=". $EB_Args_href->{$ebproc}->{'RFIO_iCopyFrac'} . ";";
-#          $exports = $exports . " export RFIOMAXFILE=". $EB_Args_href->{$ebproc}->{'RFIO_iMaxFile'} . ";";
-#          $exports = $exports . " export RFIOPATHCONV=". $EB_Args_href->{$ebproc}->{'RFIO_iPathConv'} . ";";
-#      
-# # switch on by number of outputs
-#      }
-#######################################
-       else
-       {
-            # no rfio, just local file 
-            $exports = $exports . " export FILEOUTPUTS=2;";
-       }
-
-         
-         
-         
-         } #outdir
-         else{
-               $exports = $exports . " export FILEOUTPUTS=1;";
-               # no output except for the stream server...
-         }
-
-         
+      if ($EB_Args_href->{$ebproc}->{'OUTDIR'} ) {
+        if ($EB_Args_href->{$ebproc}->{'MULTIDISK'}) {
+          $exports = $exports . "export DAQDISK=1; export OUTDIR=/data01; ";
+        } else {
+          $exports = $exports . "export DAQDISK=0; export OUTDIR=" . $EB_Args_href->{$ebproc}->{'OUTDIR'} .";";
+        }
+        if ( $EB_Args_href->{$ebproc}->{'LTSM'} ) {
+          $exports = $exports . " export FILEOUTPUTS=3;";
+          # additional exports for LTSM
+
+          $exports = $exports . " export LTSMPATH=". $EB_Args_href->{$ebproc}->{'LTSM_PATH'} . ";";
+          $exports = $exports . " export LTSMSERVER=". $EB_Args_href->{$ebproc}->{'LTSM_Server'} . ";";
+          $exports = $exports . " export LTSMNODE=". $EB_Args_href->{$ebproc}->{'LTSM_Node'} . ";";
+          $exports = $exports . " export LTSMPASSWD=". $EB_Args_href->{$ebproc}->{'LTSM_Passwd'} . ";";
+          $exports = $exports . " export LTSMFSNAME=". $EB_Args_href->{$ebproc}->{'LTSM_Filesystem'} . ";";
+          # switch on by number of outputs
+        }
+        ################## deprecated, keep code for optional testing?
+        # JAM 5-2017 - we never run rfio and ltsm in parallel. 
+        #       if( $EB_Args_href->{$ebproc}->{'RFIO'} ){
+        #
+        #          $exports = $exports . " export FILEOUTPUTS=3;";
+        #      # additional exports for RFIO
+        #
+        #      $exports = $exports . " export RFIOPATH=". $EB_Args_href->{$ebproc}->{'RFIO_PATH'} . ";";
+        #          $exports = $exports . " export RFIOLUSTREPATH=". $EB_Args_href->{$ebproc}->{'RFIO_pcCopyPath'} . ";";
+        #          $exports = $exports . " export RFIOCOPYMODE=". $EB_Args_href->{$ebproc}->{'RFIO_iCopyMode'} . ";";
+        #          $exports = $exports . " export RFIOCOPYFRAC=". $EB_Args_href->{$ebproc}->{'RFIO_iCopyFrac'} . ";";
+        #          $exports = $exports . " export RFIOMAXFILE=". $EB_Args_href->{$ebproc}->{'RFIO_iMaxFile'} . ";";
+        #          $exports = $exports . " export RFIOPATHCONV=". $EB_Args_href->{$ebproc}->{'RFIO_iPathConv'} . ";";
+        #      
+        # # switch on by number of outputs
+        #      }
+        #######################################
+        else {
+          # no rfio, just local file 
+          $exports = $exports . " export FILEOUTPUTS=2;";
+        }
 
-          
+      }                         #outdir
+      else {
+        $exports = $exports . " export FILEOUTPUTS=1;";
+        # no output except for the stream server...
+      }
 
 
+      #        EPICSCONTROL ? always enabled for production
+      #       SMALLFILES  for online monitoring node
+
+      # Jul14 beamtime setup 3 cores for dabc
+      #my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu) .  "," . &getCoreNr($cpu);
+
+      # try 2 cores each dabc for more dabc nodes:
+      my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu);
+      #      my $core_nr = &getCoreNr($cpu);
+      # dabc is set to 3 cores
+      # JAM use fixed core number for kp1pc092 tests:
+      #   my $core_nr = 1;
+      my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports taskset -c $core_nr  $cmd_dabc $conf_dabc 1</dev/null &\"";
+      #    my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports $cmd_dabc $conf_dabc &\"";
+
+
+      my $log = $log_path . "/log_" . $ebproc . "_" . "startEB.txt";
+      #my $log = "/dev/null 2>&1";
+      print "Forking:" . $exe_dabc ."\n";
+      forkMe($exe_dabc, $log, \@process_list) unless($opt_test);
+
+    } else {
+      # the standard EB processes mode:
+      print "Starting evtbuild/netmem processes..\n";
+
+      #--- Prepare execution of daq_evtbuild
+      my $cmd_eb = "/home/hadaq/bin/daq_evtbuild" .
+        " -m "          . $EB_Args_href->{$ebproc}->{'SOURCENUM'} . 
+        " -q "          . $EB_Args_href->{$ebproc}->{'QUEUESIZE'} . 
+        " -S "          . $EB_Args_href->{$ebproc}->{'EBNUM'} .
+        " --ebnum "     . $EB_Args_href->{$ebproc}->{'EBNUM'} . 
+        " -x "          . $EB_Args_href->{$ebproc}->{'PREFIX'};
+
+      #- add queue variable size args
+      my $varsize_arg = &getVarSizeArg($ebproc);
+      $cmd_eb = $cmd_eb . $varsize_arg;
+
+      #- add output type
+      if ( defined $EB_Args_href->{$ebproc}->{'OUTDIR'} ) {
+        if ($EB_Args_href->{$ebproc}->{'MULTIDISK'}) {
+          $cmd_eb = $cmd_eb . " -d file -o " . "/data01/data";
+        } else {
+          $cmd_eb = $cmd_eb . " -d file -o " . $EB_Args_href->{$ebproc}->{'OUTDIR'};
+        }
+      } else {
+        $cmd_eb = $cmd_eb . " -d null";
+      }
 
+      #- add file size
+      $cmd_eb = $cmd_eb . " --filesize " . $EB_Args_href->{$ebproc}->{'FILESIZE'};
 
+      #- add second output with small hdl files
+      if ( defined $EB_Args_href->{$ebproc}->{'RESDOWNSCALE'} ) {
+        $cmd_eb = $cmd_eb . " --resdownscale " . $EB_Args_href->{$ebproc}->{'RESDOWNSCALE'} .
+          " --resnumevents " . $EB_Args_href->{$ebproc}->{'RESNUMEVENTS'} .
+          " --respath "      . $EB_Args_href->{$ebproc}->{'RESPATH'} .
+          " --ressizelimit " . $EB_Args_href->{$ebproc}->{'RESSIZELIMIT'};
+      }
 
-#      EPICSCONTROL ? always enabled for production
-#       SMALLFILES  for online monitoring node
+      my $cpu = $EB_Args_href->{$ebproc}->{'IP'};
+
+      #- add rfio args
+      my $rfio;
+      if ( $EB_Args_href->{$ebproc}->{'RFIO'} ) {
+        $rfio = " --rfio rfiodaq:gstore:" . $EB_Args_href->{$ebproc}->{'RFIO_PATH'} .
+          " --rfiolustre "     . $EB_Args_href->{$ebproc}->{'RFIO_pcCopyPath'} .
+          " --rfio_pcoption "  . $EB_Args_href->{$ebproc}->{'RFIO_pcOptions'} .
+          " --rfio_icopymode " . $EB_Args_href->{$ebproc}->{'RFIO_iCopyMode'} .
+          " --rfio_icopyfrac " . $EB_Args_href->{$ebproc}->{'RFIO_iCopyFrac'} .
+          " --rfio_imaxfile "  . $EB_Args_href->{$ebproc}->{'RFIO_iMaxFile'} .
+          " --rfio_ipathconv " . $EB_Args_href->{$ebproc}->{'RFIO_iPathConv'};
+      }
 
-# Jul14 beamtime setup 3 cores for dabc
-     #my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu) .  "," . &getCoreNr($cpu);
+      $cmd_eb = $cmd_eb . $rfio if( defined $rfio );
 
-# try 2 cores each dabc for more dabc nodes:
-     my $core_nr = &getCoreNr($cpu) . "," . &getCoreNr($cpu);
-#      my $core_nr = &getCoreNr($cpu);
-# dabc is set to 3 cores
-     
-# JAM use fixed core number for kp1pc092 tests:
-#   my $core_nr = 1;
-  my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports taskset -c $core_nr  $cmd_dabc $conf_dabc 1</dev/null &\"";
-#    my $exe_dabc = "ssh -n $cpu -l $username \"$dabclogin $cdworkdir $exports $cmd_dabc $conf_dabc &\"";
+      #- add multiple disk arg (ctrl via daq_disks)
+      if ($EB_Args_href->{$ebproc}->{'MULTIDISK'} && 
+          defined $EB_Args_href->{$ebproc}->{'OUTDIR'}) {
+        $cmd_eb = $cmd_eb . " --multidisk " . $EB_Args_href->{$ebproc}->{'MULTIDISK'};
+      }
 
+      #- add online RPC server
+      if ( $EB_Args_href->{$ebproc}->{'ONLINESERVER'} eq "on" ) {
+        $cmd_eb = $cmd_eb . " --online";
+      }
 
-   my $log = $log_path . "/log_" . $ebproc . "_" . "startEB.txt";
-   #my $log = "/dev/null 2>&1";
-   
-   print "Forking:" . $exe_dabc ."\n";
-   forkMe($exe_dabc, $log, \@process_list) unless($opt_test);
+      #- add epics controlled
+      $cmd_eb = $cmd_eb . " --epicsctrl " if( $EB_Args_href->{$ebproc}->{'EPICS_CTRL'} );
 
-}
+      # switch on debug output
+      $cmd_eb = $cmd_eb . " --debug trignr --debug errbit --debug word " if( $EB_Args_href->{$ebproc}->{'EB_DEBUG'} );
 
-else
-{
-# the standard EB processes mode:
- print "Starting evtbuild/netmem processes..\n";
-
-        #--- Prepare execution of daq_evtbuild
-        my $cmd_eb = "/home/hadaq/bin/daq_evtbuild" .
-            " -m "          . $EB_Args_href->{$ebproc}->{'SOURCENUM'} . 
-            " -q "          . $EB_Args_href->{$ebproc}->{'QUEUESIZE'} . 
-            " -S "          . $EB_Args_href->{$ebproc}->{'EBNUM'} .
-            " --ebnum "     . $EB_Args_href->{$ebproc}->{'EBNUM'} . 
-            " -x "          . $EB_Args_href->{$ebproc}->{'PREFIX'};
-
-        #- add queue variable size args
-        my $varsize_arg = &getVarSizeArg($ebproc);
-        $cmd_eb = $cmd_eb . $varsize_arg;
-
-        #- add output type
-        if( defined $EB_Args_href->{$ebproc}->{'OUTDIR'} ){
-            if($EB_Args_href->{$ebproc}->{'MULTIDISK'}){
-                $cmd_eb = $cmd_eb . " -d file -o " . "/data01/data";
-            }
-            else{
-                $cmd_eb = $cmd_eb . " -d file -o " . $EB_Args_href->{$ebproc}->{'OUTDIR'};
-            }
-        }
-        else{
-            $cmd_eb = $cmd_eb . " -d null";
-        }
 
-        #- add file size
-        $cmd_eb = $cmd_eb . " --filesize " . $EB_Args_href->{$ebproc}->{'FILESIZE'};
+        
+      #- logging the output
+      my $eblog_file = "/tmp/log_eb_" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".txt";
+      my $eb_log = "1>$eblog_file 2>$eblog_file";
+      $eb_log = "1>/dev/null 2>/dev/null" unless( $EB_Args_href->{$ebproc}->{'EB_LOG'} );
 
-        #- add second output with small hdl files
-        if( defined $EB_Args_href->{$ebproc}->{'RESDOWNSCALE'} ){
-            $cmd_eb = $cmd_eb . " --resdownscale " . $EB_Args_href->{$ebproc}->{'RESDOWNSCALE'} .
-                                " --resnumevents " . $EB_Args_href->{$ebproc}->{'RESNUMEVENTS'} .
-                                " --respath "      . $EB_Args_href->{$ebproc}->{'RESPATH'} .
-                                " --ressizelimit " . $EB_Args_href->{$ebproc}->{'RESSIZELIMIT'};
-        }
+      my $time = 1. * $ebproc;
+      my $sleep_cmd = "sleep " . $time;
 
-        my $cpu = $EB_Args_href->{$ebproc}->{'IP'};
-
-        #- add rfio args
-        my $rfio;
-        if( $EB_Args_href->{$ebproc}->{'RFIO'} ){
-            $rfio = " --rfio rfiodaq:gstore:" . $EB_Args_href->{$ebproc}->{'RFIO_PATH'} .
-                " --rfiolustre "     . $EB_Args_href->{$ebproc}->{'RFIO_pcCopyPath'} .
-                " --rfio_pcoption "  . $EB_Args_href->{$ebproc}->{'RFIO_pcOptions'} .
-                " --rfio_icopymode " . $EB_Args_href->{$ebproc}->{'RFIO_iCopyMode'} .
-                " --rfio_icopyfrac " . $EB_Args_href->{$ebproc}->{'RFIO_iCopyFrac'} .
-                " --rfio_imaxfile "  . $EB_Args_href->{$ebproc}->{'RFIO_iMaxFile'} .
-                " --rfio_ipathconv " . $EB_Args_href->{$ebproc}->{'RFIO_iPathConv'};
-        }
+      my $core_nr = &getCoreNr($cpu);
 
-        $cmd_eb = $cmd_eb . $rfio if( defined $rfio );
+      my $exe_eb = "ssh -n $cpu -l $username \"cd /home/hadaq/oper; export DAQ_SETUP=/home/hadaq/oper/eb; taskset -c $core_nr  $cmd_eb $eb_log &\"";
 
-        #- add multiple disk arg (ctrl via daq_disks)
-        if($EB_Args_href->{$ebproc}->{'MULTIDISK'} && 
-           defined $EB_Args_href->{$ebproc}->{'OUTDIR'}){
-            $cmd_eb = $cmd_eb . " --multidisk " . $EB_Args_href->{$ebproc}->{'MULTIDISK'};
-        }
+      #print "exec: $exe_eb\n";
 
-        #- add online RPC server
-        if( $EB_Args_href->{$ebproc}->{'ONLINESERVER'} eq "on" ){
-            $cmd_eb = $cmd_eb . " --online";
-        }
+      #--- Prepare execution of daq_netmem
+      my $cmd_nm = "/home/hadaq/bin/daq_netmem" .
+        " -m " . $EB_Args_href->{$ebproc}->{'SOURCENUM'} . 
+        " -q " . $EB_Args_href->{$ebproc}->{'QUEUESIZE'} . 
+        " -S " . $EB_Args_href->{$ebproc}->{'EBNUM'};
 
-        #- add epics controlled
-        $cmd_eb = $cmd_eb . " --epicsctrl " if( $EB_Args_href->{$ebproc}->{'EPICS_CTRL'} );
+      #- add queue variable size args
+      $cmd_nm = $cmd_nm . $varsize_arg;
 
-         # switch on debug output
-        $cmd_eb = $cmd_eb . " --debug trignr --debug errbit --debug word " if( $EB_Args_href->{$ebproc}->{'EB_DEBUG'} );
+      my @port_list = ();
 
+      #- add ports
+      foreach my $port (@{$EB_Args_href->{$ebproc}->{'PORT_LIST'}}) { 
+        #$cmd_nm = $cmd_nm . " -i UDP:0.0.0.0:" . $port;
+        $cmd_nm = $cmd_nm . " -i " . $port;
 
-        
-        #- logging the output
-        my $eblog_file = "/tmp/log_eb_" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".txt";
-        my $eb_log = "1>$eblog_file 2>$eblog_file";
-        $eb_log = "1>/dev/null 2>/dev/null" unless( $EB_Args_href->{$ebproc}->{'EB_LOG'} );
+        push(@port_list, $port);
+      }
 
-        my $time = 1. * $ebproc;
-        my $sleep_cmd = "sleep " . $time;
+      &cpPortList2EB(\@port_list, $EB_Args_href->{$ebproc}->{'EBNUM'}, $cpu);
 
-        my $core_nr = &getCoreNr($cpu);
+      #- logging the output
+      my $nmlog_file = "/tmp/log_nm_" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".txt";
+      my $nm_log = "1>$nmlog_file 2>$nmlog_file";
+      $nm_log = "1>/dev/null 2>/dev/null" unless( $EB_Args_href->{$ebproc}->{'NM_LOG'} );
 
-        my $exe_eb = "ssh -n $cpu -l $username \"cd /home/hadaq/oper; export DAQ_SETUP=/home/hadaq/oper/eb; taskset -c $core_nr  $cmd_eb $eb_log &\"";
+      $core_nr = &getCoreNr($cpu);
 
-        #print "exec: $exe_eb\n";
+      my $exe_nm = "ssh -n $cpu -l $username \"cd /home/hadaq/oper; export DAQ_SETUP=/home/hadaq/oper/eb; taskset -c $core_nr $cmd_nm $nm_log &\"";
 
-        #--- Prepare execution of daq_netmem
-        my $cmd_nm = "/home/hadaq/bin/daq_netmem" .
-            " -m " . $EB_Args_href->{$ebproc}->{'SOURCENUM'} . 
-            " -q " . $EB_Args_href->{$ebproc}->{'QUEUESIZE'} . 
-            " -S " . $EB_Args_href->{$ebproc}->{'EBNUM'};
+      #print "exec: $exe_nm\n";
 
-        #- add queue variable size args
-        $cmd_nm = $cmd_nm . $varsize_arg;
+      #--- Open permissions for shared memory
+      my $eb_shmem = "daq_evtbuild" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".shm";
+      my $nm_shmem = "daq_netmem" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".shm";
+      my $exe_open_eb = "ssh -n $cpu -l $username \"chmod 775 /dev/shm/$eb_shmem\"";
+      my $exe_open_nm = "ssh -n $cpu -l $username \"chmod 775 /dev/shm/$nm_shmem\"";
 
-        my @port_list = ();
+      &forkEB($exe_eb, $exe_nm, $exe_open_eb, $exe_open_nm, \@process_list);
+    }
 
-        #- add ports
-        foreach my $port (@{$EB_Args_href->{$ebproc}->{'PORT_LIST'}}){ 
-            #$cmd_nm = $cmd_nm . " -i UDP:0.0.0.0:" . $port;
-            $cmd_nm = $cmd_nm . " -i " . $port;
+  }
+  # if dabc
 
-            push(@port_list, $port);
-        }
+  #- Wait for children
+  foreach my $cur_child_pid (@process_list) {
+    waitpid($cur_child_pid,0);
+  }
 
-        &cpPortList2EB(\@port_list, $EB_Args_href->{$ebproc}->{'EBNUM'}, $cpu);
+}
+# foreach
 
-        #- logging the output
-        my $nmlog_file = "/tmp/log_nm_" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".txt";
-        my $nm_log = "1>$nmlog_file 2>$nmlog_file";
-        $nm_log = "1>/dev/null 2>/dev/null" unless( $EB_Args_href->{$ebproc}->{'NM_LOG'} );
+sub stopEvtBuilders()   {
+  my $username = "hadaq";
 
-        $core_nr = &getCoreNr($cpu);
+  my @process_list = ();
 
-        my $exe_nm = "ssh -n $cpu -l $username \"cd /home/hadaq/oper; export DAQ_SETUP=/home/hadaq/oper/eb; taskset -c $core_nr $cmd_nm $nm_log &\"";
+  #--- Loop over server IPs
+  # foreach my $ip (@EB_IP_list){
+  foreach my $ip (@bnetservers) {
 
-        #print "exec: $exe_nm\n";
+    my $exe = "ssh -n $ip -l $username \"/home/hadaq/bin/cleanup_evtbuild.pl; /home/hadaq/bin/ipcrm.pl\"";
 
-        #--- Open permissions for shared memory
-        my $eb_shmem = "daq_evtbuild" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".shm";
-        my $nm_shmem = "daq_netmem" . $EB_Args_href->{$ebproc}->{'EBNUM'} . ".shm";
-        my $exe_open_eb = "ssh -n $cpu -l $username \"chmod 775 /dev/shm/$eb_shmem\"";
-        my $exe_open_nm = "ssh -n $cpu -l $username \"chmod 775 /dev/shm/$nm_shmem\"";
-        
-        &forkEB($exe_eb, $exe_nm, $exe_open_eb, $exe_open_nm, \@process_list);
+    if ($opt_verb) {
+      print "Killing running EBs...\n";
+      print "Exec: $exe\n";
     }
 
-} 
-# if dabc
+    my $log = $log_path . "/log_" . $ip . "_" . "stopEB.txt";
 
-    #- Wait for children
-    foreach my $cur_child_pid (@process_list) {
-        waitpid($cur_child_pid,0);
-    }
+    forkMe($exe, $log, \@process_list) unless($opt_test);
+  }
 
-} 
-# foreach
+  #- Wait for children
+  foreach my $cur_child_pid (@process_list) {
+    print "wait for $cur_child_pid\n";
+    waitpid($cur_child_pid,0);
+  }
+}
 
-sub stopEvtBuilders()
-{
-    my $username = "hadaq";
+sub cpPortList2EB()   {
+  my ($port_list_aref, $ebnr, $cpu) = @_;
 
-    my @process_list = ();
+  my $tmpfile = "/tmp/eb" . $ebnr . "_" . $cpu . ".txt";
 
-    #--- Loop over server IPs
-   # foreach my $ip (@EB_IP_list){
-foreach my $ip (@bnetservers){
-   
-        my $exe = "ssh -n $ip -l $username \"/home/hadaq/bin/cleanup_evtbuild.pl; /home/hadaq/bin/ipcrm.pl\"";
+  #- First write ports to tmp file
+  my $fh = new FileHandle(">$tmpfile");
 
-        if($opt_verb){
-            print "Killing running EBs...\n";
-            print "Exec: $exe\n";
-        }
+  if (!$fh) {
+    my $txt = "\nError! Could not open file \"$tmpfile\" for output. Exit.\n";
+    print STDERR $txt;
+    print $txt;
+    exit(128);
+  }
 
-        my $log = $log_path . "/log_" . $ip . "_" . "stopEB.txt";
+  foreach my $port (@$port_list_aref) {
+    print $fh "$port\n";
+  }
 
-        forkMe($exe, $log, \@process_list) unless($opt_test);
-    }
+  $fh->close();
 
-    #- Wait for children
-    foreach my $cur_child_pid (@process_list) {
-        print "wait for $cur_child_pid\n";
-        waitpid($cur_child_pid,0);
-    }
+  #- Copy this tmp file to EB
+  my $exe_cp = "scp $tmpfile hadaq\@$cpu:/tmp/ 1>/dev/null 2>/dev/null";
+  system($exe_cp);
 }
 
-sub cpPortList2EB()
-{
-    my ($port_list_aref, $ebnr, $cpu) = @_;
+sub startIOC()   {
+  my $ioc_dir = "/home/scs/ebctrl/ioc/iocBoot/iocebctrl";
 
-    my $tmpfile = "/tmp/eb" . $ebnr . "_" . $cpu . ".txt";
+  &writeIOC_stcmd( $ioc_dir );
 
-    #- First write ports to tmp file
-    my $fh = new FileHandle(">$tmpfile");
+  print "Starting IOCs...\n" if($opt_verb);
 
-    if(!$fh) {
-        my $txt = "\nError! Could not open file \"$tmpfile\" for output. Exit.\n";
-        print STDERR $txt;
-        print $txt;
-        exit(128);
-    }
-    
-    foreach my $port (@$port_list_aref){
-        print $fh "$port\n";
-    }
+  foreach my $ebproc (keys %$EB_Args_href) {
 
-    $fh->close();
+    my $stcmd = sprintf("st_eb%02d.cmd", 1 + $ebproc);
+    my $screen_name = sprintf("ioc_eb%02d", 1 + $ebproc);
 
-    #- Copy this tmp file to EB
-    my $exe_cp = "scp $tmpfile hadaq\@$cpu:/tmp/ 1>/dev/null 2>/dev/null";
-    system($exe_cp);
-}
-sub startIOC()
-{
-    my $ioc_dir = "/home/scs/ebctrl/ioc/iocBoot/iocebctrl";
-
-    &writeIOC_stcmd( $ioc_dir );
-
-    print "Starting IOCs...\n" if($opt_verb);
-
-    foreach my $ebproc (keys %$EB_Args_href){
-
-        my $stcmd = sprintf("st_eb%02d.cmd", 1 + $ebproc);
-        my $screen_name = sprintf("ioc_eb%02d", 1 + $ebproc);
-
-        my $cmd = "bash; . /home/scs/.bashrc; export HOSTNAME=\\\$(hostname); cd $ioc_dir; screen -dmS $screen_name ../../bin/linux-x86_64/ebctrl $stcmd";
-        my $cpu = $EB_Args_href->{$ebproc}->{'IP'};
-        # JAM2016: this is kludge for bnet:
-        # first IP in hub configuration of pseude EB15 might be set differently
-        # we always reset it to match lxhadeb05 where epics for builder should belong 
-        if($ebproc == 15)
-         {
-           $cpu='192.168.100.15';
-         }
-       #another dirty workaround for bnet at eb0:
-        if ($ebproc == 0) {
-          $cpu = '192.168.100.8';
-       } 
-        # end bnet kludge
-        my $exe = "ssh -n $cpu -l scs \"$cmd\"";
-
-        print "Exec: $exe\n" if($opt_verb);
-        system($exe) unless($opt_test);
+    my $cmd = "bash; . /home/scs/.bashrc; export HOSTNAME=\\\$(hostname); cd $ioc_dir; screen -dmS $screen_name ../../bin/linux-x86_64/ebctrl $stcmd";
+    my $cpu = $EB_Args_href->{$ebproc}->{'IP'};
+    # JAM2016: this is kludge for bnet:
+    # first IP in hub configuration of pseude EB15 might be set differently
+    # we always reset it to match lxhadeb05 where epics for builder should belong 
+    if ($ebproc == 15) {
+      $cpu='192.168.100.15';
     }
+    #another dirty workaround for bnet at eb0:
+    if ($ebproc == 0) {
+      $cpu = '192.168.100.8';
+    } 
+    # end bnet kludge
+    my $exe = "ssh -n $cpu -l scs \"$cmd\"";
+
+    print "Exec: $exe\n" if($opt_verb);
+    system($exe) unless($opt_test);
+  }
 }
 
-sub smallestEBProcNum()
-{
-    my $smallest = 1000;
+sub smallestEBProcNum()   {
+  my $smallest = 1000;
 
-    foreach my $ebproc (keys %$EB_Args_href){
-        $smallest = $ebproc if($smallest > $ebproc);
-    }
+  foreach my $ebproc (keys %$EB_Args_href) {
+    $smallest = $ebproc if($smallest > $ebproc);
+  }
 
-    return $smallest;
+  return $smallest;
 }
 
-sub writeIOC_stcmd()
-{
-    my ($ioc_dir) = @_;
+sub writeIOC_stcmd()   {
+  my ($ioc_dir) = @_;
 
-    # JAM first evaluate ports for ca list
-    my $epicscalist = "192.168.111.255";
-    foreach my $ebproc (keys %$EB_Args_href){
-     $epicscalist=sprintf("%s 192.168.111.255:%d", $epicscalist, 10001 + $ebproc);
-    }
-    
-    print "Copying st.cmd files to servers...\n" if($opt_verb);
+  # JAM first evaluate ports for ca list
+  my $epicscalist = "192.168.111.255";
+  foreach my $ebproc (keys %$EB_Args_href) {
+    $epicscalist=sprintf("%s 192.168.111.255:%d", $epicscalist, 10001 + $ebproc);
+  }
 
-    my $smallest_ebproc = &smallestEBProcNum();
-    
-    foreach my $ebproc (keys %$EB_Args_href){
-
-        my $ebNr  = 1 + $ebproc;
-        my $ebnum = sprintf("eb%02d", $ebNr);
-        my $serverport = 10001+ $ebproc;
-       
-       
-        #- in MBytes
-        my $maxFileSize = $EB_Args_href->{$ebproc}->{'FILESIZE'};
-
-        my $ebtype = "slave";
-        my $comment_genrunid   = "#";
-        my $comment_totalevt   = "#";
-
-        if($ebproc == $smallest_ebproc){
-            $ebtype           = "master";
-            $comment_genrunid = "";
-            $comment_totalevt   = "";
-        }
+  print "Copying st.cmd files to servers...\n" if($opt_verb);
+
+  my $smallest_ebproc = &smallestEBProcNum();
+
+  foreach my $ebproc (keys %$EB_Args_href) {
+
+    my $ebNr  = 1 + $ebproc;
+    my $ebnum = sprintf("eb%02d", $ebNr);
+    my $serverport = 10001+ $ebproc;
+
+    #- in MBytes
+    my $maxFileSize = $EB_Args_href->{$ebproc}->{'FILESIZE'};
+
+    my $ebtype = "slave";
+    my $comment_genrunid   = "#";
+    my $comment_totalevt   = "#";
+
+    if ($ebproc == $smallest_ebproc) {
+      $ebtype           = "master";
+      $comment_genrunid = "";
+      $comment_totalevt   = "";
+    }
 
-#        if($ebNr == 1){
-#            $comment_totalevt   = "";
-#        }
+    #        if($ebNr == 1){
+    #            $comment_totalevt   = "";
+    #        }
 
-        my $ioc_stcmd = <<EOF;
+    my $ioc_stcmd = <<EOF;
 #!../../bin/linux-x86_64/ebctrl
 
 ## Set EPICS environment
@@ -1530,192 +1429,183 @@ dbl > \${TOP}/iocBoot/\${IOC}/$ebnum.dbl
 
 EOF
 
-        my $outfile = "/tmp/st_" . $ebnum . ".cmd";
-        my $fh = new FileHandle(">$outfile");
+    my $outfile = "/tmp/st_" . $ebnum . ".cmd";
+    my $fh = new FileHandle(">$outfile");
 
-        if(!$fh) {
-            my $txt = "\nError! Could not open file \"$outfile\" for output. Exit.\n";
-            print STDERR $txt;
-            print $txt;
-            exit(128);
-        }
+    if (!$fh) {
+      my $txt = "\nError! Could not open file \"$outfile\" for output. Exit.\n";
+      print STDERR $txt;
+      print $txt;
+      exit(128);
+    }
 
-        print $fh $ioc_stcmd;
-        $fh->close();
+    print $fh $ioc_stcmd;
+    $fh->close();
 
-        my $ip  = $EB_Args_href->{$ebproc}->{'IP'};
-        my $cmd = "scp $outfile scs\@$ip:$ioc_dir/.";
-        
-        print "Exec: $cmd\n" if($opt_verb);
-        system($cmd) unless($opt_test);        
-    }
+    my $ip  = $EB_Args_href->{$ebproc}->{'IP'};
+    my $cmd = "scp $outfile scs\@$ip:$ioc_dir/.";
+
+    print "Exec: $cmd\n" if($opt_verb);
+    system($cmd) unless($opt_test);
+  }
 }
 
-sub killIOC()
-{
-    my %ioc;
-    my $ioc_href = \%ioc;
+sub killIOC()   {
+  my %ioc;
+  my $ioc_href = \%ioc;
 
-    print "Looking for running IOCs...\n" if($opt_verb);
+  print "Looking for running IOCs...\n" if($opt_verb);
 
-    #--- Loop over server IPs
-    
-    #foreach my $ip (@EB_IP_list){
-    foreach my $ip (@bnetservers){
+  #--- Loop over server IPs
 
-        &findRunningIOC($ip, $ioc_href);
-    }
+  #foreach my $ip (@EB_IP_list){
+  foreach my $ip (@bnetservers) {
 
-    #print Dumper \%$ioc_href;
+    &findRunningIOC($ip, $ioc_href);
+  }
 
-    &writeExpectIOC() if(%$ioc_href);
+  #print Dumper \%$ioc_href;
 
-    if($opt_verb){
-        print "Killing running IOCs...\n";
-        print "No IOCs found - nothing to kill, continue...\n" unless(%$ioc_href);
-    }
+  &writeExpectIOC() if(%$ioc_href);
 
-    my (@process_list);
+  if ($opt_verb) {
+    print "Killing running IOCs...\n";
+    print "No IOCs found - nothing to kill, continue...\n" unless(%$ioc_href);
+  }
 
-    foreach my $ip ( %$ioc_href ){
-        foreach my $ioc ( @{$ioc_href->{$ip}} ){
-            
-            my $cmd = $expect_ioc_script . " " . $ip . " " . $ioc;
-            my $log = $log_path . "/log_" . $ip . "_" . $ioc . ".txt";
-            print "cmd: $cmd\n" if($opt_verb);
-            &forkMe($cmd, $log, \@process_list);
-        }
+  my (@process_list);
+
+  foreach my $ip ( %$ioc_href ) {
+    foreach my $ioc ( @{$ioc_href->{$ip}} ) {
+
+      my $cmd = $expect_ioc_script . " " . $ip . " " . $ioc;
+      my $log = $log_path . "/log_" . $ip . "_" . $ioc . ".txt";
+      print "cmd: $cmd\n" if($opt_verb);
+      &forkMe($cmd, $log, \@process_list);
     }
+  }
 
 
-    
 
-    #- Wait for children
-    foreach my $cur_child_pid (@process_list) {
-        waitpid($cur_child_pid,0);
-    }
 
-    ### just kill the remaining stuff
-    @process_list = ();
+  #- Wait for children
+  foreach my $cur_child_pid (@process_list) {
+    waitpid($cur_child_pid,0);
+  }
 
-    #foreach my $ip (@EB_IP_list){
-    foreach my $ip (@bnetservers){
-       my $cmd = qq|ssh scs\@$ip "/usr/bin/pkill -f \\"SCREEN -dmS ioc_eb\\""|;
-       print $cmd;
-       &forkMe($cmd, "/tmp/ioc_kill_$ip", \@process_list);
-    }
+  ### just kill the remaining stuff
+  @process_list = ();
 
-    foreach my $cur_child_pid (@process_list) {
-        waitpid($cur_child_pid,0);
-    }
+  #foreach my $ip (@EB_IP_list){
+  foreach my $ip (@bnetservers) {
+    my $cmd = qq|ssh scs\@$ip "/usr/bin/pkill -f \\"SCREEN -dmS ioc_eb\\""|;
+    print $cmd;
+    &forkMe($cmd, "/tmp/ioc_kill_$ip", \@process_list);
+  }
 
-    #sleep 1;
+  foreach my $cur_child_pid (@process_list) {
+    waitpid($cur_child_pid,0);
+  }
 
-    ### just kill the remaining stuff
-    @process_list = ();
-    #foreach my $ip (@EB_IP_list){
-    foreach my $ip (@bnetservers){
-       my $cmd = qq|ssh scs\@$ip "/usr/bin/pkill -9 -f \\"SCREEN -dmS ioc_eb\\""|;
-       &forkMe($cmd, "/tmp/ioc_kill2_$ip", \@process_list);
-    }
+  #sleep 1;
 
-    foreach my $cur_child_pid (@process_list) {
-        waitpid($cur_child_pid,0);
-    }
+  ### just kill the remaining stuff
+  @process_list = ();
+  #foreach my $ip (@EB_IP_list){
+  foreach my $ip (@bnetservers) {
+    my $cmd = qq|ssh scs\@$ip "/usr/bin/pkill -9 -f \\"SCREEN -dmS ioc_eb\\""|;
+    &forkMe($cmd, "/tmp/ioc_kill2_$ip", \@process_list);
+  }
+
+  foreach my $cur_child_pid (@process_list) {
+    waitpid($cur_child_pid,0);
+  }
 
 }
 
-sub forkMe()
-{
-    my ($cmd, $log, $proc_list) = @_;
+sub forkMe()   {
+  my ($cmd, $log, $proc_list) = @_;
 
-    my $child = fork();
+  my $child = fork();
 
-    if( $child ){                           # parent
-        push( @$proc_list, $child );
-    }
-    elsif( $child == 0 ) {                        # child
-        system("$cmd >$log 2>&1 ");
-        exit(0);
-    }
-    else{
-        print "Could not fork: $!\n";
-        exit(1);
-    }
+  if ( $child ) {               # parent
+    push( @$proc_list, $child );
+  } elsif ( $child == 0 ) {     # child
+    system("$cmd >$log 2>&1 ");
+    exit(0);
+  } else {
+    print "Could not fork: $!\n";
+    exit(1);
+  }
 }
 
-sub forkEB()
-{
-    my ($exe_eb, $exe_nm, $exe_open_eb, $exe_open_nm, $proc_list) = @_;
+sub forkEB()   {
+  my ($exe_eb, $exe_nm, $exe_open_eb, $exe_open_nm, $proc_list) = @_;
 
-    my $child = fork();
+  my $child = fork();
 
-    if( $child ){                           # parent
-        push( @$proc_list, $child );
-    }
-    elsif( $child == 0 ) {                        # child
-        #--- Execute Event Builder
-        print "Exec: $exe_eb\n" if($opt_verb);
-        system($exe_eb) unless($opt_test);
+  if ( $child ) {               # parent
+    push( @$proc_list, $child );
+  } elsif ( $child == 0 ) {     # child
+    #--- Execute Event Builder
+    print "Exec: $exe_eb\n" if($opt_verb);
+    system($exe_eb) unless($opt_test);
 
-        #sleep(1);
+    #sleep(1);
 
-        #--- Open permissions for EB shared memory
-        #  ! Permissions should be opened by EB process
-        #print "Exec: $exe_open_eb\n" if($opt_verb);
-        #system($exe_open_eb) unless($opt_test);
+    #--- Open permissions for EB shared memory
+    #  ! Permissions should be opened by EB process
+    #print "Exec: $exe_open_eb\n" if($opt_verb);
+    #system($exe_open_eb) unless($opt_test);
 
-        #sleep(2);
+    #sleep(2);
 
-        #--- Execute Net-2-Memory
-        print "Exec: $exe_nm\n" if($opt_verb);
-        system($exe_nm) unless($opt_test);
+    #--- Execute Net-2-Memory
+    print "Exec: $exe_nm\n" if($opt_verb);
+    system($exe_nm) unless($opt_test);
 
-        #sleep(1);
+    #sleep(1);
 
-        #--- Open permissions for NM shared memory
-        #  ! Permissions should be opened by EB process
-        #print "Exec: $exe_open_nm\n" if($opt_verb);
-        #system($exe_open_nm) unless($opt_test);
+    #--- Open permissions for NM shared memory
+    #  ! Permissions should be opened by EB process
+    #print "Exec: $exe_open_nm\n" if($opt_verb);
+    #system($exe_open_nm) unless($opt_test);
 
-        exit(0);
-    }
-    else{
-        print "Could not fork: $!\n";
-        exit(1);
-    }
+    exit(0);
+  } else {
+    print "Could not fork: $!\n";
+    exit(1);
+  }
 }
 
-sub findRunningIOC()
-{
-    my ($cpu, $ioc_href) = @_;
+sub findRunningIOC()   {
+  my ($cpu, $ioc_href) = @_;
     
-    `ssh -n $cpu -l scs \"screen -wipe\"`;
-    my $exe = "ssh -n $cpu -l scs \"screen -ls\"";
+  `ssh -n $cpu -l scs \"screen -wipe\"`;
+  my $exe = "ssh -n $cpu -l scs \"screen -ls\"";
 
-    my @output = `$exe`;
+  my @output = `$exe`;
 
-    foreach my $line (@output){
-        if($line =~ /\d+\.(ioc_eb\d{2})\s+/){
-            my $name = $1;
-            push( @{$ioc_href->{$cpu}}, $name );
-            print "Found IOC: $name on $cpu\n" if($opt_verb);
-        }
+  foreach my $line (@output) {
+    if ($line =~ /\d+\.(ioc_eb\d{2})\s+/) {
+      my $name = $1;
+      push( @{$ioc_href->{$cpu}}, $name );
+      print "Found IOC: $name on $cpu\n" if($opt_verb);
     }
+  }
 }
 
-sub writeExpectIOC()
-{
-    # This expect script can be executed to exit IOC.
+sub writeExpectIOC()   {
+  # This expect script can be executed to exit IOC.
 
-    #! Look if /tmp dir exists
-    my $tmp_dir = dirname("/tmp");
-    if ( !(-d $tmp_dir) ){
-        print "\nCannot access /tmp directory!\nExit.\n";
-        exit(1);
-    }
+  #! Look if /tmp dir exists
+  my $tmp_dir = dirname("/tmp");
+  if ( !(-d $tmp_dir) ) {
+    print "\nCannot access /tmp directory!\nExit.\n";
+    exit(1);
+  }
 
-    my $expect_script_my = <<EOF;
+  my $expect_script_my = <<EOF;
 #!/usr/bin/expect -f
 
 # This script is automatically generated by startup.pl
@@ -1755,405 +1645,381 @@ expect "~\$ "
     
 EOF
 
-    my $fh = new FileHandle(">$expect_ioc_script");
+  my $fh = new FileHandle(">$expect_ioc_script");
 
-    if(!$fh) {
-        my $txt = "\nError! Could not open file \"$expect_ioc_script\" for output. Exit.\n";
-        print STDERR $txt;
-        print $txt;
-        exit(128);
-    }
+  if (!$fh) {
+    my $txt = "\nError! Could not open file \"$expect_ioc_script\" for output. Exit.\n";
+    print STDERR $txt;
+    print $txt;
+    exit(128);
+  }
 
-    print $fh $expect_script_my;
-    $fh->close();    
+  print $fh $expect_script_my;
+  $fh->close();    
 
-    #- open permissions
-    system("chmod 755 $expect_ioc_script");
+  #- open permissions
+  system("chmod 755 $expect_ioc_script");
 }
 
-sub getGbEconfig()
-{
-    #
-    # Read DB configurations of GbE and CTS,
-    # look for active data sources as well as
-    # for EB IPs and ports.
-    #
+sub getGbEconfig()   {
+  #
+  # Read DB configurations of GbE and CTS,
+  # look for active data sources as well as
+  # for EB IPs and ports.
+  #
 
-    my ($eb_ids_href) = @_;
+  my ($eb_ids_href) = @_;
 
-    my $data_sources = $temp_args_href->{'Parallel'}->{'DATA_SOURCES'};
-    my $gbe_conf     = $temp_args_href->{'Parallel'}->{'GBE_CONF'};
-    #my $cts_conf     = $temp_args_href->{'Parallel'}->{'CTS_CONF'};
+  my $data_sources = $temp_args_href->{'Parallel'}->{'DATA_SOURCES'};
+  my $gbe_conf     = $temp_args_href->{'Parallel'}->{'GBE_CONF'};
+  #my $cts_conf     = $temp_args_href->{'Parallel'}->{'CTS_CONF'};
 
-    my %activeSources_hash;
-    my $activeSources_href = \%activeSources_hash;
+  my %activeSources_hash;
+  my $activeSources_href = \%activeSources_hash;
 
-    &readActiveSources($data_sources, $activeSources_href);
+  &readActiveSources($data_sources, $activeSources_href);
 
-    my @id_list;
-    my $id_list_aref = \@id_list;
+  my @id_list;
+  my $id_list_aref = \@id_list;
 
-    #&readEBids($cts_conf, $id_list_aref);
+  #&readEBids($cts_conf, $id_list_aref);
 
-    #- Overwrite array with EB numbers
-    @id_list = (0 .. 15);
-    #print Dumper $id_list_aref;
+  #- Overwrite array with EB numbers
+  @id_list = (0 .. 15);
+  #print Dumper $id_list_aref;
 
-    &readEBports($gbe_conf, $activeSources_href, $id_list_aref, $eb_ids_href);
+  &readEBports($gbe_conf, $activeSources_href, $id_list_aref, $eb_ids_href);
 }
 
-sub readEBids()
-{
-    #
-    # Read EB Ids
-    #
+sub readEBids()   {
+  #
+  # Read EB Ids
+  #
 
-    my ($file, $id_list_aref) = @_;
+  my ($file, $id_list_aref) = @_;
 
-    my $nnn_table = 0;
-    my $val_table = 0;
+  my $nnn_table = 0;
+  my $val_table = 0;
 
-    my $SPACE = "";
+  my $SPACE = "";
 
-    my $fh = new FileHandle("$file", "r");
+  my $fh = new FileHandle("$file", "r");
 
-    while(<$fh>){
+  while (<$fh>) {
 
-        #- Remove all comments
-        $_ =~ s{                # Substitue...
-                 \#             # ...a literal octothorpe
-                 [^\n]*         # ...followed by any number of non-newlines
-               }
-               {$SPACE}gxms;    # Raplace it with a single space        
-
-        #- Skip line if it contains only whitespaces
-        next unless(/\S/);
-
-            if(/^(\s+)?!Value\stable/){
-            $val_table = 1;
-            $nnn_table = 0;
-            next;
-        }
-        elsif(/^(\s+)?!\w+/){
-            $val_table = 0;
-            $nnn_table = 1;
-        }
+    #- Remove all comments
+    $_ =~ s{                # Substitue...
+             \#             # ...a literal octothorpe
+             [^\n]*         # ...followed by any number of non-newlines
+         }
+           {
+$SPACE}gxms;                  # Raplace it with a single space        
+
+    #- Skip line if it contains only whitespaces
+    next unless(/\S/);
+
+    if (/^(\s+)?!Value\stable/) {
+      $val_table = 1;
+      $nnn_table = 0;
+      next;
+    } elsif (/^(\s+)?!\w+/) {
+      $val_table = 0;
+      $nnn_table = 1;
+    }
 
-        if($val_table){
-            my (@vals)   = split(" ", $_);
-            my @id_list1 = split("", $vals[12]);
-            my @id_list2 = split("", $vals[13]);
-            foreach my $id (@id_list1){
-                push(@$id_list_aref, hex($id));
-            }
-            foreach my $id (@id_list2){
-                push(@$id_list_aref, hex($id));
-            }
-        }
-        elsif($nnn_table){
-        }
+    if ($val_table) {
+      my (@vals)   = split(" ", $_);
+      my @id_list1 = split("", $vals[12]);
+      my @id_list2 = split("", $vals[13]);
+      foreach my $id (@id_list1) {
+        push(@$id_list_aref, hex($id));
+      }
+      foreach my $id (@id_list2) {
+        push(@$id_list_aref, hex($id));
+      }
+    } elsif ($nnn_table) {
     }
+  }
 
-    $fh->close;
+  $fh->close;
 }
 
-sub readEBports()
-{
-    #
-    # Read EB IPs and ports accoring to EB Id (type) 
-    # and TRB-Net addresses of active data sources.
-    #
+sub readEBports()   {
+  #
+  # Read EB IPs and ports accoring to EB Id (type) 
+  # and TRB-Net addresses of active data sources.
+  #
 
-    my ($file, $activeSources_href, $id_list_aref, $ports_href) = @_;
+  my ($file, $activeSources_href, $id_list_aref, $ports_href) = @_;
 
-    my $nnn_table = 0;
-    my $val_table = 0;
+  my $nnn_table = 0;
+  my $val_table = 0;
 
-    my $fh = new FileHandle("$file", "r");
+  my $fh = new FileHandle("$file", "r");
 
-    &isFileDefined($fh, $file);
+  &isFileDefined($fh, $file);
 
-    my %tmp;
-    my $tmp_href = \%tmp; 
+  my %tmp;
+  my $tmp_href = \%tmp; 
 
-    my $SPACE = "";
+  my $SPACE = "";
 
-    while(<$fh>){
+  while (<$fh>) {
 
-        #print $_;
-        #- Remove all comments
-        $_ =~ s{                # Substitue...
-                 \#             # ...a literal octothorpe
-                 [^\n]*         # ...followed by any number of non-newlines
-               }
-               {$SPACE}gxms;    # Raplace it with a single space
+    #print $_;
+    #- Remove all comments
+    $_ =~ s{                # Substitue...
+             \#             # ...a literal octothorpe
+             [^\n]*         # ...followed by any number of non-newlines
+         }
+           {
+$SPACE}gxms;                    # Raplace it with a single space
+
+    #- Skip line if it contains only whitespaces
+    next unless(/\S/);
+
+    #print $_;
+    if (/^(\s+)?!Value\stable/) {
+      $val_table = 1;
+      $nnn_table = 0;
+      next;
+    } elsif (/^(\s+)?!\w+/) {
+      $nnn_table = 1;
+      $val_table = 0;
+    }
 
-        #- Skip line if it contains only whitespaces
-        next unless(/\S/);
+    if ($val_table) {
+      my (@vals)   = split(" ", $_);
+      my $id = $vals[1];
 
-        #print $_;
-            if(/^(\s+)?!Value\stable/){
-            $val_table = 1;
-            $nnn_table = 0;
-            next;
-        }
-        elsif(/^(\s+)?!\w+/){
-            $nnn_table = 1;
-            $val_table = 0;
-        }
+      #if($id <0 or $id >15) {
+      #  print "error: in $file there is a line with an eventbuilder number different than 0..15, the number given in the file is $id. please correct the config file.\n";
+      #  exit(128);
+      #}
 
-        if($val_table){
-            my (@vals)   = split(" ", $_);
-            my $id = $vals[1];
-
-            #if($id <0 or $id >15) {
-            #  print "error: in $file there is a line with an eventbuilder number different than 0..15, the number given in the file is $id. please correct the config file.\n";
-            #  exit(128);
-            #}
-
-
-            #- Accept only EB Ids from CTS config file
-            #print "value: $_";
-            next unless( any {$_ eq $id} @$id_list_aref );
-
-            #print Dumper \@vals;
-            #print "active sources: "; print Dumper $activeSources_href->{'addr_list'};
-            #exit;
-
-            my $ip   = &getIP_hex2dec($vals[6]);
-            my $port = &getPort_hex2dec($vals[2]);
-            my $addr = $vals[0];
-            my $calib = $vals[7]; # jam2018 - add list of trb3 tdc calibration modes
-
-          #  print "got: ip: $ip, port: $port, addr: $addr\n";
-            #- Accept only sources from active source list
-            if( any {hex($_) == hex($addr)} @{$activeSources_href->{'addr_list'}} ){
-                $tmp_href->{$id}->{'IP'} = $ip;
-                push( @{$tmp_href->{$id}->{'port_list'}}, $port );
-                push( @{$tmp_href->{$id}->{'addr_list'}}, $addr );
-                push( @{$tmp_href->{$id}->{'calib_list'}}, $calib );
-                
-                # JAM2016: for bnet we need the receiver nodes per port as list also:
-                 push( @{$tmp_href->{$id}->{'ip_list'}}, $ip );
-                
-            }
-        }
-    }
 
-    $fh->close;
+      #- Accept only EB Ids from CTS config file
+      #print "value: $_";
+      next unless( any {$_ eq $id} @$id_list_aref );
 
-   # print Dumper $tmp_href;
+      #print Dumper \@vals;
+      #print "active sources: "; print Dumper $activeSources_href->{'addr_list'};
+      #exit;
 
-    #- Sort hash according to active data source list
-    my $numids= scalar keys %tmp;
-    #print "number of ids: $numids \n";
-    foreach my $id (keys %tmp){
-        $ports_href->{$id}->{'IP'} = $tmp_href->{$id}->{'IP'};
-        
-        foreach my $addr (@{$activeSources_href->{'addr_list'}}){
-            
-            my $ind1 = first_index {$_ eq $addr} @{$tmp_href->{$id}->{'addr_list'}};
-            my $ind2 = first_index {$_ eq $addr} @{$activeSources_href->{'addr_list'}};
-
-            next if($ind1 == -1);
-
-#             push( @{$ports_href->{$id}->{'port_list'}}, $tmp_href->{$id}->{'port_list'}->[$ind1]);
-#             # added for bnet JAM:
-#             push( @{$ports_href->{$id}->{'ip_list'}}, $tmp_href->{$id}->{'ip_list'}->[$ind1]);
-#             push( @{$ports_href->{$id}->{'calib_list'}}, $tmp_href->{$id}->{'calib_list'}->[$ind1]);
-#             
-#             push( @{$ports_href->{$id}->{'addr_list'}}, $addr);
-#             push( @{$ports_href->{$id}->{'bufsize_list'}}, $activeSources_href->{'bufsize_list'}->[$ind2]);
-            
-           
-            if($id == 0 && $numids==1){
-                 # fill all ids of active inputs with setup for id 0 of bnet
-                foreach my $bid (0 .. $#bnetservers){
-                    push( @{$ports_href->{$bid}->{'port_list'}}, $tmp_href->{$id}->{'port_list'}->[$ind1]);
-                    push( @{$ports_href->{$bid}->{'ip_list'}}, $tmp_href->{$id}->{'ip_list'}->[$ind1]);
-                    push( @{$ports_href->{$bid}->{'calib_list'}}, $tmp_href->{$id}->{'calib_list'}->[$ind1]);
-                    push( @{$ports_href->{$bid}->{'addr_list'}}, $addr);
-                    push( @{$ports_href->{$bid}->{'bufsize_list'}}, $activeSources_href->{'bufsize_list'}->[$ind2]);
-                }
-           }
-           else
-           {
-            #old EB mode/no bnet: config file defines all. DO WE NEED THIS STILL?
-            push( @{$ports_href->{$id}->{'port_list'}}, $tmp_href->{$id}->{'port_list'}->[$ind1]);
-            # added for bnet JAM:
-            #push( @{$ports_href->{$id}->{'ip_list'}}, $tmp_href->{$id}->{'ip_list'}->[$ind1]);
-            #push( @{$ports_href->{$id}->{'calib_list'}}, $tmp_href->{$id}->{'calib_list'}->[$ind1]);            
-            push( @{$ports_href->{$id}->{'addr_list'}}, $addr);
-            push( @{$ports_href->{$id}->{'bufsize_list'}}, $activeSources_href->{'bufsize_list'}->[$ind2]);
-           
-           }
-            }
-    }
+      my $ip   = &getIP_hex2dec($vals[6]);
+      my $port = &getPort_hex2dec($vals[2]);
+      my $addr = $vals[0];
+      my $calib = $vals[7]; # jam2018 - add list of trb3 tdc calibration modes
 
-   # print Dumper $ports_href;
-}
+      #  print "got: ip: $ip, port: $port, addr: $addr\n";
+      #- Accept only sources from active source list
+      if ( any {hex($_) == hex($addr)} @{$activeSources_href->{'addr_list'}} ) {
+        $tmp_href->{$id}->{'IP'} = $ip;
+        push( @{$tmp_href->{$id}->{'port_list'}}, $port );
+        push( @{$tmp_href->{$id}->{'addr_list'}}, $addr );
+        push( @{$tmp_href->{$id}->{'calib_list'}}, $calib );
 
-sub readActiveSources()
-{
-    #
-    # Read TRB-Net addresses of active data sources
-    #
+        # JAM2016: for bnet we need the receiver nodes per port as list also:
+        push( @{$tmp_href->{$id}->{'ip_list'}}, $ip );
 
-    my ($file, $activeSources_href) = @_;
+      }
+    }
+  }
 
-    my $fh = new FileHandle("$file", "r");
+  $fh->close;
 
-    &isFileDefined($fh, $file);
+  # print Dumper $tmp_href;
 
-    my $SPACE = "";
-    
-   # this one contains list of deactivated data sources
-    my $log="/home/hadaq/trbsoft/hadesdaq/evtbuild/tmp/EB_NotActiveSources.txt";
-    system("truncate -s 0 $log ;");
-    while(<$fh>){
-        
-        #- Remove all comments
-        $_ =~ s{                # Substitue...
-                 \#             # ...a literal octothorpe
-                 [^\n]*         # ...followed by any number of non-newlines
-               }
-               {$SPACE}gxms;    # Raplace it with a single space
+  #- Sort hash according to active data source list
+  my $numids= scalar keys %tmp;
+  #print "number of ids: $numids \n";
+  foreach my $id (keys %tmp) {
+    $ports_href->{$id}->{'IP'} = $tmp_href->{$id}->{'IP'};
+
+    foreach my $addr (@{$activeSources_href->{'addr_list'}}) {
+
+      my $ind1 = first_index {$_ eq $addr} @{$tmp_href->{$id}->{'addr_list'}};
+      my $ind2 = first_index {$_ eq $addr} @{$activeSources_href->{'addr_list'}};
 
-        #- Skip line if it contains only whitespaces
-        next unless(/\S/);
+      next if($ind1 == -1);
 
-        my ($addr, $astat, $sys, $size)  = split(" ", $_);
+      #             push( @{$ports_href->{$id}->{'port_list'}}, $tmp_href->{$id}->{'port_list'}->[$ind1]);
+      #             # added for bnet JAM:
+      #             push( @{$ports_href->{$id}->{'ip_list'}}, $tmp_href->{$id}->{'ip_list'}->[$ind1]);
+      #             push( @{$ports_href->{$id}->{'calib_list'}}, $tmp_href->{$id}->{'calib_list'}->[$ind1]);
+      #
+      #             push( @{$ports_href->{$id}->{'addr_list'}}, $addr);
+      #             push( @{$ports_href->{$id}->{'bufsize_list'}}, $activeSources_href->{'bufsize_list'}->[$ind2]);
 
-      if($astat == 0){
-         system("echo $addr >> $log 2>&1;");       
-        next;
+      if ($id == 0 && $numids==1) {
+        # fill all ids of active inputs with setup for id 0 of bnet
+        foreach my $bid (0 .. $#bnetservers) {
+          push( @{$ports_href->{$bid}->{'port_list'}}, $tmp_href->{$id}->{'port_list'}->[$ind1]);
+          push( @{$ports_href->{$bid}->{'ip_list'}}, $tmp_href->{$id}->{'ip_list'}->[$ind1]);
+          push( @{$ports_href->{$bid}->{'calib_list'}}, $tmp_href->{$id}->{'calib_list'}->[$ind1]);
+          push( @{$ports_href->{$bid}->{'addr_list'}}, $addr);
+          push( @{$ports_href->{$bid}->{'bufsize_list'}}, $activeSources_href->{'bufsize_list'}->[$ind2]);
         }
-        push( @{$activeSources_href->{'addr_list'}}, $addr);
-        push( @{$activeSources_href->{'bufsize_list'}}, &getBufSize($size)); 
+      } else {
+        #old EB mode/no bnet: config file defines all. DO WE NEED THIS STILL?
+        push( @{$ports_href->{$id}->{'port_list'}}, $tmp_href->{$id}->{'port_list'}->[$ind1]);
+        # added for bnet JAM:
+        #push( @{$ports_href->{$id}->{'ip_list'}}, $tmp_href->{$id}->{'ip_list'}->[$ind1]);
+        #push( @{$ports_href->{$id}->{'calib_list'}}, $tmp_href->{$id}->{'calib_list'}->[$ind1]);            
+        push( @{$ports_href->{$id}->{'addr_list'}}, $addr);
+        push( @{$ports_href->{$id}->{'bufsize_list'}}, $activeSources_href->{'bufsize_list'}->[$ind2]);
+      }
     }
+  }
 
-    $fh->close;
+  # print Dumper $ports_href;
 }
 
-sub getBufSize()
-{
-    my ($bufSize) = @_;
+sub readActiveSources()   {
+  #
+  # Read TRB-Net addresses of active data sources
+  #
 
-    if(lc($bufSize) eq "low"){
-        return $temp_args_href->{'Main'}->{'BUF_SIZE_LOW'};
-    }
-    elsif(lc($bufSize) eq "mid"){
-        return $temp_args_href->{'Main'}->{'BUF_SIZE_MID'};
-    }
-    elsif(lc($bufSize) eq "high"){
-        return $temp_args_href->{'Main'}->{'BUF_SIZE_HIGH'};
-    }
-    else{
-        print "Cannot understand $bufSize from data_sources.db.\n";
-        exit(0);
+  my ($file, $activeSources_href) = @_;
+
+  my $fh = new FileHandle("$file", "r");
+
+  &isFileDefined($fh, $file);
+
+  my $SPACE = "";
+
+  # this one contains list of deactivated data sources
+  my $log="/home/hadaq/trbsoft/hadesdaq/evtbuild/tmp/EB_NotActiveSources.txt";
+  system("truncate -s 0 $log ;");
+  while (<$fh>) {
+    #- Remove all comments
+    $_ =~ s{                # Substitue...
+             \#             # ...a literal octothorpe
+             [^\n]*         # ...followed by any number of non-newlines
+         }
+           {
+$SPACE}gxms;                    # Raplace it with a single space
+
+    #- Skip line if it contains only whitespaces
+    next unless(/\S/);
+
+    my ($addr, $astat, $sys, $size)  = split(" ", $_);
+
+    if ($astat == 0) {
+      system("echo $addr >> $log 2>&1;");
+      next;
     }
+    push( @{$activeSources_href->{'addr_list'}}, $addr);
+    push( @{$activeSources_href->{'bufsize_list'}}, &getBufSize($size)); 
+  }
+
+  $fh->close;
 }
 
-sub getIP_hex2dec()
-{
-    my ($ip_hex) = @_;
+sub getBufSize()   {
+  my ($bufSize) = @_;
+
+  if (lc($bufSize) eq "low") {
+    return $temp_args_href->{'Main'}->{'BUF_SIZE_LOW'};
+  } elsif (lc($bufSize) eq "mid") {
+    return $temp_args_href->{'Main'}->{'BUF_SIZE_MID'};
+  } elsif (lc($bufSize) eq "high") {
+    return $temp_args_href->{'Main'}->{'BUF_SIZE_HIGH'};
+  } else {
+    print "Cannot understand $bufSize from data_sources.db.\n";
+    exit(0);
+  }
+}
 
-    my $ip_dec;
+sub getIP_hex2dec()   {
+  my ($ip_hex) = @_;
 
-    if( $ip_hex =~ /0x(\w{2})(\w{2})(\w{2})(\w{2})/ ){
-        $ip_dec = hex($1) . "." . hex($2) . "." . hex($3) . "." . hex($4);
-    }
-    else{
-        print "getIP_hex2dec(): cannot extract ip address because of diferent format! Exit.";
-        exit(0);
-    }
+  my $ip_dec;
+
+  if ( $ip_hex =~ /0x(\w{2})(\w{2})(\w{2})(\w{2})/ ) {
+    $ip_dec = hex($1) . "." . hex($2) . "." . hex($3) . "." . hex($4);
+  } else {
+    print "getIP_hex2dec(): cannot extract ip address because of diferent format! Exit.";
+    exit(0);
+  }
 
-    return $ip_dec;
+  return $ip_dec;
 }
 
-sub getPort_hex2dec()
-{
-    my ($port_hex) = @_;
+sub getPort_hex2dec()   {
+  my ($port_hex) = @_;
 
-    my $port_dec;
+  my $port_dec;
 
-    if( $port_hex =~ /0x(\w+)/ ){
-        $port_dec = hex($1);
-    }
-    else{
-        print "getPort_hex2dec(): cannot extract port number because of diferent format! Exit.";
-        exit(0);
-    }
+  if ( $port_hex =~ /0x(\w+)/ ) {
+    $port_dec = hex($1);
+  } else {
+    print "getPort_hex2dec(): cannot extract port number because of diferent format! Exit.";
+    exit(0);
+  }
 
-    return $port_dec;
+  return $port_dec;
 }
 
-sub getIP_hades2gsi()
-{
-    my ($ip_hades) = @_;
-    my $ip_gsi = "";
-    if (exists $IP_GSI_href->{$ip_hades}){ 
-      $ip_gsi = $IP_GSI_href->{$ip_hades};
-    }
-    else {
-      print "getIP_hades2gsi(): WARNING - unknown hades ip $ip_hades";
-    }
-    return $ip_gsi;
+sub getIP_hades2gsi() {
+  my ($ip_hades) = @_;
+  my $ip_gsi = "";
+  if (exists $IP_GSI_href->{$ip_hades}) { 
+    $ip_gsi = $IP_GSI_href->{$ip_hades};
+  } else {
+    print "getIP_hades2gsi(): WARNING - unknown hades ip $ip_hades";
+  }
+  return $ip_gsi;
 }
 
 
 
 
-sub isFileDefined()
-{
-    my ($fh, $name) = @_;
+sub isFileDefined() {
+  my ($fh, $name) = @_;
 
-   if(!$fh) {
-        my $txt = "\nError! Could not open file \'$name\'. Exit.\n";
-        print STDERR $txt;
-        print $txt;
-        exit(128);
-    }
+  if (!$fh) {
+    my $txt = "\nError! Could not open file \'$name\'. Exit.\n";
+    print STDERR $txt;
+    print $txt;
+    exit(128);
+  }
 
-    return 0;
+  return 0;
 }
 
-sub writeArgs2file()
-{
-    my $fileName = $0;
+sub writeArgs2file() {
+  my $fileName = $0;
 
-    #- Replace .pl with .sh
-    $fileName =~ s/\.pl/\.sh/;
+  #- Replace .pl with .sh
+  $fileName =~ s/\.pl/\.sh/;
 
-    my $fh = new FileHandle(">./$fileName");
-    if(!$fh) {
-        my $txt = "\nError! Could not open file \"$fileName\" for output. Exit.\n";
-        print STDERR $txt;
-        print $txt;
-        exit(128);
-    }
+  my $fh = new FileHandle(">./$fileName");
+  if (!$fh) {
+    my $txt = "\nError! Could not open file \"$fileName\" for output. Exit.\n";
+    print STDERR $txt;
+    print $txt;
+    exit(128);
+  }
 
-    my $current_dir = cwd();
-    my $ptogName = $0;
+  my $current_dir = cwd();
+  my $ptogName = $0;
 
 
-    #- Write to the file the script name itself
-    print $fh $0;
+  #- Write to the file the script name itself
+  print $fh $0;
 
-    #- Write to the file the arguments
-    foreach my $arg (@arg_list){
-        print $fh " $arg";
-    }
-    print $fh ";\n";
-    
-    ## do not start te files by default. user should actively restart the file JAM 29-06-2018
-    # here put command to start the correct file prefix in bnet builders:
-    #my $prefix=$EB_Args_href->{0}->{'PREFIX'};
-    #print $fh "/usr/bin/wget  -a /tmp/EB_filestart.log  -O /tmp/EB_fileres.txt \"http://lxhadeb03:8090/Master/BNET/StartRun/execute?prefix=$prefix&oninit=10\"\n"; 
-    
-    
-    $fh->close();
+  #- Write to the file the arguments
+  foreach my $arg (@arg_list) {
+    print $fh " $arg";
+  }
+  print $fh ";\n";
+  ## do not start te files by default. user should actively restart the file JAM 29-06-2018
+  # here put command to start the correct file prefix in bnet builders:
+  #my $prefix=$EB_Args_href->{0}->{'PREFIX'};
+  #print $fh "/usr/bin/wget  -a /tmp/EB_filestart.log  -O /tmp/EB_fileres.txt \"http://lxhadeb03:8090/Master/BNET/StartRun/execute?prefix=$prefix&oninit=10\"\n"; 
+  $fh->close();
 
-    system("chmod 755 ./$fileName");
+  system("chmod 755 ./$fileName");
 }
 
index 4efde569d913e38ea18591c671c63a1038417d1b..e1811735a852b76e0bbf586e90446c673450aeac 100644 (file)
@@ -113,8 +113,8 @@ our @TdcCalibrationTemperature = (5,7,10);
 our @PionLvCurrLimits = (4,5,6);
 
 
-our $PadiwaECalNumber = 84;
-our @PadiwaEcalLimits    = (36, 37, 39);
+our $PadiwaECalNumber = 105;
+our @PadiwaEcalLimits    = (5, 10, 20);
 
 our @LimitTriggerPerSpill = (1000, 0, 0);
 our $AcceleratorCycle = 7;
index ec7b02f862b2f14b57ad047a36abaeab9c075742..4ebdb983a758e9bf6bdc7ae4fa45a2ebd6ce0a27 100755 (executable)
@@ -136,12 +136,12 @@ while(1) {
     0x7070,0x7071,0x7080,0x7081,0x7090,0x7091,
     );
 
-#TOF -> is TOF, RPC,FW
+#TOF -> is TOF, RPC, fRPC
     my @tof_boards =(
 0x86c0,0x5c00,0x5c01,0x5c02,0x5c03,
 0x86c1,0x5c10,0x5c11,0x5c12,0x5c13,
 0x86c2,0x5c20,0x5c21,0x5c22,0x5c23,
- 0x86c3,0x5c30,0x5c31,0x5c32,0x5c33,
+0x86c3,0x5c30,0x5c31,0x5c32,0x5c33,
 0x86c4,0x5c40,0x5c41,0x5c42,0x5c43,
 0x86c5,0x5c50,0x5c51,0x5c52,0x5c53,
 #0x86c6,0x5c60,0x5c61,0x5c62,0x5c63,
@@ -155,7 +155,7 @@ while(1) {
 0x5850,0x5851,0x5852,0x5853,0x5854,0x5855,0x5856,0x5857,0x5858,
 );
 
-#RPC -> is ECAL
+#RPC -> is ECAL, STS
     my @rpc_boards = (
        0x8a00,0x8a01,0x8a02,0x8a03,0x8a04,0x8a05,
 #      0x6000,0x6001,0x6002,0x6003,0x6004,0x6005,0x6006,
@@ -165,6 +165,13 @@ while(1) {
        0x6040,0x6041,0x6042,0x6043,0x6044,0x6045,0x6046,
        0x6050,0x6051,0x6052,0x6053,0x6054,0x6055,0x6056,
 
+#STT1
+        0x8b00, 0x8b01, 0x8b02, 0x8b03,
+        0x6400, 0x6401, 0x6402, 0x6403,
+        0x6410, 0x6411, 0x6412, 0x6413,
+        0x6420, 0x6421, 0x6422, 0x6423,
+        0x6430, 0x6431, 0x6432, 0x6433,
+
 #STT2
         0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14, 0x8b15,
         0x6440, 0x6441, 0x6442, 0x6443, 0x6444, 0x6445,
@@ -180,15 +187,17 @@ while(1) {
        #central hub
        0x8000,0x8011,0x8012,0x8013,0x8014,0x8800, 0x8810,
        #start/veto
-#      0x4000,
-       #Pion
+#      
+        #innerTOF
+#
+#      #Pion
 #      0x8900,0x3800,0x3801,
 #      0x8910,0x3810,0x3811,
-       #Start TRB3
+#      #Start TRB3
 #      0x8880,0x5000,0x5002,0x5003,
        #Hodo TRB3
-#      0x8890,0x5010,0x5011,0x5012,0x5013
-    0x0100,0x0110 #trigger etc.
+       0x8890,0x5010,0x5011,0x5012,
+    0x0100,0x0110,0x0120 #trigger etc.
        );
 
     ###strip the register value
@@ -217,7 +226,7 @@ while(1) {
 
     my $title    = "MDC";
     my $value    = "OK ".(scalar @mdc_boards - scalar @QA::mdc_boards_removed);
-    if ($num_mdc_missing > 0) {$value = "$num_mdc_missing missing";} 
+    if ($num_mdc_missing > 0) {$value = "$num_mdc_missing / ".(scalar @mdc_boards - scalar @QA::mdc_boards_removed)." miss";} 
     if ($num_mdc_mistake > 0) {$value = "Check Script";} 
     my $longtext = (scalar @mdc_boards). " boards. ".(scalar @QA::mdc_boards_removed)." removed";
     if ($num_mdc_missing > 0) {$longtext = "Endp @sorted_mdc_results missing"}; 
@@ -249,7 +258,7 @@ while(1) {
 
     my $rich_title    = "RICH";
     my $rich_value    = "OK ".(scalar @rich_boards);
-    if ($num_rich_missing > 0) {$rich_value = "$num_rich_missing missing";} 
+    if ($num_rich_missing > 0) {$rich_value = "$num_rich_missing / ".(scalar @rich_boards)." miss";} 
     if ($num_rich_mistake > 0) {$rich_value = "Check Script";} 
     my $rich_longtext = (scalar @rich_boards). " boards. ";
     if ($num_rich_missing > 0) {$rich_longtext = "Endp @sorted_rich_results missing"}; 
@@ -268,7 +277,7 @@ while(1) {
     Hmon::Speak('richmiss',"$num_rich_missing Rich Frontends missing") if($qastate >= QA::ERROR );
     
     
-    if($num_rich_missing > 20) {$rich_longtext = $num_rich_missing." boards missing";}
+    if($num_rich_missing > 200) {$rich_longtext = $num_rich_missing." boards missing";}
     QA::WriteQALog($flog,"endp","rich",$waittime,$qastate, $rich_title,$rich_value,$rich_longtext);
 
 
@@ -289,7 +298,7 @@ while(1) {
 
     my $tof_title    = "TOF/RPC/FW";
     my $tof_value    = "OK ".(scalar @tof_boards);
-    if ($num_tof_missing > 0) {$tof_value = "$num_tof_missing missing";} 
+    if ($num_tof_missing > 0) {$tof_value = "$num_tof_missing / ".(scalar @tof_boards)." miss";} 
     if ($num_tof_mistake > 0) {$tof_value = "Check Script";} 
     my $tof_longtext = (scalar @tof_boards). " boards. ";
     #if ($num_tof_missing > 0) {$tof_longtext = "Endp @{$tof_results[2]} missing"}; 
@@ -323,7 +332,7 @@ while(1) {
 
     my $rpc_title    = "ECal/STT/fRPC";
     my $rpc_value    = "OK ".(scalar @rpc_boards);
-    if ($num_rpc_missing > 0) {$rpc_value = "$num_rpc_missing missing";} 
+    if ($num_rpc_missing > 0) {$rpc_value = "$num_rpc_missing / ".(scalar @rpc_boards)." miss";} 
     if ($num_rpc_mistake > 0) {$rpc_value = "Check Script";} 
     my $rpc_longtext = (scalar @rpc_boards). " boards. ";
     if ($num_rpc_missing > 0) {$rpc_longtext = "Endp @sorted_rpc_results missing"}; 
@@ -354,7 +363,7 @@ while(1) {
 
     my $other_title    = "Hub/St/CTS";
     my $other_value    = "OK ".(scalar @other_boards);
-    if ($num_other_missing > 0) {$other_value = "$num_other_missing missing";} 
+    if ($num_other_missing > 0) {$other_value = "$num_other_missing / ".(scalar @other_boards)." miss";} 
     if ($num_other_mistake > 0) {$other_value = "Check Script";} 
     my $other_longtext = (scalar @other_boards). " boards. ";
     if ($num_other_missing > 0) {$other_longtext = "Endp @sorted_other_results missing"}; 
index 27c219f4494d870176878ccf26ba1513a9424375..c0683d6a3c475a2271bed2039b46ce07a2de8a37 100644 (file)
@@ -15,7 +15,7 @@ use List::Util qw[min max];
 my $plot2 = ();
 $plot2->{name}    = "HodoRate";
 $plot2->{file}    = "files/HodoRate";
-$plot2->{entries} = 2;
+$plot2->{entries} = 4;
 $plot2->{curves}  = 16;
 $plot2->{type}    = HPlot::TYPE_HEATMAP;
 $plot2->{output}  = HPlot::OUT_PNG;
@@ -25,7 +25,7 @@ $plot2->{sizey}   = 360;
 $plot2->{nokey}   = 1;
 $plot2->{buffer}  = 1;
 $plot2->{xmin}    = -0.5;
-$plot2->{xmax}    = 1.5;
+$plot2->{xmax}    = 3.5;
 $plot2->{ymin}    = 15.5;
 $plot2->{ymax}    = -0.5;
 $plot2->{cbmax}   = "100<*";
@@ -36,7 +36,7 @@ my $plot = ();
 $plot->{name}    = "HodoRatePlot";
 $plot->{file}    = "files/HodoRatePlot";
 $plot->{entries} = 16;
-$plot->{curves}  = 2;
+$plot->{curves}  = 4;
 $plot->{style}   = 'dots';
 $plot->{curvewidth} = 1;
 $plot->{type}    = HPlot::TYPE_BARGRAPH;
@@ -76,30 +76,28 @@ trb_init_ports() or die trb_strerror();
 
 while (1) {
   my $o;
-  foreach my $b (0x5010,0x5011,0x5012,0x5013) {
+  foreach my $b (0x5010,0x5011) {
     my $t = trb_register_read_mem($b,0xc000,0,33);
     $o->{$b} = $t->{$b};
     }
 
   if (defined $old) {
     foreach my $b (keys %$o) {
-      for my $v (0..7) {
+      for my $v (0..31) {
         my $tdiff = time() - $oldtime;
-        my $vdiff = ($o->{$b}->[$v*4+1]&0xffffff) - ($old->{$b}->[$v*4+1]&0xffffff);
+        my $vdiff = ($o->{$b}->[$v+1]&0xffffff) - ($old->{$b}->[$v+1]&0xffffff);
         if ($vdiff < 0) { $vdiff += 2**24;}
-        $diff->{$b}->[$v*4+1] = $vdiff/($tdiff|1);
+        $diff->{$b}->[$v+1] = $vdiff/($tdiff|1);
         }
       }
-    for my $bar (0..3) {
-      for my $x (0..1) {
-        HPlot::PlotFill('HodoRate',    $diff->{0x5013}->[$bar*4+1+$x*16],$x,$bar);
-        HPlot::PlotFill('HodoRatePlot',$diff->{0x5013}->[$bar*4+1+$x*16],$bar,$x);
-        HPlot::PlotFill('HodoRate',    $diff->{0x5012}->[$bar*4+1+$x*16],$x,$bar+4);
-        HPlot::PlotFill('HodoRatePlot',$diff->{0x5012}->[$bar*4+1+$x*16],$bar+4,$x);
-        HPlot::PlotFill('HodoRate',    $diff->{0x5011}->[$bar*4+1+$x*16],$x,$bar+8);
-        HPlot::PlotFill('HodoRatePlot',$diff->{0x5011}->[$bar*4+1+$x*16],$bar+8,$x);
-        HPlot::PlotFill('HodoRate',    $diff->{0x5010}->[$bar*4+1+$x*16],$x,$bar+12);
-        HPlot::PlotFill('HodoRatePlot',$diff->{0x5010}->[$bar*4+1+$x*16],$bar+12,$x);
+    for my $side (0..15) {
+      for my $dir (0..1) {
+        HPlot::PlotFill('HodoRate',    $diff->{0x5011}->[$dir*16+$side+1],$dir+2,$side);
+        HPlot::PlotFill('HodoRatePlot',$diff->{0x5011}->[$dir*16+$side+1],$side,$dir+2);
+
+        HPlot::PlotFill('HodoRate',    $diff->{0x5010}->[$dir*16+$side+1],$dir,$side);
+        HPlot::PlotFill('HodoRatePlot',$diff->{0x5010}->[$dir*16+$side+1],$side,$dir);
+
         }
       }
     HPlot::PlotDraw('HodoRate');  
index ab931874c70a090d37e00c8ea03762d8477ec130..8def7932876b3158b055f1c5e5e563f557e305d1 100755 (executable)
@@ -16,8 +16,8 @@ while (1) {
   my $longmsg = "The QA server process is running.";
   my $msg = "";
 
-
-  my $cmd = "ssh lxhadeb06 'pgrep -fl \"hadesonlineserver.exe .* 9876\"' </dev/null";
+  # JAM2020- the pgrep command defaults on lxhadeb06 have changed for debian9. use -fal instead -fl:  
+  my $cmd = "ssh lxhadeb06 'pgrep -fal \"hadesonlineserver.exe .* 9876\"' </dev/null";
   my @out = qx($cmd);
 
 
index 41d03526cc154e37ed588f4f254a5f8d48388c8c..b0948feab2317a3b039b71f612f3cb4ff41b947f 100755 (executable)
@@ -164,29 +164,29 @@ while (1) {
   QA::WriteQALog($fqa, "rate", "pt1", 10,
        $state, 'PT1 Rate', $shorttext, $longtext); 
                 
-  $state = QA::OK;
-  $shorttext = QA::SciNotation($store{0xa02c})." / ".getCorrected($store{0xa02c},$offset->{0xa02c});
-  $longtext  = sprintf("Trigger Rate from Start: %i Hz / %i Hz after offset correction",$store{0xa02c}, 
-getCorrectedValue($store{0xa009},$offset->{0xa02c}));
-  if(getCorrectedValue($store{0xa009},$offset->{0xa02c}) < 100 && 
-     getCorrectedValue($store{0xa029},$offset->{0xa029}) > 1000) {
-    $starterrorcnt+=3;
-    if($starterrorcnt >= 15) {
-      $state = QA::ERROR;
-      $longtext .= "<br>Something seems to be wrong with the trigger signal from Start";
-      }
-    }
-  else {
-    $starterrorcnt = max($starterrorcnt-1,0);
-    }
-  QA::WriteQALog($fqa, "rate", "start", 10,
-       $state, 'Start Rate', $shorttext, $longtext);        
-
-  $state = QA::OK;
-  $shorttext = sprintf('%.2f',getCorrectedValue($store{0xa02c},$offset->{0xa02c})/(getCorrectedValue($store{0xa026},$offset->{0xa026})||1));
-  $longtext  = "Trigger Rate from PT3 vs. Start: ".$shorttext;
-  QA::WriteQALog($fqa, "trg", "pt1rate", 10,
-       $state, 'Start/PT3', $shorttext, $longtext);            
+#  $state = QA::OK;
+#  $shorttext = QA::SciNotation($store{0xa02c})." / ".getCorrected($store{0xa02c},$offset->{0xa02c});
+#  $longtext  = sprintf("Trigger Rate from Start: %i Hz / %i Hz after offset correction",$store{0xa02c}, 
+#getCorrectedValue($store{0xa009},$offset->{0xa02c}));
+#  if(getCorrectedValue($store{0xa009},$offset->{0xa02c}) < 100 && 
+#     getCorrectedValue($store{0xa029},$offset->{0xa029}) > 1000) {
+#    $starterrorcnt+=3;
+#    if($starterrorcnt >= 15) {
+#      $state = QA::ERROR;
+#      $longtext .= "<br>Something seems to be wrong with the trigger signal from Start";
+#      }
+#    }
+#  else {
+#    $starterrorcnt = max($starterrorcnt-1,0);
+#    }
+#  QA::WriteQALog($fqa, "rate", "start", 10,
+#       $state, 'Start Rate', $shorttext, $longtext);        
+
+#  $state = QA::OK;
+#  $shorttext = sprintf('%.2f',getCorrectedValue($store{0xa02c},$offset->{0xa02c})/(getCorrectedValue($store{0xa026},$offset->{0xa026})||1));
+#  $longtext  = "Trigger Rate from PT3 vs. Start: ".$shorttext;
+#  QA::WriteQALog($fqa, "trg", "pt1rate", 10,
+#       $state, 'Start/PT3', $shorttext, $longtext);            
        
   sleep 1;
 }
index 559587f1dd5d286270b1cc9763a650a55b25590d..17618c7b9ff2d8cf8538e7e191dddfe48cc1f44a 100755 (executable)
@@ -28,7 +28,7 @@ my $raw = {};
 my $val;
 my $mailerrstatecnt = 0;
 my ($max,$min,$avg,$sum,$count);
-my $interlockTemperature = 37.0; #Interlock value !!!
+my $interlockTemperature = 36.0; #Interlock value !!!
 
 
 trb_init_ports() or die trb_strerror();
@@ -86,7 +86,7 @@ while (1) {
 
 
   if ($max > $interlockTemperature ) {
-    my $s = sprintf("HAD:RICH:PS:17:SETONOFF");
+    my $s = sprintf("HAD:RICH:PS:24:SETONOFF");
     Perl2Epics::Connect("PS_RICH_3_3V",$s);
     Perl2Epics::Put("PS_RICH_3_3V",1);
     $InterlockActive = "Shutting down RICH ...";
old mode 100755 (executable)
new mode 100644 (file)
index d73685efc5b461f7b2263abe05405b80d596d2ac..56442be7d43ecfc62212ebb2b6af72bca376e54f 100755 (executable)
@@ -73,6 +73,7 @@ while(1) {
       my $xpos =  (($b>>4)&0xF)*10 + ($b&0xF);
 
       for my $v (0..47) {
+        last if $v == 32 && ($b&0xF)==3 && $b < 0x6440;
         my $vdiff = ($o->{$b}->[$v+1]&0xfffffff) - ($old->{$b}->[$v+1]&0xfffffff);
         
         if ($vdiff < 0) { $vdiff += 2**28;}
index 3fcdcfaa29e841ba34cbb1ee0b07a0aa8f691aa0..09a52e6b37fb3da765e54c089ab27d20f99b6b1c 100755 (executable)
@@ -24,8 +24,8 @@ my @lnames= qw(SectorwiseMult1 SectorwiseMult2 SectorwiseMult3
 SectorwiseMult4 SectorwiseMult5 SectorwiseMult6 SectorwiseMult2NoNeighbour 
 SectorwiseMult3NoNeighbour SectorwiseMult2Opposite);
 
-my @ptnames= qw(M2 M5 M16 PT4 PT5 Ri FW EC);
-my @ptlnames= qw(PT1/M2 PT2/M5 PT3/M20 PT4 PT5 PT6/Ri PT7/FW PT8/EC);
+my @ptnames= qw(PT1 PT2 PT3 PT4 PT5 Ri FW EC);
+my @ptlnames= qw(PT1 PT2 PT3 PT4 PT5 PT6/Ri PT7/FW PT8/EC);
 
 my $lastlongmsg = "";
 my $spillsum = 0;
@@ -232,7 +232,7 @@ my $longmsgcheck = $longmsg;
   $ptmsg = sprintf("%s/s / %1.2f%%",QA::SciNotation($rStat->{3}->[0x24]),$ptoverStattart) if $ptoverStattart<=10;
   $ptmsg = sprintf("%i/s / %1.1f%%",$rStat->{3}->[0x26],$ptoverStattart) if $ptoverStattart> 10;
   my $ptlongmsg = sprintf("PT1 counts per second: %i - PT1 / Start: %1.2f%%", $rStat->{3}->[0x24], $ptoverStattart);
-  QA::WriteQALog($fqa, "trg", "ptrate", 10, $qastatept, "PT1 / Start", $ptmsg, $ptlongmsg);
+#  QA::WriteQALog($fqa, "trg", "ptrate", 10, $qastatept, "PT1 / Start", $ptmsg, $ptlongmsg);
   
   
   my $startsum = 0;
@@ -262,7 +262,7 @@ my $longmsgcheck = $longmsg;
     }
   $startmsg = sprintf("%s / %s",QA::SciNotation($startsum),QA::SciNotation($lastspillsum));
   $startlongmsg = sprintf("counts per second %s/s  - counts per spill %s",QA::SciNotation($startsum),QA::SciNotation($lastspillsum));
-  QA::WriteQALog($fqa, "trg", "start", 10, $qastatstart, "Start Count", $startmsg, $startlongmsg);
+#  QA::WriteQALog($fqa, "trg", "start", 10, $qastatstart, "Start Count", $startmsg, $startlongmsg);
    
   
   
old mode 100755 (executable)
new mode 100644 (file)
index 4a72032593583df07522795740d1a492d3fe5e46..74520ca2b1c52d8051da43ede68a7fa244ff7e7f 100755 (executable)
@@ -33,7 +33,7 @@ function openwin(url) {
 <li><a href="monitor.cgi?10-window-chat">Chat Log</a></li>
 <li><a href="../daqtools/index.pl" target="_blank">Web Tools (daqtools)</a></li>
 <li><a href="../eb/?browser=fix" target="_blank">Eventbuilder Monitor</a></li>
-<li><a href="../rawmon/" target="_blank">Raw Data Monitor</a></li>
+<li class="outdated"><a href="../rawmon/" target="_blank">Raw Data Monitor</a></li>
 <li><a href="/mon/files/runstatscompare.png" target="_blank">Accumulated Run Statistics</a>
 </ul></div>
 
@@ -49,8 +49,8 @@ function openwin(url) {
 <div class="linkbox" style="clear:both;width:730px;"><h4>Other Ressources</h4><ul>
 <li><a href="files/qa.htm">QA Plots (updated every 5 minutes)</a></li>
 <li><a href="files/vertex.htm">Vertex Plots (updated after each file)</a></li>
-<li><a href="../spillmon/?browser=no&monitoring=1000&layout=grid4x4&items=[%22EventBuilder/Run/HLD/HLD_HitsFast%22,%22EventBuilder/Run/HLD/HLD_HitsSlow%22,%22EventBuilder/Run/HLD/HLD_TrendX%22,%22EventBuilder/Run/HLD/HLD_TrendY%22,%22EventBuilder/Run/HLD/HLD_BeamX%22,%22EventBuilder/Run/HLD/HLD_BeamY%22,%22EventBuilder/Run/HLD/HLD_VETO_Patt%22,%22EventBuilder/Run/HLD/HLD_QSlow%22,%22EventBuilder/Run/HLD/HLD_HALO_Patt%22,%22EventBuilder/Run/HLD/HLD_XHALOSlow%22,%22EventBuilder/Run/HLD/HLD_YHALOSlow%22,%22EventBuilder/Run/HLD/HLD_LastSpill_Q_factor%22]">Beam Properties</a></li>
-<li><a href="http://lxhadeb06/icinga">Icinga Server Monitoring</a>
+<li class="outdated"><a href="../spillmon/?browser=no&monitoring=1000&layout=grid4x4&items=[%22EventBuilder/Run/HLD/HLD_HitsFast%22,%22EventBuilder/Run/HLD/HLD_HitsSlow%22,%22EventBuilder/Run/HLD/HLD_TrendX%22,%22EventBuilder/Run/HLD/HLD_TrendY%22,%22EventBuilder/Run/HLD/HLD_BeamX%22,%22EventBuilder/Run/HLD/HLD_BeamY%22,%22EventBuilder/Run/HLD/HLD_VETO_Patt%22,%22EventBuilder/Run/HLD/HLD_QSlow%22,%22EventBuilder/Run/HLD/HLD_HALO_Patt%22,%22EventBuilder/Run/HLD/HLD_XHALOSlow%22,%22EventBuilder/Run/HLD/HLD_YHALOSlow%22,%22EventBuilder/Run/HLD/HLD_LastSpill_Q_factor%22]">Beam Properties</a></li>
+<li><a href="http://lxhadeb06/icinga">Icinga Server Monitoring (local access only)</a>
 <li><a href="../munin">Munin Server Monitoring</a></li>
 <li style="width:600px;"><a href="archive/?C=M;O=D">Archive of Hmon Windows (updated every 10 minutes)</a></li>
 </ul></div>
@@ -76,7 +76,7 @@ function openwin(url) {
 <li><a href="monitor.cgi?1-window-eventrateshort">Eventrate histogram (10s)</a></li>
 <li><a href="monitor.cgi?1-window-eventrate">Eventrate histogram (60s)</a></li>
 <li><a href="monitor.cgi?5-window-eventratelong">Eventrate histogram (10m)</a></li>
-<li><a href="monitor.cgi?10-window-StartCountSpill">Start counts per spill</a></li>
+<li class="outdated"><a href="monitor.cgi?10-window-StartCountSpill">Start counts per spill</a></li>
 <li><a href="monitor.cgi?10-window-Pt3AcceptRatio">Ratio of accepted PT3 per spill</a></li>
 <li><a href="monitor.cgi?10-window-EvtsPerSpill">Recorded events per spill</a></li>
 <!--<li><a href="monitor.cgi?5-window-Vetohist">Veto hit count histograms</a></li>-->
@@ -101,13 +101,13 @@ function openwin(url) {
  </ul></div> -->
 
 <div class="linkbox" style="float:left"><h4>Start</h4><ul>
-<li><a href="monitor.cgi?1-window-StartRate">Rates for all Start / Veto (histo)</a></li>
-<li><a href="monitor.cgi?1-window-StartRateBars">Rates for all Start / Veto (histo,bargraph)</a></li>
-<li><a href="monitor.cgi?1-window-StartBars">Rates for all Start / Veto (bargraph) </a></li>
-<li><a href="monitor.cgi?1-window-VetoHalo">Rates for Veto &amp; HALO</a></li>
-<li><a href="monitor.cgi?1-window-StartPosition">Beam Position</a></li>
-<li><a href="monitor.cgi?1-window-SpillStructure">Spill Structure from Start</a></li>
-<li><a href="monitor.cgi?1-StartRateBars-StartBars-StartPosition-VetoHalo-ForwardQuartz">Beam Summary</a></li>
+<li class="outdated"><a href="monitor.cgi?1-window-StartRate">Rates for all Start / Veto (histo)</a></li>
+<li class="outdated"><a href="monitor.cgi?1-window-StartRateBars">Rates for all Start / Veto (histo,bargraph)</a></li>
+<li class="outdated"><a href="monitor.cgi?1-window-StartBars">Rates for all Start / Veto (bargraph) </a></li>
+<li class="outdated"><a href="monitor.cgi?1-window-VetoHalo">Rates for Veto &amp; HALO</a></li>
+<li class="outdated"><a href="monitor.cgi?1-window-StartPosition">Beam Position</a></li>
+<li class="outdated"><a href="monitor.cgi?1-window-SpillStructure">Spill Structure from Start</a></li>
+<li class="outdated"><a href="monitor.cgi?1-StartRateBars-StartBars-StartPosition-VetoHalo-ForwardQuartz">Beam Summary</a></li>
 </ul></div>
 
 <div class="linkbox" style="float:right"><h4>ECal</h4><ul>
index 32e5f02437661793a7721a68f9f1f1c4cb62eb5f..5a5be7132aa86321d0a6529df0e67e9e9324ab47 100644 (file)
@@ -175,4 +175,9 @@ dt {
 .brd, .brdb {background:#f00;}
 .bgr {background:#000;color:#aaa !important;color:#fff;}
 .bwh {background:#eee;color:#000;}
-.bmg {background:#f0a ;color:#000;}
\ No newline at end of file
+.bmg {background:#f0a ;color:#000;}
+
+
+.outdated a {
+  color:#bbb;
+}
index e86e7afe09190329f0e1f427cefdd2c9842d743f..82e24b65632fd9309373a7e9f83e440696a926df 100755 (executable)
@@ -34,7 +34,7 @@ my $fqa = QA::OpenQAFile();
 # my @srv = qw( lxhadeb08 lxhadeb09 lxhadeb10 lxhadeb11 lxhadeb12 lxhadesdaq lxhadeb06 lxhadeb07 lxhadeb13 hadesdaq03 hadesdaq04 hades30 hadesp50 hadesp31 depcp418 hades33 lxhaddcs03 
 # lxhaddcs05 lxhaddcs06 lxhaddcs10 lxhaddcs11);
 # JAM 6.1.2020 - for the moment exlude hosts depcp418 and lxhaddcs03 not available
-my @srv = qw( lxhadeb08 lxhadeb09 lxhadeb10 lxhadeb11 lxhadeb12 lxhadesdaq lxhadeb06 lxhadeb07 lxhadeb13 hadesdaq03 hadesdaq04 hades30 hadesp50 hadesp31 hades33 lxhaddcs05 lxhaddcs06 lxhaddcs10 lxhaddcs11);
+my @srv = qw( lxhadeb08 lxhadeb09 lxhadeb10 lxhadeb11 lxhadeb12 lxhadesdaq lxhadeb06 lxhadeb07 lxhadeb13 hadesdaq03 hadesdaq04 hades30 hadesp50 hadesp31 hades33 hades63 lxhaddcs05 lxhaddcs06 lxhaddcs10 lxhaddcs11);
 
 my $template .= "\n<table class=\"colorfields cpu\">\n<tr><th>";
 for(my $d=1;$d<=32;$d++) {
index 312d48ed847f95ac00edf0935e5534c61fc54df5..99902dc85268e84cf0b6b5d8bce7776e9d2d985d 100755 (executable)
@@ -167,6 +167,7 @@ while(1) {
   $qastate = QA::OK      if ($IsobPress <= 2.0 && $IsobPress >= 0.9);    
   $qastate = QA::WARN_2  if (($IsobPress < 0.9) || ($IsobO2 >3000.0) || ($IsobRefR < 70.0));
   $qastate = QA::ERROR_2 if (($IsobPress > 2.0) || ($IsobPress < 0.7) || ($IsobO2 > 8000.0) || ($IsobRefR < 50.0));
+  $qastate = min(QA::WARN_2,$qastate) if $QA::RichHvOff;
 
   if( $timer % 4 == 0) {
     $value    = sprintf("%.1f|%.0f|%.0f",$IsobPress,$IsobO2,$IsobRefR);
index a0686c7c35d156cef0a616b0baa4d5c6c98aa0fa..59322a91932f3bfcff75c9856f6908be5161cd4b 100755 (executable)
@@ -115,7 +115,7 @@ while(1) {
   for my $v (@names) {
     next if $data->{$v}->{val} < 0;
     if($data->{$v}->{val} < 0.5) {
-      $qastate = max($qastate,QA::FATAL);
+      $qastate = max($qastate,QA::WARN2);
       $longtxt .= "$v stopped, ";
       $count++;
       }
index 97fd90e89ad476d471875087a30e7f9ad04ca945..7b6a9e42244b4f4ff48a43eb2c976778cf3bfa72 100644 (file)
@@ -3,6 +3,8 @@
 #StartTRB3
 #0x8880        0065        5          0        006
 #0x8890        1065        5          0        106
+#Veto
+0x8890         1275        5          0        127
 
 #new STS2
  0x8b10        0715           5         0         071
index f400861edd6c45f4ad09cb43a1783770899a13c5..7bb341bbe5e7f79e4c55e32e14b6cca4ee883207 100644 (file)
@@ -72,7 +72,7 @@
   0x8800      1       0x8800         1            0
   0x8810      1       0x8810         1            0
 # 0x8880      1       0x8880         1            0
-# 0x8890      1       0x8890         1            0
+  0x8890      1       0x8890         1            0
 # 0x8900      1       0x8900         1            0    
 # 0x8910      1       0x8910         1            0    
   
index ec8a45c4a919ef3ab4d135f32e344bc1b5182cc5..4e6e4fc67ff7899513205c438760d0191fca391d 120000 (symlink)
@@ -1 +1 @@
-register_configgbe_ip_2019.db
\ No newline at end of file
+register_configgbe_ip_2021.db
\ No newline at end of file
diff --git a/hub/register_configgbe_ip_2021.db b/hub/register_configgbe_ip_2021.db
new file mode 100644 (file)
index 0000000..bc5ba17
--- /dev/null
@@ -0,0 +1,336 @@
+###########################################################################################
+# JAM 17-10-2018 - introduce even more new server lxhadeb11, lxhadeb12, skip lxhadeb05
+# JAM2018 - setup for usage of NEW SERVERS lxhadeb08. lxhadeb09, lxhadeb10 - BNET only
+# JAM DEC-2019 - prepare for new trb3 datasources of rpc and tof
+# 0x84c0 - 0x84c5 : 6 new subevents for new RPC electronics. 
+# 0x86c0 to 0x86c6 are the new hubs for TOF (1 TRB3 each, 128 channels each, 7 TRB3 total)
+
+# Eventbuilders:
+# EB 0 is now used to define BNET destinations:
+
+# we define 5 input nodes in the setup for EB0- 
+# BNET_IN 1:   lxhadeb08  enp97s0f1  192.168.100.8   0xc0a86408 ports  50768 - 50805 
+# BNET_IN 2:   lxhadeb09  enp97s0f1  192.168.100.9   0xc0a86409 ports 
+# BNET_IN 3:   lxhadeb10  enp97s0f1  192.168.100.10  0xc0a8640a ports 
+# BNET_IN 4:   lxhadeb11  eno2       192.168.105.11  0xc0a8690b
+# BNET_IN 5:   lxhadeb12  eno2      192.168.105.12  0xc0a8690c
+
+# the 4 builder nodes lxhadeb08 -lxhadeb11 are assigned in start_eb_gbe.pl
+#####################
+
+
+
+# EB 1:   lxhadeb09  enp97s0f1  192.168.100.9   0xc0a86409 ports 50000 - 50099
+# EB 2:   lxhadeb10  enp97s0f1  192.168.100.10  0xc0a8640a ports 50000 - 50099
+# EB 3:   lxhadeb11  eth4       192.168.100.15  0xc0a8690b ports 50000 - 50099
+# EB 4:   lxhadeb08  enp97s0f1  192.168.100.8   0xc0a86408 ports 50256 - 50293
+# EB 5:   lxhadeb09  enp97s0f1  192.168.100.9   0xc0a86409 ports 50256 - 50293
+# EB 6:   lxhadeb10  enp97s0f1  192.168.100.10  0xc0a8640a ports 50256 - 50293
+# EB 7:   lxhadeb11  eno2       192.168.105.11  0xc0a8690b ports 50256 - 50293
+# EB 8:   lxhadeb08  enp97s0f1  192.168.100.8   0xc0a86408 ports 50512 - 50549
+# EB 9:   lxhadeb09  enp97s0f1  192.168.100.9   0xc0a86409 ports 50512 - 50549
+# EB 10:  lxhadeb10  enp97s0f1  192.168.100.10  0xc0a8640a ports 50512 - 50549
+# EB 11:  lxhadeb11  eno2       192.168.105.11  0xc0a8690b ports 50512 - 50549
+# EB 12:  lxhadeb08  enp97s0f1  192.168.100.8   0xc0a86408 ports 50768 - 50805
+# EB 13:  lxhadeb09  enp97s0f1  192.168.100.9   0xc0a86409 ports 50768 - 50805
+# EB 14:  lxhadeb10  enp97s0f1  192.168.100.10  0xc0a8640a ports 50768 - 50805 
+# EB 15:  lxhadeb11  eno2       192.168.105.11  0xc0a8690b ports 50768 - 50805 
+
+###########################################################################################
+
+
+#Broadcast to all GbE-Entities: 0xff7f
+
+!Register table
+#  Type  #   C0   #   C1   #   C2   #   C3   #   C4   #   C5   #   C6   #   C7   #   C8   #
+###########################################################################################
+# #old register set
+#     17     0xc100   0xc101   0xc102   0xc103   0xc104   0xc105   0xc106   0xc107   0xc108
+# #new memory locations
+#      0     0x8100   0x8101   0x8102   0x8103   0x8104   0x8105   0x8106   0x8107   0x8108
+#      1     0x8110   0x8111   0x8112   0x8113   0x8114   0x8115   0x8116   0x8117   0x8118
+#      2     0x8120   0x8121   0x8122   0x8123   0x8124   0x8125   0x8126   0x8127   0x8128
+#      3     0x8130   0x8131   0x8132   0x8133   0x8134   0x8135   0x8136   0x8137   0x8138
+#      4     0x8140   0x8141   0x8142   0x8143   0x8144   0x8145   0x8146   0x8147   0x8148
+#      5     0x8150   0x8151   0x8152   0x8153   0x8154   0x8155   0x8156   0x8157   0x8158
+#      6     0x8160   0x8161   0x8162   0x8163   0x8164   0x8165   0x8166   0x8167   0x8168
+#      7     0x8170   0x8171   0x8172   0x8173   0x8174   0x8175   0x8176   0x8177   0x8178
+#      8     0x8180   0x8181   0x8182   0x8183   0x8184   0x8185   0x8186   0x8187   0x8188
+#      9     0x8190   0x8191   0x8192   0x8193   0x8194   0x8195   0x8196   0x8197   0x8198
+#     10     0x81A0   0x81A1   0x81A2   0x81A3   0x81A4   0x81A5   0x81A6   0x81A7   0x81A8
+#     11     0x81B0   0x81B1   0x81B2   0x81B3   0x81B4   0x81B5   0x81B6   0x81B7   0x81B8
+#     12     0x81C0   0x81C1   0x81C2   0x81C3   0x81C4   0x81C5   0x81C6   0x81C7   0x81C8
+#     13     0x81D0   0x81D1   0x81D2   0x81D3   0x81D4   0x81D5   0x81D6   0x81D7   0x81D8
+#     14     0x81E0   0x81E1   0x81E2   0x81E3   0x81E4   0x81E5   0x81E6   0x81E7   0x81E8
+#     15     0x81F0   0x81F1   0x81F2   0x81F3   0x81F4   0x81F5   0x81F6   0x81F7   0x81F8
+
+
+#Sliced tables for broadcast settings follow:    
+#  Type  #   C0   #   C1   #   C2   #   C5   #   C8   #
+#######################################################    
+   100     0x8100   0x8101   0x8102   0x8105   0x8108
+   101     0x8110   0x8111   0x8112   0x8115   0x8118
+   102     0x8120   0x8121   0x8122   0x8125   0x8128
+   103     0x8130   0x8131   0x8132   0x8135   0x8138
+   104     0x8140   0x8141   0x8142   0x8145   0x8148
+   105     0x8150   0x8151   0x8152   0x8155   0x8158
+   106     0x8160   0x8161   0x8162   0x8165   0x8168
+   107     0x8170   0x8171   0x8172   0x8175   0x8178
+   108     0x8180   0x8181   0x8182   0x8185   0x8188
+   109     0x8190   0x8191   0x8192   0x8195   0x8198
+   110     0x81A0   0x81A1   0x81A2   0x81A5   0x81A8
+   111     0x81B0   0x81B1   0x81B2   0x81B5   0x81B8
+   112     0x81C0   0x81C1   0x81C2   0x81C5   0x81C8
+   113     0x81D0   0x81D1   0x81D2   0x81D5   0x81D8
+   114     0x81E0   0x81E1   0x81E2   0x81E5   0x81E8
+   115     0x81F0   0x81F1   0x81F2   0x81F5   0x81F8
+
+#Table for individual settings   
+#  Type  #   C3   #   C4   #   C6   #   C7   #
+##############################################
+    0     0x8103   0x8104   0x8106   0x8107  
+    1     0x8113   0x8114   0x8116   0x8117  
+    2     0x8123   0x8124   0x8126   0x8127  
+    3     0x8133   0x8134   0x8136   0x8137  
+    4     0x8143   0x8144   0x8146   0x8147  
+    5     0x8153   0x8154   0x8156   0x8157  
+    6     0x8163   0x8164   0x8166   0x8167  
+    7     0x8173   0x8174   0x8176   0x8177  
+    8     0x8183   0x8184   0x8186   0x8187  
+    9     0x8193   0x8194   0x8196   0x8197  
+   10     0x81A3   0x81A4   0x81A6   0x81A7  
+   11     0x81B3   0x81B4   0x81B6   0x81B7  
+   12     0x81C3   0x81C4   0x81C6   0x81C7  
+   13     0x81D3   0x81D4   0x81D6   0x81D7  
+   14     0x81E3   0x81E4   0x81E6   0x81E7  
+   15     0x81F3   0x81F4   0x81F6   0x81F7  
+    
+    
+    
+
+
+!Value table
+
+
+
+
+#                    Dest Port    Src MAC      Src IP        Src Port #          #   TDC Calib flag
+# Hub    #  Type  #     C3     #     C4     #     C6     #     C7     #   EB IP  # 1:NO 1:linear 2:complex 11:linear with ToT 15ns
+##########################################################################################################
+# JAM 25-may-2018: this first EB will be also used as pseudo node to setup the dabc bnet
+# JAM 17-oct-2018: adjusted for new server hardware only
+# last column will distribute to bnet input nodes  
+# EB_LUT must be 0x1 in CTS for bnet mode
+# 0xc0a86408   lxhadeb08  mac 90:e2:ba:f7:9b:b5  192.168.100.8
+# 0xc0a86409   lxhadeb09, mac 90:e2:ba:f7:cf:a1  192.168.100.9  
+# 0xc0a8640a   lxhadeb10, mac 90:e2:ba:e2:c9:95  192.168.100.10
+# 0xc0a8690b   lxhadeb11  mac ac:1f:6b:66:2a:29  192.168.105.11  
+# 0xc0a8690c   lxhadeb12  mac ac:1f:6b:64:73:17  192.168.105.12  
+# 0xc0a8640f   #lxhadeb05, mac 00:1b:21:57:b0:95  192.168.100.15
+# first: replace lxhadeb05 by lxhadeb11
+# second: distribute several ones to lxhadeb12
+
+# note that we also need to set same destination ips in the hub table at the end of this file!
+#
+#lxhadebXX, EB1 XX
+  0x8000     0        0xc65B     0xdead8000   0xc0a86480     0xc65B     0xc0a86408 0  # OLD cts  -lxhadeb08
+  0x8100     0        0xc651     0xdead8100   0xc0a86481     0xc651     0xc0a86408 0  # OLD    mdc old?  lxhadeb08
+#  0x8110     0        0xc652     0xdead8110   0xc0a86482     0xc652     0xc0a8690b 0  # OLD    mdc old   lxhadeb11
+  0x8400     0        0xc656     0xdead8400   0xc0a864AF     0xc67F     0xc0a8640a 0  # rpc lxhadeb10
+  0x8410     0        0xc657     0xdead8410   0xc0a864AF     0xc67F     0xc0a8640a 0  # rpc lxhadeb10 
+  0x8420     0        0xc658     0xdead8420   0xc0a86488     0xc658     0xc0a8690b 0  # OLD    rpc old   lxhadeb11 
+  0x8600     0        0xc659     0xdead8600   0xc0a86489     0xc659     0xc0a8690b 0  # tof lxhadeb11 
+  0x8700     0        0xc65A     0xdead8700   0xc0a8648A     0xc65A     0xc0a8690b 0  # fw  lxhadeb11 
+  0x8800     0        0xc650     0xdead8800   0xc0a8648B     0xc650     0xc0a8690b 0  # central-cts lxhadeb11  
+  0x8880     0        0xc65D     0xdead8A00   0xc0a8648D     0xc65D     0xc0a86409 2  # start   - lxhadeb09
+  0x8890     0        0xc65F     0xdead8890   0xc0a8648F     0xc65F     0xc0a86409 0  # veto      lxhadeb09
+  0x8900     0        0xc65C     0xdead8900   0xc0a8648C     0xc65C     0xc0a86409 0  #  pion1     lxhadeb09
+  0x8910     0        0xc65E     0xdead8910   0xc0a8648E     0xc65E     0xc0a86409 0  #  pion2     lxhadeb09
+  0x1000     0        0xc660     0xdead1000   0xc0a86490     0xc660     0xc0a86408 0  # mdc - lxhadeb08 
+  0x1010     0        0xc661     0xdead1010   0xc0a86491     0xc661     0xc0a86408 0  # mdc - lxhadeb08 
+  0x1020     0        0xc662     0xdead1020   0xc0a86492     0xc662     0xc0a86408 0  # mdc - lxhadeb08 
+  0x1030     0        0xc663     0xdead1030   0xc0a86493     0xc663     0xc0a86408 0  # mdc - lxhadeb08 
+  0x1040     0        0xc664     0xdead1040   0xc0a86494     0xc664     0xc0a86408 0  # mdc - lxhadeb08
+  0x1050     0        0xc665     0xdead1050   0xc0a86495     0xc665     0xc0a86408 0  # mdc - lxhadeb08
+  0x1100     0        0xc666     0xdead1100   0xc0a86496     0xc666     0xc0a86408 0  # mdc - lxhadeb08
+  0x1110     0        0xc667     0xdead1110   0xc0a86497     0xc667     0xc0a86408 0  # mdc - lxhadeb08
+  0x1120     0        0xc668     0xdead1120   0xc0a86498     0xc668     0xc0a86409 0  # mdc - lxhadeb09 - minimum for 09
+  0x1130     0        0xc669     0xdead1130   0xc0a86499     0xc669     0xc0a8640a 0  # mdc - lxhadeb10 - min for 10
+  0x1140     0        0xc66A     0xdead1140   0xc0a8649A     0xc66A     0xc0a8690b 0  # mdc - lxhadeb11 - min for 11 
+  0x1150     0        0xc66B     0xdead1150   0xc0a8649B     0xc66B     0xc0a8690c 0  # mdc - lxhadeb12 - min for 12
+  0x1160     0        0xc66C     0xdead1160   0xc0a8649C     0xc66C     0xc0a8690b 0  # OLD mdc - lxhadeb11 
+  0x8a00     0        0xc676     0xdead8a00   0xc0a864A6     0xc676     0xc0a86409 1  # ecal- lxhadeb09
+  0x8a01     0        0xc677     0xdead8a01   0xc0a864A7     0xc677     0xc0a86409 1  # ecal- lxhadeb09
+  0x8a02     0        0xc678     0xdead8a02   0xc0a864A8     0xc678     0xc0a86409 1  # ecal- lxhadeb09
+  0x8a03     0        0xc679     0xdead8a03   0xc0a864A9     0xc679     0xc0a86409 1  # ecal- lxhadeb09
+  0x8a04     0        0xc67a     0xdead8a04   0xc0a864AA     0xc67A     0xc0a8690c 1  # ecal- lxhadeb09 -> lxhadeb12
+  0x8a05     0        0xc67b     0xdead8a05   0xc0a864AB     0xc67B     0xc0a8690c 1  # ecal- lxhadeb09 -> lxhadeb12  
+  0x83c0     0        0xc67c     0xdead83c0   0xc0a864AC     0xc67C     0xc0a8690c 11  # rich lxhadeb12 
+  0x83c1     0        0xc67d     0xdead83c1   0xc0a864AD     0xc67D     0xc0a8690c 11  # rich lxhadeb12 
+  0x83c2     0        0xc67e     0xdead83c2   0xc0a864AE     0xc67E     0xc0a8690c 11  # rich lxhadeb12 
+  0x83c3     0        0xc67f     0xdead83c3   0xc0a864AF     0xc67F     0xc0a8640a 11  # rich lxhadeb10
+  0x83c4     0        0xc680     0xdead83c4   0xc0a864B0     0xc680     0xc0a8640a 11  # rich lxhadeb10
+  0x83c5     0        0xc681     0xdead83c5   0xc0a864B1     0xc681     0xc0a8640a 11  # rich lxhadeb10 
+  0x83c6     0        0xc682     0xdead83c6   0xc0a864B2     0xc682     0xc0a8690c 11  # rich lxhadeb12 
+  0x83c7     0        0xc683     0xdead83c7   0xc0a864B3     0xc683     0xc0a8690c 11  # rich lxhadeb12 
+  0x83c8     0        0xc684     0xdead83c8   0xc0a864B4     0xc684     0xc0a86408 11  # rich lxhadeb08 
+  0x83c9     0        0xc685     0xdead83c9   0xc0a864B5     0xc685     0xc0a86408 11  # rich lxhadeb08
+  0x83ca     0        0xc686     0xdead83ca   0xc0a864B6     0xc686     0xc0a8690b 11  # rich lxhadeb11 
+  0x83cb     0        0xc687     0xdead83cb   0xc0a864B7     0xc687     0xc0a8690b 11  # rich lxhadeb11   
+  0x8810     0        0xc653     0xdead8810   0xc0a864B8     0xc653     0xc0a8690b 0  # central-aux lxhadeb11    
+  0x84c0     0        0xc654     0xdead84c0   0xc0a864B9     0xc654     0xc0a8640a 2  # rpc sector 1 lxhadeb10  
+  0x84c1     0        0xc655     0xdead84c1   0xc0a864BA     0xc655     0xc0a8640a 2  # rpc sector 2 lxhadeb10  
+  0x84c2     0        0xc656     0xdead84c2   0xc0a864BB     0xc656     0xc0a8640a 2  # rpc sector 3 lxhadeb10  
+  0x84c3     0        0xc657     0xdead84c3   0xc0a864BC     0xc657     0xc0a8690b 2  # rpc sector 4 lxhadeb11  
+  0x84c4     0        0xc658     0xdead84c4   0xc0a864BD     0xc658     0xc0a8690b 2  # rpc sector 4 lxhadeb11  
+  0x84c5     0        0xc651     0xdead84c4   0xc0a864BE     0xc651     0xc0a8690b 2  # rpc sector 4 lxhadeb11   
+  0x86c0     0        0xc690     0xdead86c0   0xc0a864C0     0xc690     0xc0a86408 2  # tof hub 0 lxhadeb08
+  0x86c1     0        0xc691     0xdead86c1   0xc0a864C1     0xc691     0xc0a86409 2  # tof hub 1 lxhadeb09
+  0x86c2     0        0xc692     0xdead86c2   0xc0a864C2     0xc692     0xc0a8640A 2  # tof hub 2 lxhadeb10
+  0x86c3     0        0xc693     0xdead86c3   0xc0a864C3     0xc693     0xc0a8690B 2  # tof hub 3 lxhadeb11
+  0x86c4     0        0xc694     0xdead86c4   0xc0a864C4     0xc694     0xc0a8690B 2  # tof hub 4 lxhadeb11
+  0x86c5     0        0xc695     0xdead86c5   0xc0a864C5     0xc695     0xc0a8690C 2  # tof hub 5 lxhadeb12
+  0x86c6     0        0xc696     0xdead86c6   0xc0a864C6     0xc696     0xc0a8690C 2  # tof hub 6 lxhadeb12
+  0x8b00     0        0xc6B0     0xdead8b00   0xc0a864D0     0xc6B0     0xc0a86409 1  # STS1 0 lxhadeb09
+  0x8b01     0        0xc6B1     0xdead8b01   0xc0a864D1     0xc6B1     0xc0a86409 1  # STS1 1 lxhadeb09
+  0x8b02     0        0xc6B2     0xdead8b02   0xc0a864D2     0xc6B2     0xc0a8690C 1  # STS1 2 lxhadeb12
+  0x8b03     0        0xc6B3     0xdead8b03   0xc0a864D3     0xc6B3     0xc0a8690C 1  # STS1 3 lxhadeb12
+  0x8b10     0        0xc6B4     0xdead8b10   0xc0a864D9     0xc6B4     0xc0a8640a 1  # STS2 0 lxhadeb10  
+  0x8b11     0        0xc6B5     0xdead8b11   0xc0a864DA     0xc6B5     0xc0a8640a 1  # STS2 1 lxhadeb10  
+  0x8b12     0        0xc6B6     0xdead8b12   0xc0a864DB     0xc6B6     0xc0a8640a 1  # STS2 2 lxhadeb10  
+  0x8b13     0        0xc6B7     0xdead8b13   0xc0a864DC     0xc6B7     0xc0a8690b 1  # STS2 3 lxhadeb11  
+  0x8b14     0        0xc6B8     0xdead8b14   0xc0a864DD     0xc6B8     0xc0a8690b 1  # STS2 4 lxhadeb11  
+  0x8b15     0        0xc6B9     0xdead8b15   0xc0a864DE     0xc6B9     0xc0a8690b 1  # STS2 5 lxhadeb11      
+  0x8c00     0        0xc6BA     0xdead8c00   0xc0a864C0     0xc6BA     0xc0a86408 2  # fw-RPC 0 lxhadeb08
+  0x8c10     0        0xc6BB     0xdead8c01   0xc0a864C0     0xc6BB     0xc0a86408 2  # fw-RPC 1 lxhadeb08  
+  0x8d00     0        0xc6BC     0xdead86c1   0xc0a864C1     0xc6BC     0xc0a86409 2  # inner-tof lxhadeb09
+
+  #######################################################################################################################
+#######################################################################################################################
+
+  
+
+# hub setup - destination macs and ips  
+  
+#############################################################################  
+#   
+#  lxhadeb08  enp97s0f1  90:e2:ba:f7:9b:b5     192.168.100.8   0xc0a86408
+#  lxhadeb09  enp97s0f1  90:e2:ba:f7:cf:a1     192.168.100.9   0xc0a86409 
+#  lxhadeb10  enp97s0f1  90:e2:ba:e2:c9:95     192.168.100.10  0xc0a8640a 
+#  lxhadeb11  eno2       ac:1f:6b:66:2a:29     192.168.105.11  0xc0a8690b
+#  lxhadeb12  eno2      ac:1f:6b:64:73:17      192.168.105.12  0xc0a8690c
+
+# second gbe
+#  lxhadeb11  enp19s0f1  ac:1f:6b:8b:62:f1     192.168.105.11  0xc0a8690b
+#  lxhadeb12  enp19s0f1         ac:1f:6b:8b:60:1f      192.168.105.12  0xc0a8690c
+
+
+# EB 3:   lxhadeb05  eth4       192.168.100.15  0xc0a8640f 
+   
+  
+#                    Dest MAC    Dest MAC       Dest IP       Src MAC    Packet Size
+# Hub    #  Type  #     C0     #     C1     #     C2     #      C5     #     C8     #
+#####################################################################################
+ # 0xff7f    100     0xbaf79bb5     0x90e2     0xc0a86408      0x0230       0x0578     #lxhadeb08  EB0 90:e2:ba:f7:9b:b5  192.168.100.8
+ # JAM 27-apr-2018: for DABC-BNET (Type 100) the destination ips have to be set here for individual hubs
+# the ip entries in above table for eb1 needs to match this to configure EBs!
+ # 0xff7f    100     0x2157b095     0x001B     0xc0a8640f      0x0230       0x0578     #dummies to lxhadeb05, EB3 00:1b:21:57:b0:95  192.168.100.15
+#
+  0x8000     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #     OLD old cts -lxhadeb08 ####
+  0x8100     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #     OLD mdc old?  lxhadeb08
+#  0x8110     100    0x6b8b62f1    0xac1f    0xc0a8690b     0x0230        0x0578 #     OLD mdc old   lxhadeb11
+  0x8400     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578  #  rpc lxhadeb10
+  0x8410     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578  #  rpc lxhadeb10
+#   0x8420     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #     OLD rpc old   lxhadeb11 ######
+  0x8600     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  tof lxhadeb11 
+  0x8700     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  fw  lxhadeb11 
+  0x8800     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  central-cts lxhadeb11 ######  
+  0x8880     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  start   - lxhadeb09
+  0x8890     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  veto      lxhadeb09
+  0x8900     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  pion1     lxhadeb09
+  0x8910     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  pion2     lxhadeb09
+  0x1000     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08 
+  0x1010     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08 
+  0x1020     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08 
+  0x1030     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08 
+  0x1040     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08
+  0x1050     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08 
+  0x1100     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08
+  0x1110     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  mdc - lxhadeb08
+  0x1120     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  mdc - lxhadeb09   - minimum if rich is off
+  0x1130     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  mdc - lxhadeb10   - minimum if ecal is off
+  0x1140     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  mdc - lxhadeb11   - minimum subevent for 11 
+  0x1150     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  mdc - lxhadeb12   - minimum sub for 12
+  0x1160     100    0x6b662a29     0xac1f    0xc0a8690b     0x0230        0x0578 #  mdc - OLD lxhadeb11 ##### old?
+  0x8a00     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  ecal- lxhadeb09
+  0x8a01     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  ecal- lxhadeb09
+  0x8a02     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  ecal- lxhadeb09
+  0x8a03     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  ecal- lxhadeb09
+  0x8a04     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  ecal- lxhadeb09 -> lxhadeb12
+  0x8a05     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  ecal- lxhadeb09  -> lxhadeb12
+  0x83c0     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  rich - lxhadeb12  
+  0x83c1     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  rich - lxhadeb12 
+  0x83c2     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  rich - lxhadeb12 
+  0x83c3     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  rich - lxhadeb10
+  0x83c4     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  rich - lxhadeb10
+  0x83c5     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  rich - lxhadeb10
+  0x83c6     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  rich - lxhadeb12 
+  0x83c7     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  rich - lxhadeb12 
+  0x83c8     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  rich - lxhadeb08
+  0x83c9     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  rich - lxhadeb08                                                                                   
+  0x83ca     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  rich - lxhadeb11                                                               
+  0x83cb     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  rich - lxhadeb11 
+  0x8810     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  central aux - lxhadeb11
+  0x84c0     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  rpc sector 1 lxhadeb10  
+  0x84c1     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  rpc sector 2 lxhadeb10  
+  0x84c2     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  rpc sector 3 lxhadeb10   
+  0x84c3     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  rpc sector 4 lxhadeb11           
+  0x84c4     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  rpc sector 5 lxhadeb11      
+  0x84c5     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  rpc sector 6 lxhadeb11       
+  0x86c0     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  tof hub 0  lxhadeb08  
+  0x86c1     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  tof hub 1  lxhadeb09  
+  0x86c2     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578 #  tof hub 2  lxhadeb10
+  0x86c3     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  tof hub 3 lxhadeb11
+  0x86c4     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578 #  tof hub 4 lxhadeb11
+  0x86c5     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  tof hub 5 lxhadeb12 
+  0x86c6     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  tof hub 6 lxhadeb12
+  0x8b00     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  STS1 0  lxhadeb09  
+  0x8b01     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  STS1 1  lxhadeb09
+  0x8b02     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  STS1 2  lxhadeb12
+  0x8b03     100    0x6b8b601f     0xac1f    0xc0a8690c     0x0230        0x0578 #  STS1 3  lxhadeb12  
+  0x8b10     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578  # STS2 0 lxhadeb10  
+  0x8b11     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578  # STS2 1 lxhadeb10  
+  0x8b12     100    0xbae2c995     0x90e2    0xc0a8640a     0x0230        0x0578  # STS2 2 lxhadeb10  
+  0x8b13     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578  # STS2 3 lxhadeb11  
+  0x8b14     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578  # STS2 4 lxhadeb11  
+  0x8b15     100    0x6b8b62f1     0xac1f    0xc0a8690b     0x0230        0x0578  # STS2 5 lxhadeb11 
+  
+  0x8c00     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  fwRPC? - lxhadeb08
+  0x8c10     100    0xbaf79bb5     0x90e2    0xc0a86408     0x0230        0x0578 #  fwRPC? - lxhadeb08
+  0x8d00     100    0xbaf7cfa1     0x90e2    0xc0a86409     0x0230        0x0578 #  innertof? lxhadeb09
+#   0xff7f    101     0xbaf7cfa1     0x90e2     0xc0a86409      0x0230       0x0578     #lxhadeb09, EB1 90:e2:ba:f7:cf:a1  192.168.100.9   
+#   0xff7f    102     0xbae2c995     0x90e2     0xc0a8640a      0x0230       0x0578     #lxhadeb10, EB2 90:e2:ba:e2:c9:95  192.168.100.10
+#   0xff7f    103     0x6b8b62f1     0xac1f     0xc0a8690b      0x0230       0x0578     #lxhadeb11, EB3 ac:1f:6b:66:2a:29  192.168.105.11 
+# #  
+#   0xff7f    104     0xbaf79bb5     0x90e2     0xc0a86408      0x0230       0x0578     #lxhadeb08  EB0 90:e2:ba:f7:9b:b5  192.168.100.8
+#   0xff7f    105     0xbaf7cfa1     0x90e2     0xc0a86409      0x0230       0x0578     #lxhadeb09, EB1 90:e2:ba:f7:cf:a1  192.168.100.9 
+#   0xff7f    106     0xbae2c995     0x90e2     0xc0a8640a      0x0230       0x0578     #lxhadeb10, EB2 90:e2:ba:e2:c9:95  192.168.100.10
+#   0xff7f    107     0x6b8b62f1     0xac1f     0xc0a8690b      0x0230       0x0578     #lxhadeb11, EB3 ac:1f:6b:66:2a:29  192.168.105.11
+# #  
+#   0xff7f    108     0xbaf79bb5     0x90e2     0xc0a86408      0x0230       0x0578     #lxhadeb08  EB0 90:e2:ba:f7:9b:b5  192.168.100.8
+#   0xff7f    109     0xbaf7cfa1     0x90e2     0xc0a86409      0x0230       0x0578     #lxhadeb09, EB1 90:e2:ba:f7:cf:a1  192.168.100.9 
+#   0xff7f    110     0xbae2c995     0x90e2     0xc0a8640a      0x0230       0x0578     #lxhadeb10, EB2 90:e2:ba:e2:c9:95  192.168.100.10
+#   0xff7f    111     0x6b8b62f1     0xac1f     0xc0a8690b      0x0230       0x0578     #lxhadeb11, EB3 ac:1f:6b:66:2a:29  192.168.105.11
+# #  
+#   0xff7f    112     0xbaf79bb5     0x90e2     0xc0a86408      0x0230       0x0578    #lxhadeb08
+#   0xff7f    113     0xbaf7cfa1     0x90e2     0xc0a86409      0x0230       0x0578    #lxhadeb09
+#   0xff7f    114     0xbae2c995     0x90e2     0xc0a8640a      0x0230       0x0578    #lxhadeb10
+#   0xff7f    115    0x6b662a29     0xac1f     0xc0a8690b      0x0230       0x0578     #lxhadeb11 no bnet ****
+# #  0xff7f    115     0x4877f487     0x0030     0xc0a86432      0x0230       0x0578    #lxhadesdaq
+                                                                                    
+                                                                                    
+                                                                                    
+                                                                                    
+                                                                                    
index bc727b18c9edebcad71b36b27abada11c3055a04..ac423ee290c7924e029c13081f1625b60d7f921a 100644 (file)
@@ -3,28 +3,20 @@
 # Addr     On/Off     Name              DataSize
 #Start must be the first for EvtId
 0x8800      1         CentralCTS       low
-#0x8810      0         CentralAux        low
-#0x8400      0         RPC123            mid
-#0x8410      0         RPC456            mid
+#0x8880      1         StartTRB3         low
+0x8890      1         Veto             mid
 0x84c0      1         RPCnew1           mid
 0x84c1      1         RPCnew2           mid
 0x84c2      1         RPCnew3           mid
 0x84c3      1         RPCnew4           mid
 0x84c4      1         RPCnew5           mid
 0x84c5      1         RPCnew6           mid
-#0x8600      0         TOF               low
 0x86c0      1         TOFnew1           mid
 0x86c1      1         TOFnew2           mid
 0x86c2      1         TOFnew3           mid
-0x86c3      1        TOFnew4           mid
+0x86c3      1         TOFnew4           mid
 0x86c4      1         TOFnew5           mid
 0x86c5      1         TOFnew6           mid
-0x86c6      0         TOFnew7           mid
-#0x8700      0         FW                low
-#0x8880      0         StartTRB3         low
-#0x8890      0         VetoTRB3          low5t
-#0x8900      0         Pion1             mid
-#0x8910      0         Pion2             mid
 0x1000      1         MDC12sec1         high
 0x1010      1         MDC12sec2         high
 0x1020      1         MDC12sec3         high
 0x8a02      1         ECal2             mid
 0x8a03      1         ECal3             mid
 0x8a04      1         ECal4             mid
-0x8a05      0         ECal5             mid
-0x83c0      0         RICH0             mid
-0x83c1      0         RICH1             mid
-0x83c2      0         RICH2             mid
-0x83c3      0         RICH3             mid
-0x83c4      0         RICH4             mid
-0x83c5      0         RICH5             mid
-0x83c6      0         RICH6             mid
-0x83c7      0         RICH7             mid
-0x83c8      0         RICH8             mid
-0x83c9      0         RICH9             mid
-0x83ca      0         RICHa             mid
-0x83cb      0         RICHb             mid
-0x8b00      0         STS1-0             mid
-0x8b01      0         STS1-1             mid
-0x8b02      0         STS1-2             mid
-0x8b03      0         STS1-3             mid
+0x8a05      1         ECal5             mid
+0x83c0      1         RICH0             mid
+0x83c1      1         RICH1             mid
+0x83c2      1         RICH2             mid
+0x83c3      1         RICH3             mid
+0x83c4      1         RICH4             mid
+0x83c5      1         RICH5             mid
+0x83c6      1         RICH6             mid
+0x83c7      1         RICH7             mid
+0x83c8      1         RICH8             mid
+0x83c9      1         RICH9             mid
+0x83ca      1         RICHa             mid
+0x83cb      1         RICHb             mid
+0x8b00      1         STS1-0             mid
+0x8b01      1         STS1-1             mid
+0x8b02      1         STS1-2             mid
+0x8b03      1         STS1-3             mid
 0x8b10      1         STS2-0             mid
 0x8b11      1         STS2-1             mid
 0x8b12      1         STS2-2             mid
 0x8b13      1         STS2-3             mid
 0x8b14      1         STS2-4             mid
 0x8b15      1         STS2-5             mid
+#0x8c00      1        FRPC-0             mid
+#0x8c10      1        FRPC-1             mid
+#0x8d00      1        ITOF             mid
index 4a2babe54d9abb0d34911a01c2b018cfa38a9e91..82a96fbb4152ddd1efcdfad21b2bc7261bfe630d 100755 (executable)
@@ -112,7 +112,7 @@ switchport.pl 0x1024 7 off  #2057, 19/03/12
 #trbcmd w 0x0003 0xa0f3 0xff1
 
 # turn off multi event queue, as these garble the data from the TRB2s
-# stoptrigger.sh; trbcmd w 0xff7f 0x8307 0 ; starttrigger.sh
+#stoptrigger.sh; trbcmd w 0xff7f 0x8307 0 ; starttrigger.sh
 
 
 scp /home/hadaq/oper/daq2ora/daq2ora_current.txt hadesp33:/home/hadaq/trbsoft/hadesdaq/hmon/files/ 1>/dev/null &
index 36e0177a72a321a5a1f489945f8164e3f4883656..0d2c9614034211488b545b858f54f5a8f56be4a0 120000 (symlink)
@@ -1 +1 @@
-thresholds/register_thresholds_jul14.db
\ No newline at end of file
+thresholds/register_thresholds_30.db
\ No newline at end of file
index c71694658444c24d04fc6c712d48f9a20cde37c4..52dcfcff11c2ee8f25c15ef76671b5dba55b5713 100755 (executable)
@@ -43,7 +43,8 @@ my $pguser      = 'report';
 my $pgpass      = 'please_give_postgres_password';
 
 my $pgdatabase  = 'archive';
-my $pghost      = 'lxhadeb05.gsi.de';
+my $pghost      = 'lxhaddcs10.gsi.de';
+#'lxhadeb05.gsi.de';
 my $pgport      = '5432';
 
 # JAM real passwords are delivered by command line options now.
index 0a2818fe9d9a0579c0e0d1698fc8962f0da97381..4a4ba8b8b279ff41f891c3771b23f95ccf1edd44 100755 (executable)
@@ -7,4 +7,4 @@ export ORACLE_HOME=/usr/lib/oracle/12.1/client64
 export PATH=$PATH:$ORACLE_HOME/bin
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
 cd /home/hadaq/oper/postgres2ora/
-/home/hadaq/trbsoft/daq/oracle/postgres2ora.pl -opass hades -ppass yyyyyy -o >> postgres2ora.log 2>&1
+/home/hadaq/trbsoft/daq/oracle/postgres2ora.pl -opass hades -ppass yyyyyy -v -o >> postgres2oradebug.log 2>&1
index 0619c9fa069bbbcd6aaa3ca23c66a187b2bc9a32..77edf2064e8f12b6feed8cf2f05f5cf2f35214c2 100755 (executable)
@@ -241,7 +241,7 @@ sub checkPrefix()
        # my @prefixList = qw/be co ri ru sh tr ve st to md rp te pu fw/;
     #my @prefixList = qw/be co ri ru sh tr ve st to md rp fw pt tc ec/;
     
-    my @prefixList = qw/be co ri ru sh tr ve st to md rp fw pt tc ec fd/;
+    my @prefixList = qw/be co ri ru sh tr ve st to md rp fw pt tc ec fd fs fr it/;
     my $pref;
 
     foreach $pref (@prefixList) {
index 3e35d64b22a35758722086a51d8e2e03dae8776a..964bc51a5456cab786fb32bb1e7b26159cef4cac 100755 (executable)
@@ -2,6 +2,7 @@
 ###################
 # JAM2019 - cronjob script to gather accumulated run statistics from oracle
 # v0.1 on 28-feb-2019 (j.adamczewski@gsi.de)
+# v0.1b on 9-dec-2020 for beamtime feb21 JAM
 
 use English;
 use strict;
@@ -103,13 +104,13 @@ print "Oracle Connected!\n" if($opt_verb);
 
 
 
-my $summary_file = "/home/hadaq/oper/oraruns/runs_mar19.txt";
-my $latest_file  = "/home/hadaq/oper/oraruns/current_mar19.txt";
+my $summary_file = "/home/hadaq/oper/oraruns/runs_feb21.txt";
+my $latest_file  = "/home/hadaq/oper/oraruns/current_feb21.txt";
 
 
 #exit(0); 
 # test only connection up to here
-my $beamtime = 'MAR19';
+my $beamtime = 'FEB21';
 my $runtype = 'BEAM';
 
 
index f04a764ed55d61005158d00acd446f2510ecfca7..091f4fda7ef54e59720380f028671cb0f6ec8bb2 100644 (file)
@@ -14,6 +14,6 @@ trbcmd loadbit 0xfe51 0x7114 0x00ff0000 0x00050000   #minimum event size
 
 load_register register_tdc_rich.db
 
-trbcmd w 0x0110 0xe120 0x240 # set to 36°
+trbcmd w 0x0110 0xe120 0x250 # set to 37°
 
 #trbcmd w 0x0110 0xe120 0x400
index fd73fbf439078073f6ccf9804d6f8c1a19bc75e7..776e4eb1c29c476dc6fbb820f6c26c0f620de70c 100644 (file)
@@ -5,8 +5,8 @@
 #0x5002       0062        2           0       0
 #0x5003       0063        3           0       0
 
-0x5010       1060        0           0       0
-0x5011       1061        1           0       0
-0x5012       1062        2           0       0
-0x5013       1063        3           0       0
+0x5010       1270        0           0       0
+0x5011       1271        1           0       0
+0x5012       1272        2           0       0
+0x5013       1273        3           0       0
 
diff --git a/start/serials_start_trb3.db b/start/serials_start_trb3.db
deleted file mode 100644 (file)
index acef26c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#Serial numbers of start/veto trbs and their unique ids
-
-# s/n #      unique id
-###########################
- 0740   0x6800000313245528
- 0741   0x6e00000313246028
- 0742   0xa700000313245f28
- 0743   0x3100000313245628
-
- 1060   0x68000004f9e34528
- 1061   0x40000004f9e00b28
- 1062   0xea000004fa000028
- 1063   0xc7000004fa00c628
-
- 0065   0xc4000003481ef228
- 0060   0xb5000003482d3d28
- 0061   0xd5000003481eef28
- 0062   0xec00000348284328
- 0063   0x34000003482d1c28
index 3ec74e93592e553354ad21640f8d51382b165f89..91be4a82574d451dd1ef9f55208cd2540ef06860 100644 (file)
@@ -4,7 +4,7 @@
 #Set all addresses
 !ifndef RESTART 
 #  set_addresses  serials_start.db   addresses_start.db     #addresses for Start/Veto TRB
-  set_addresses  serials_start_trb3.db   addresses_start_trb3.db     #addresses for Start/Veto TRB
+  set_addresses  serials_trb3.db   addresses_start_trb3.db     #addresses for Start/Veto TRB
   set_addresses  serials_trb3sc.db   addresses_trb3sc.db
 !endif
 
 #TRB3 settings
 
 #Triggerless mode, calib downscaling
-trbcmd setbit 0x5000 0xc800 0x40003000
-trbcmd setbit 0x5001 0xc800 0x40003000
-trbcmd setbit 0x5002 0xc800 0x40003000
-trbcmd setbit 0x5003 0xc800 0x40003000
+#trbcmd setbit 0x5000 0xc800 0x40003000
+#trbcmd setbit 0x5001 0xc800 0x40003000
+#trbcmd setbit 0x5002 0xc800 0x40003000
+#trbcmd setbit 0x5003 0xc800 0x40003000
 
 # -2us +1000ns trigger window
 #trbcmd w 0xfe48 0xc801 0x80c80190
 # -2us +200ns trigger window
 #trbcmd w 0xfe48 0xc801 0x80280190
 #-1000 +50ns window
- trbcmd w 0xfe48 0xc801 0x800a00c8
+# trbcmd w 0xfe48 0xc801 0x800a00c8
 
 #Data limit
-trbcmd w 0xfe48 0xc804 32          #32 words per channel
-trbcmd w 0xfe48 0x7111 1024        #1024 words per FPGA
+#trbcmd w 0xfe48 0xc804 32          #32 words per channel
+#trbcmd w 0xfe48 0x7111 1024        #1024 words per FPGA
 
 
 #Start inputs
 #trbcmd w 0x5000 0xc802 0xfffcfcfc # channel 0-31
 #trbcmd w 0x5000 0xc803 0x00000000 # channel 32-63
 
-trbcmd w 0x5000 0xc802 0xfeff # enable 16 channels in 0x5000  #channel 9 (strip 15) off because of noise 2019-03-26
-trbcmd w 0x5001 0xc802 0xffff # enable 16 channels in 0x5001
-trbcmd w 0x5002 0xc802 0x0fff # enable 8 (Veto) and 4 (HALO) channels in 0x5002
-trbcmd w 0x5003 0xc802 0x0000 # enable 0 channels in 0x5003
+#trbcmd w 0x5000 0xc802 0xfeff # enable 16 channels in 0x5000  #channel 9 (strip 15) off because of noise 2019-03-26
+#trbcmd w 0x5001 0xc802 0xffff # enable 16 channels in 0x5001
+#trbcmd w 0x5002 0xc802 0x0fff # enable 8 (Veto) and 4 (HALO) channels in 0x5002
+#trbcmd w 0x5003 0xc802 0x0000 # enable 0 channels in 0x5003
 
 
 #Trigger Generator Settings
-trbcmd w 0x5000 0xdf00 0xfeee
-trbcmd w 0x5001 0xdf00 0x0000
-trbcmd w 0x5002 0xdf00 0xfeee
+#trbcmd w 0x5000 0xdf00 0xfeee
+#trbcmd w 0x5001 0xdf00 0x0000
+#trbcmd w 0x5002 0xdf00 0xfeee
 #trbcmd w 0x5003 0xdf00 0x7e1c   #second input channel in 5003 shows permanent high
 
-trbcmd w 0x5003 0xdf00 0x7e1e   
-trbcmd w 0x8880 0xcf00 0x1101   #Forward to CTS via central FPGA
+#trbcmd w 0x5003 0xdf00 0x7e1e   
+#trbcmd w 0x8880 0xcf00 0x1101   #Forward to CTS via central FPGA
 
 #Connected to second Start input on CTS
 
@@ -66,9 +66,9 @@ trbcmd w 0x8880 0xcf00 0x1101   #Forward to CTS via central FPGA
 #trbcmd w 0x5012 0xcf80 0xffff
 #trbcmd w 0x5013 0xcf80 0xffff
 
-trbcmd w 0x8880 0xcf80 0xfffff
-trbcmd w 0x8880 0xcf82 100000  #1ms binning by default
-trbcmd loadbit 0x8880 0xcf8f 0x1f0000 0x100000  #select output 0 for monitoring
+#trbcmd w 0x8880 0xcf80 0xfffff
+#trbcmd w 0x8880 0xcf82 100000  #1ms binning by default
+#trbcmd loadbit 0x8880 0xcf8f 0x1f0000 0x100000  #select output 0 for monitoring
 
 
 #trbcmd clearbit 0x8880 0xc0 0x2
@@ -86,5 +86,5 @@ trbcmd loadbit 0x8880 0xcf8f 0x1f0000 0x100000  #select output 0 for monitoring
 
 #old configuration
 #exec_cmd{local} /home/hadaq/trbsoft/daqtools/tools/dac_program.pl ../start/ThreshPadiwaVeto.db       
-exec_cmd{local} /home/hadaq/trbsoft/daqtools/tools/dac_program.pl ../start/ThreshNinoStart.db
+#exec_cmd{local} /home/hadaq/trbsoft/daqtools/tools/dac_program.pl ../start/ThreshNinoStart.db
 
index a65dcfdf931d49ab322294e7c2e888605d7d0bd4..9e305e0cf37fd39b448e5c968613cb96a456703c 100644 (file)
@@ -12,6 +12,9 @@ trbcmd w 0xfe4c 0x7114 0x00050000 #min number of words per board
 
   load_register  register_tdc_sts.db
     
-
+trbcmd w 0x6403 0xc803 0
+trbcmd w 0x6413 0xc803 0
+trbcmd w 0x6423 0xc803 0
+trbcmd w 0x6433 0xc803 0
 
 #wait