From 2749df801458c5fe75d29d76d65c118ffd0ef21a Mon Sep 17 00:00:00 2001
From: Olivier Sauter <Olivier.Sauter@epfl.ch>
Date: Thu, 30 Jun 2022 18:00:39 +0200
Subject: [PATCH] add z=-23 and ltcc-dbrad, ltcc-dbtor to mhd source options

---
 matlab/TCV/gdat_tcv.m | 46 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 41 insertions(+), 5 deletions(-)

diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m
index 4efc8ab9..c8a7ddbd 100644
--- a/matlab/TCV/gdat_tcv.m
+++ b/matlab/TCV/gdat_tcv.m
@@ -1935,6 +1935,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     end
     % load n=1, 2 and 3 Bdot from magnetic measurements
     n3.data = [];
+    mhd_source_list = {'0', '0full', '23', '23full', '-23', 'ltcc', 'ltcc-dbpol', 'ltcc-dbrad', 'ltcc-dbtor'};
     if shot< 50926
       n1=tdi('abs(mhdmode("LFS",1,1))');
       n2=tdi('abs(mhdmode("LFS",2,1))');
@@ -1942,7 +1943,13 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
       gdat_data.data_fullpath='abs(mhdmode("LFS",n,1));% for 1, 2, 3';
     else
       if isfield(gdat_data.gdat_params,'source') && ~isempty(gdat_data.gdat_params.source)
-        % gdat_data.gdat_params.source;
+        if ~any(contains(mhd_source_list,lower(gdat_data.gdat_params.source)))
+          t1=sprintf('bad source for mhd: ''%s'', should be either ',gdat_data.gdat_params.source);
+          t2=sprintf('''%s'', ',mhd_source_list{1:end-1});
+          t3=sprintf('or ''%s''',mhd_source_list{end});
+          disp(sprintf('%s %s %s',t1,t2,t3));
+          return
+        end
       else
         z_axis=gdat_tcv([],'z_axis');
         z_axis_av = 0.;
@@ -1951,10 +1958,15 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
         end
         if z_axis_av > 0.12
           gdat_data.gdat_params.source = '23';
+        elseif z_axis_av < -0.12
+          gdat_data.gdat_params.source = '-23';
         else
           gdat_data.gdat_params.source = '0';
         end
-        disp(sprintf('source set to ''%s'', can be ''0'', ''23'', ''23full'' or ''ltcc''',gdat_data.gdat_params.source))
+        t1=sprintf('source set to ''%s'', can be ',gdat_data.gdat_params.source);
+        t2=sprintf('''%s'', ',mhd_source_list{1:end-1});
+        t3=sprintf('or ''%s''',mhd_source_list{end});
+        disp(sprintf('%s %s %s',t1,t2,t3))
       end
       if length(gdat_data.gdat_params.source)>=2 && strcmp(gdat_data.gdat_params.source(1:2),'23')
         aaLFSz23_sect3=tdi('\atlas::DT196_MHD_001:channel_067');
@@ -1996,12 +2008,36 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
           gdat_data.data_fullpath=['\atlas::DT196_MHD_001:channel_083 -+ \atlas::DT196_MHD_001:channel_091 for n=1,2, LFS_sect3/11, z=0cm; _HFS' ...
                     ' same for HFS: MHD_002:channel_034-+MHD_002:channel_038'];
         end
-      elseif strcmp(gdat_data.gdat_params.source,'ltcc')
-        aaLTCC=tdi('\atlas::dt132_ltcc_001:channel_001');
+      elseif length(gdat_data.gdat_params.source)>=3 && strcmp(gdat_data.gdat_params.source(1:3),'-23')
+        aaLFSzm23_sect3=tdi('\atlas::DT196_MHD_002:channel_003');
+        aaLFSzm23_sect3.data = - aaLFSzm23_sect3.data; % opposite polarity
+        aaLFSzm23_sect11=tdi('\atlas::DT196_MHD_002:channel_011');
+        n1 = aaLFSzm23_sect3;
+        n1.data = aaLFSzm23_sect3.data - aaLFSzm23_sect11.data;
+        n2 = aaLFSzm23_sect3;
+        n2.data = aaLFSzm23_sect3.data + aaLFSzm23_sect11.data;
+        % n3=n1;
+        gdat_data.data_fullpath=['\atlas::DT196_MHD_002:channel_003 -+ \atlas::DT196_MHD_002:channel_011 for n=1,2,' ...
+            'LFS_sect_3/11, z=-23cm'];
+      elseif strcmp(lower(gdat_data.gdat_params.source(1:4)),'ltcc')
+        switch lower(gdat_data.gdat_params.source)
+          case {'ltcc', 'ltcc-dbpol'}
+            % since other probes measure dbpol make "ltcc" default to ltcc-dbpol
+            aaLTCC=tdi('\atlas::dt132_ltcc_001:channel_001');
+            gdat_data.data_fullpath='ltcc-dbpol: \atlas::dt132_ltcc_001:channel_001';
+          case {'ltcc-dbrad'}
+            aaLTCC=tdi('\atlas::dt132_ltcc_001:channel_002');
+            gdat_data.data_fullpath='ltcc-dbrad: \atlas::dt132_ltcc_001:channel_002';
+          case {'ltcc-dbtor'}
+            aaLTCC=tdi('\atlas::dt132_ltcc_001:channel_003');
+            gdat_data.data_fullpath='ltcc-dbtor: \atlas::dt132_ltcc_001:channel_003';
+          otherwise
+            error(sprintf('case %s not known, choose between ltcc-dbpol(=ltcc), ltcc-dbrad or ltcc-dbtor', ...
+          lower(gdat_data.gdat_params.source)));
+        end
         n1 = aaLTCC;
         n2.data = [];
         n3.data = [];
-        gdat_data.data_fullpath='\atlas::dt132_ltcc_001:channel_001';
       else
         disp('should not be here in ''mhd'', ask O. Sauter')
         return
-- 
GitLab