From bd6bf0cf1c4e3f819a5667539b3c2c042619bcdd Mon Sep 17 00:00:00 2001
From: Olivier Sauter <Olivier.Sauter@epfl.ch>
Date: Wed, 25 Sep 2019 21:39:31 +0200
Subject: [PATCH] add error_bar param for symbolic cocos transformation

needed if error_bar='added'
---
 matlab/TCV_IMAS/tcv_get_ids_core_profiles.m |  2 +-
 matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m   | 10 +++++++---
 matlab/TCV_IMAS/tcv_get_ids_equilibrium.m   |  2 +-
 matlab/TCV_IMAS/tcv_get_ids_magnetics.m     |  2 +-
 matlab/TCV_IMAS/tcv_get_ids_nbi.m           |  2 +-
 matlab/TCV_IMAS/tcv_get_ids_pf_active.m     |  2 +-
 matlab/TCV_IMAS/tcv_get_ids_tf.m            |  5 ++---
 matlab/TCV_IMAS/tcv_get_ids_wall.m          |  2 +-
 8 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/matlab/TCV_IMAS/tcv_get_ids_core_profiles.m b/matlab/TCV_IMAS/tcv_get_ids_core_profiles.m
index fab451e7..a3ddde24 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_core_profiles.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_core_profiles.m
@@ -291,5 +291,5 @@ end
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_core_profiles,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_core_profiles,'core_profiles',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m b/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m
index 0653cc30..08671e12 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m
@@ -76,9 +76,13 @@ for iant=1:nb_antennas
       ids_ec_antennas.antenna{iant}.launching_position.r.time(i) = time_launch;
       ids_ec_antennas.antenna{iant}.launching_position.z.time(i) = time_launch;
       ids_ec_antennas.antenna{iant}.launching_position.phi.time(i) = time_launch;
-      ids_ec_antennas.antenna{iant}.launching_angle_pol.data(i) = - (90.-launch_params{iant}{it_ok{iant}(i)}.theta_toray) * pi/180.;
+      kz = cos(launch_params{iant}{it_ok{iant}(i)}.theta_toray*pi/180.);
+      kr = sin(launch_params{iant}{it_ok{iant}(i)}.theta_toray*pi/180.).*cos(launch_params{iant}{it_ok{iant}(i)}.phi_toray*pi/180.);
+      kphi=sin(launch_params{iant}{it_ok{iant}(i)}.theta_toray*pi/180.).*sin(launch_params{iant}{it_ok{iant}(i)}.phi_toray*pi/180.); %*sigma_Rphiz (=+1 for TCV cocos=17)
+      ids_ec_antennas.antenna{iant}.launching_angle_pol.data(i) = atan2(kz,-kr);
+      ids_ec_antennas.antenna{iant}.launching_angle_pol.data(i) = atan2(-kz,-kr);
       ids_ec_antennas.antenna{iant}.launching_angle_pol.time(i) = time_launch;
-      ids_ec_antennas.antenna{iant}.launching_angle_tor.data(i) = (180.-launch_params{iant}{it_ok{iant}(i)}.phi_toray) * pi/180.;
+      ids_ec_antennas.antenna{iant}.launching_angle_tor.data(i) = atan2(kphi,-kr);
       ids_ec_antennas.antenna{iant}.launching_angle_tor.time(i) = time_launch;
 % $$$       ids_ec_antennas.antenna{iant}.beam.spot.size.data(i,1) = 0.023;
 % $$$       ids_ec_antennas.antenna{iant}.beam.spot.size.data(i,2) = 0.012;
@@ -101,5 +105,5 @@ end
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_ec_antennas,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_ec_antennas,'ec_antennas',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m b/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m
index 001d44a0..f283c6db 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m
@@ -376,5 +376,5 @@ end
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_equilibrium,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_equilibrium,'equilibrium',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_magnetics.m b/matlab/TCV_IMAS/tcv_get_ids_magnetics.m
index 7af8b1c6..cecb76c6 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_magnetics.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_magnetics.m
@@ -16,5 +16,5 @@ function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magne
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_magnetics,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_magnetics,'magnetics',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_nbi.m b/matlab/TCV_IMAS/tcv_get_ids_nbi.m
index ff80ce92..073bf1d4 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_nbi.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_nbi.m
@@ -124,5 +124,5 @@ end
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_nbi,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_nbi,'nbi',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_pf_active.m b/matlab/TCV_IMAS/tcv_get_ids_pf_active.m
index 13c95b45..4ffa647c 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_pf_active.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_pf_active.m
@@ -17,5 +17,5 @@ ids_pf_active.vertical_force = {};
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_pf_active,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_pf_active,'pf_active',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_tf.m b/matlab/TCV_IMAS/tcv_get_ids_tf.m
index b2531295..03650ac4 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_tf.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_tf.m
@@ -31,7 +31,6 @@ ids_tf.field_map = {};
 
 % cocos automatic transform
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
-  cocos_in=17;
-  cocos_out=11;
-  [ids_tf,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_tf,'tf',cocos_in,cocos_out);
+  [ids_tf,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_tf,'tf',gdat_params.cocos_in, ...
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_wall.m b/matlab/TCV_IMAS/tcv_get_ids_wall.m
index e78ced53..506dc5c7 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_wall.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_wall.m
@@ -22,5 +22,5 @@ ids_description = [];
 % cocos automatic transform (should have nothing to do for wall)
 if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
   [ids_wall,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_wall,'wall',gdat_params.cocos_in, ...
-          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in);
+          gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in,gdat_params.error_bar);
 end
-- 
GitLab