diff --git a/matlab/TCV_IMAS/tcv_get_ids_core_profiles.m b/matlab/TCV_IMAS/tcv_get_ids_core_profiles.m
index fab451e78777c16dd266f126a5a415624667d7e8..a3ddde2490987680f1566b787e7a72c3f701bd95 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 0653cc30ddc14199b9f6d40c14d1922e22fb4aee..08671e12ed4fbd6003d430b20897d2bf651d9622 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 001d44a0ab6ea5f572c11b7c43dc666287a0e373..f283c6db2fc4f83ad4f61baee71d83d28055312c 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 7af8b1c624706540ed2991359f78ae92af769e3d..cecb76c60ba8cc90f38bd7e31aa4d6a264ad6e6c 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 ff80ce92b26a532735d49658c8fdc02cc77d21e3..073bf1d4bea668e88b800097ce380f1b9be0e793 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 13c95b450a779010163beedb7254d8d23d07381e..4ffa647cf27ac53292c1e347d2f052fae3a34d7b 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 b25312958d9346b68f8a230d8c4a8a564be0dd47..03650ac456ddda72224002ca71afb7ab3f808d6c 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 e78ced53cc404ae34b089c05791650249612d34c..506dc5c7e38fcc0216e2dc165aee550d7f84681c 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