From 9e0222d7b97b2d2a5127693a94ca33c94b8cf9ee Mon Sep 17 00:00:00 2001
From: Pieter Donker <donker@astron.nl>
Date: Thu, 18 Feb 2016 15:36:08 +0000
Subject: [PATCH] Task #8966: ignore missing CalTable File

---
 MAC/APL/PAC/ITRFBeamServer/src/BeamServer.cc | 49 +++++++++++---------
 MAC/APL/PAC/ITRFBeamServer/src/beamctl.cc    |  1 +
 2 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/MAC/APL/PAC/ITRFBeamServer/src/BeamServer.cc b/MAC/APL/PAC/ITRFBeamServer/src/BeamServer.cc
index d530ee62d53..107ec5784d7 100644
--- a/MAC/APL/PAC/ITRFBeamServer/src/BeamServer.cc
+++ b/MAC/APL/PAC/ITRFBeamServer/src/BeamServer.cc
@@ -1534,28 +1534,31 @@ void BeamServer::_logBeamAdministration()
 //
 complex<double>	BeamServer::_getCalFactor(const string& antennaSet, const string& band, uint rcu, uint subbandNr)
 {
-	complex<double>	result(1.0, 0.0);
+    complex<double>	result(1.0, 0.0);
+	//LOG_DEBUG_STR("calFactor(" << antennaSet << "," << band <<  "," << rcu << "," << subbandNr << ")=" << result);
+
+    if (band == "10_90") {
+        if      (antennaSet == "LBA_INNER") { if (itsCalTable_LBA_INNER_10_90) result = itsCalTable_LBA_INNER_10_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_OUTER") { if (itsCalTable_LBA_OUTER_10_90) result = itsCalTable_LBA_OUTER_10_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_SPARSE_EVEN") { if(itsCalTable_LBA_SPARSE_EVEN_10_90) result = itsCalTable_LBA_SPARSE_EVEN_10_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_SPARSE_ODD") { if(itsCalTable_LBA_SPARSE_ODD_10_90) result = itsCalTable_LBA_SPARSE_ODD_10_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_X") { if(itsCalTable_LBA_X_10_90) result = itsCalTable_LBA_X_10_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_Y") { if(itsCalTable_LBA_Y_10_90) result = itsCalTable_LBA_Y_10_90->calFactor(rcu, subbandNr); }
+    }
+    else if (band == "30_90") {
+        if      (antennaSet == "LBA_INNER") { if(itsCalTable_LBA_INNER_30_90) result = itsCalTable_LBA_INNER_30_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_OUTER") { if(itsCalTable_LBA_OUTER_30_90) result = itsCalTable_LBA_OUTER_30_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_SPARSE_EVEN") { if(itsCalTable_LBA_SPARSE_EVEN_30_90)result = itsCalTable_LBA_SPARSE_EVEN_30_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_SPARSE_ODD") { if(itsCalTable_LBA_SPARSE_ODD_30_90)  result = itsCalTable_LBA_SPARSE_ODD_30_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_X") { if(itsCalTable_LBA_X_30_90) result = itsCalTable_LBA_X_30_90->calFactor(rcu, subbandNr); }
+        else if (antennaSet == "LBA_Y") { if(itsCalTable_LBA_Y_30_90) result = itsCalTable_LBA_Y_30_90->calFactor(rcu, subbandNr); }
+    }
+    else if (band == "110_190") { if(itsCalTable_HBA_110_190) result = itsCalTable_HBA_110_190->calFactor(rcu, subbandNr); }
+    else if (band == "170_230") { if(itsCalTable_HBA_170_230) result = itsCalTable_HBA_170_230->calFactor(rcu, subbandNr); }
+    else if (band == "210_250") { if(itsCalTable_HBA_210_250) result = itsCalTable_HBA_210_250->calFactor(rcu, subbandNr); }
 
-	string name;
-    name = name + antennaSet + "-" + band;;
-
-    if      (name == "LBA_INNER-10_90")       result = itsCalTable_LBA_INNER_10_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_INNER-30_90")       result = itsCalTable_LBA_INNER_30_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_OUTER-10_90")       result = itsCalTable_LBA_OUTER_10_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_OUTER-30_90")       result = itsCalTable_LBA_OUTER_30_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_SPARSE_EVEN-10_90") result = itsCalTable_LBA_SPARSE_EVEN_10_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_SPARSE_EVEN-30_90") result = itsCalTable_LBA_SPARSE_EVEN_30_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_SPARSE_ODD-10_90")  result = itsCalTable_LBA_SPARSE_ODD_10_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_SPARSE_ODD-30_90")  result = itsCalTable_LBA_SPARSE_ODD_30_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_X-10_90")           result = itsCalTable_LBA_X_10_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_X-30_90")           result = itsCalTable_LBA_X_30_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_Y-10_90")           result = itsCalTable_LBA_Y_10_90->calFactor(rcu, subbandNr);
-    else if (name == "LBA_Y-30_90")           result = itsCalTable_LBA_Y_30_90->calFactor(rcu, subbandNr);
-    else if (name == "HBA-110_190")           result = itsCalTable_HBA_110_190->calFactor(rcu, subbandNr);
-    else if (name == "HBA-170_230")           result = itsCalTable_HBA_170_230->calFactor(rcu, subbandNr);
-    else if (name == "HBA-210_250")           result = itsCalTable_HBA_210_250->calFactor(rcu, subbandNr);
-
-//	LOG_DEBUG_STR("calFactor(" << antennaSet << "," << band <<  "," << rcu << "," << subbandNr << ")=" << result);
+
+	//LOG_INFO_STR("calFactor(" << antennaSet << "," << band <<  "," << rcu << "," << subbandNr << ")=" << result);
 	return (result);
 }
 
@@ -1563,7 +1566,7 @@ void BeamServer::_loadCalTable(const string& antennaSet, const string& band, uin
 {
 	StatCal**	tableHandle(0);
 	string name;
-    name = name + antennaSet + "-" + band;
+    name = antennaSet + "-" + band;
 
     if      (name == "LBA_INNER-10_90")       tableHandle = &itsCalTable_LBA_INNER_10_90;
     else if (name == "LBA_INNER-30_90")       tableHandle = &itsCalTable_LBA_INNER_30_90;
@@ -1737,7 +1740,7 @@ void BeamServer::compute_weights(Timestamp weightTime)
 					if (!beamletAllocation.test(beamlet)) {
 						continue;
 					}
-
+                    //LOG_DEBUG_STR("get CalFactor for " << beamIter->second->antennaSetName() << ", " <<  beamIter->second->bandName());
 					complex<double>	CalFactor = _getCalFactor(beamIter->second->antennaSetName(), beamIter->second->bandName(),
                                                               rcu, itsBeamletAllocation[beamlet+firstBeamlet].subbandNr);
 					int	bitPlane = beamlet / beamletsPerPlane;
diff --git a/MAC/APL/PAC/ITRFBeamServer/src/beamctl.cc b/MAC/APL/PAC/ITRFBeamServer/src/beamctl.cc
index 8990390c857..c53e2665b15 100644
--- a/MAC/APL/PAC/ITRFBeamServer/src/beamctl.cc
+++ b/MAC/APL/PAC/ITRFBeamServer/src/beamctl.cc
@@ -297,6 +297,7 @@ GCFEvent::TResult beamctl::create_beam(GCFEvent& event, GCFPortInterface& port)
 
         LOG_INFO_STR("name        : " << alloc.beamName);
         LOG_INFO_STR("antennaSet  : " << alloc.antennaSet);
+        LOG_INFO_STR("band        : " << alloc.band);
         LOG_INFO_STR("rcumask     : " << alloc.rcumask);
         LOG_INFO_STR("ringNr      : " << alloc.ringNr);
 //      LOG_INFO_STR(alloc.allocation);
-- 
GitLab