300 lines
15 KiB
C#
300 lines
15 KiB
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace Adaptation.Shared.Metrology;
|
|
|
|
public class ScopeInfo : Properties.IScopeInfo
|
|
{
|
|
|
|
public Test Test { get; private set; }
|
|
public Enum Enum { get; private set; }
|
|
public string HTML { get; private set; }
|
|
public string Title { get; private set; }
|
|
public string FileName { get; private set; }
|
|
public int TestValue { get; private set; }
|
|
public string Header { get; private set; }
|
|
public string QueryFilter { get; private set; }
|
|
public string FileNameWithoutExtension { get; private set; }
|
|
|
|
public ScopeInfo(Test test, string fileName, string queryFilter = "", string title = "", string html = "", string extraExtension = "")
|
|
{
|
|
Enum = test;
|
|
Test = test;
|
|
HTML = html;
|
|
Title = title;
|
|
FileName = fileName;
|
|
TestValue = (int)test;
|
|
Header = string.Empty;
|
|
QueryFilter = queryFilter;
|
|
FileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
|
|
}
|
|
|
|
public ScopeInfo(Test test)
|
|
{
|
|
Enum = test;
|
|
Test = test;
|
|
TestValue = (int)test;
|
|
switch (Test)
|
|
{
|
|
case Test.AFMRoughness:
|
|
FileNameWithoutExtension = "afm_iqs_01";
|
|
Header = string.Empty;
|
|
QueryFilter = "AFM Roughness";
|
|
Title = "AFM";
|
|
HTML = @"GaN Epi Data\10 - afm.html";
|
|
break;
|
|
case Test.BreakdownVoltageCenter:
|
|
FileNameWithoutExtension = "bv_iqs_01";
|
|
Header = "Reactor;fDate;fRecipeName;Lot;fPocketNumber;g4Scribe;BV Position;BV Value;Tool";
|
|
QueryFilter = "Breakdown Voltage";
|
|
Title = "Breakdown Voltage-Center";
|
|
HTML = @"GaN Epi Data\03 - bv-production.html";
|
|
break;
|
|
case Test.BreakdownVoltageEdge:
|
|
FileNameWithoutExtension = "bv_iqs_01_Edge";
|
|
Header = "Reactor;fDate;fRecipeName;Lot;fPocketNumber;g4Scribe;BV Position;BV Value;Tool";
|
|
QueryFilter = "Breakdown Voltage - Edge";
|
|
Title = "Breakdown Voltage-Edge";
|
|
HTML = @"GaN Epi Data\03 - bv-production.html";
|
|
break;
|
|
case Test.BreakdownVoltageMiddle8in:
|
|
FileNameWithoutExtension = "bv_iqs_01_Middle";
|
|
Header = "Reactor;fDate;fRecipeName;Lot;fPocketNumber;g4Scribe;BV Position;BV Value;Tool";
|
|
QueryFilter = "Breakdown Voltage - Middle";
|
|
Title = "Breakdown Voltage-Middle (8 in)";
|
|
HTML = @"GaN Epi Data\03 - bv-production.html";
|
|
break;
|
|
case Test.CV:
|
|
FileNameWithoutExtension = "cv_iqs_01";
|
|
Header = "Reactor;fDate;fPart;Lot;pocketNumber;g4Scribe;Position;Vp;NdMin;Tool ID;CV Ns;CV Cap";
|
|
QueryFilter = "CV_Ns";
|
|
Title = "CV";
|
|
HTML = @"GaN Epi Data\05 - cv.html";
|
|
break;
|
|
case Test.MonthlyCV:
|
|
FileNameWithoutExtension = "cv_iqs_01";
|
|
Header = "Reactor;fDate;fPart;Lot;pocketNumber;g4Scribe;Position;Vp;NdMin;Tool ID;CV Ns;CV Cap";
|
|
QueryFilter = "CV_Ns";
|
|
Title = "CV Monthly Verification";
|
|
HTML = @"Metrology\07 - cv_verif_monthly.html";
|
|
break;
|
|
case Test.WeeklyCV:
|
|
FileNameWithoutExtension = "cv_iqs_01";
|
|
Header = "Reactor;fDate;fPart;Lot;pocketNumber;g4Scribe;Position;Vp;NdMin;Tool ID;CV Ns;CV Cap";
|
|
QueryFilter = "CV_Ns";
|
|
Title = "CV Weekly Verification";
|
|
HTML = @"Metrology\16 - cv_verif_weekly.html";
|
|
break;
|
|
case Test.CandelaKlarfDC:
|
|
FileNameWithoutExtension = "candela_iqs_01";
|
|
Header = "LotID;OperatorID;RecipeName;CandelaRecipe;WaferID;PocketNumber;RunDate;Epi;SlipLines;Cracks;EpiDef;HazeSpot;SmallLpd;MediumLpd;LargeLpd;Cracks_A;Spirals;Craters;8620 Small;Pits;Tool ID;Defect Count";
|
|
QueryFilter = "Candela Cracking";
|
|
Title = "Candela";
|
|
HTML = @"GaN Epi Data\12 - candela.html";
|
|
break;
|
|
case Test.CandelaLaser:
|
|
FileNameWithoutExtension = "candela_iqs_01";
|
|
Header = "LotID;OperatorID;RecipeName;CandelaRecipe;WaferID;PocketNumber;RunDate;Epi;SlipLines;Cracks;EpiDef;HazeSpot;SmallLpd;MediumLpd;LargeLpd;Cracks_A;Spirals;Craters;Pits;Tool ID;Defect Count";
|
|
QueryFilter = "Candela Cracking";
|
|
Title = "Candela";
|
|
HTML = @"GaN Epi Data\12 - candela.html";
|
|
break;
|
|
case Test.CandelaVerify:
|
|
FileNameWithoutExtension = "candela_iqs_01";
|
|
Header = string.Concat("LotID;OperatorID;RecipeName;CandelaRecipe;WaferID;PocketNumber;RunDate;RunID;Reactor;", "Slip Lines;Cracks;Epi Def;Haze Spot;Small LPD;Medium LPD;Large LPD;Cracks_A;Spirals;Craters;8620 Small;Pits;Tool ID;Defect Count");
|
|
QueryFilter = "Candela Cracking";
|
|
Title = "Candela";
|
|
HTML = @"GaN Epi Data\12 - candela.html";
|
|
break;
|
|
case Test.CandelaPSL:
|
|
FileNameWithoutExtension = "candela_iqs_01";
|
|
Header = string.Empty;
|
|
QueryFilter = "102-83nm";
|
|
Title = "Candela";
|
|
HTML = @"GaN Epi Data\12 - candela.html";
|
|
break;
|
|
case Test.CandelaProdU:
|
|
FileNameWithoutExtension = "candela_iqs_01";
|
|
Header = string.Empty;
|
|
QueryFilter = "SPE verification";
|
|
Title = "Candela";
|
|
HTML = @"GaN Epi Data\12 - candela.html";
|
|
break;
|
|
case Test.Denton:
|
|
FileNameWithoutExtension = "denton_iqs_01";
|
|
Header = "Tool;fDate;Run;Recipe;Operator;Name;Value";
|
|
QueryFilter = "Denton_Voltage_AVG";
|
|
Title = "Denton Data";
|
|
HTML = @"Support Process\03 - ebeam02_denton_v1.html";
|
|
break;
|
|
case Test.Hall:
|
|
FileNameWithoutExtension = "hall_iqs_01";
|
|
Header = "Lot;Tool;TimeDate;RunDate;RunID;Part;Reactor;Scribe;PocketNumber;Tool ID;Name;Value";
|
|
QueryFilter = "Hall Rs";
|
|
Title = "Hall Data";
|
|
HTML = @"GaN Epi Data\04 - hall.html";
|
|
break;
|
|
case Test.MonthlyHall:
|
|
FileNameWithoutExtension = "hall_iqs_01";
|
|
Header = "Lot;Tool;TimeDate;RunDate;RunID;Part;Reactor;Scribe;PocketNumber;Tool ID;Name;Value";
|
|
QueryFilter = "Hall Rs";
|
|
Title = "Hall Monthly Verification";
|
|
HTML = @"Metrology\06 - hall_verif_monthly.html";
|
|
break;
|
|
case Test.WeeklyHall:
|
|
FileNameWithoutExtension = "hall_iqs_01";
|
|
Header = "Lot;Tool;TimeDate;RunDate;RunID;Part;Reactor;Scribe;PocketNumber;Tool ID;Name;Value";
|
|
QueryFilter = "Hall Rs";
|
|
Title = "Hall Weekly Verification";
|
|
HTML = @"Metrology\15 - hall_verif_weekly.html";
|
|
break;
|
|
case Test.Lehighton:
|
|
FileNameWithoutExtension = "lei_iqs_01";
|
|
Header = "Reactor;Date;Recipe;Lot;Pocket;Scribe;Tool;Name;Value";
|
|
QueryFilter = "LEI RS Average value";
|
|
Title = "Lehighton";
|
|
HTML = @"GaN Epi Data\13 - lehighton.html";
|
|
break;
|
|
case Test.VerificationLehighton:
|
|
FileNameWithoutExtension = "___";
|
|
Header = "Reactor;Date;Recipe;Lot;Pocket;Scribe;Tool;Name;Value";
|
|
QueryFilter = "___";
|
|
Title = "LEI Weekly Verification 2 Ohm cm";
|
|
HTML = @"Metrology\14 - lei_verif_weekly.html.html";
|
|
break;
|
|
case Test.Microscope:
|
|
FileNameWithoutExtension = string.Empty;
|
|
Header = string.Empty;
|
|
QueryFilter = "Microscope Center 5x";
|
|
Title = "Total Microscope Defects";
|
|
HTML = string.Empty;
|
|
break;
|
|
case Test.RPMXY:
|
|
FileNameWithoutExtension = "RPM_Data";
|
|
Header = "Lot;Date;Recipe;Reactor;Scribe;Pocket;Tool;Name;Value";
|
|
QueryFilter = "Barrier_Composition_RPM_XY";
|
|
Title = "RPM XY Data ***&*** View Data";
|
|
HTML = @"GaN Epi Data\09 - rpm --- 08 - photoluminescence.html";
|
|
break;
|
|
case Test.RPMAverage:
|
|
FileNameWithoutExtension = "RPMdata-short";
|
|
Header = "fProductId;fDate;average;stdDev;fRecipeName;Reactor;g4Scribe;Pocket Number;Tool ID;Recipe From Rpm File";
|
|
QueryFilter = "Epi Thickness Mean";
|
|
Title = "RPM Average Data";
|
|
HTML = @"GaN Epi Data\09 - rpm.html";
|
|
break;
|
|
case Test.RPMPLRatio:
|
|
FileNameWithoutExtension = "PHOTOLUMINESCENCE_data-short";
|
|
Header = "fProductId;fDate;g4Scribe;fRecipeName;bandEdge_nm;bandEdge_V;yellowBand_Pmw;yellowBand_nm;yellowBand_V;Reactor;Pocket Number;Tool ID";
|
|
QueryFilter = "PL Ratio";
|
|
Title = "Photoluminescence: PL Ratio";
|
|
HTML = @"GaN Epi Data\08 - photoluminescence.html";
|
|
break;
|
|
case Test.DailyRPMXY:
|
|
FileNameWithoutExtension = "RPM_Data";
|
|
Header = "Lot;Date;Recipe;Reactor;Scribe;Pocket;Tool;Name;Value";
|
|
QueryFilter = "Barrier_Composition_RPM_XY";
|
|
Title = "";
|
|
HTML = @"Metrology\?";
|
|
break;
|
|
case Test.DailyRPMAverage:
|
|
FileNameWithoutExtension = "RPMdata-short";
|
|
Header = "fProductId;fDate;average;stdDev;fRecipeName;Reactor;g4Scribe;Pocket Number;Tool ID;Recipe From Rpm File";
|
|
QueryFilter = "Epi Thickness Mean";
|
|
Title = "";
|
|
HTML = @"Metrology\?";
|
|
break;
|
|
case Test.DailyRPMPLRatio:
|
|
FileNameWithoutExtension = "PHOTOLUMINESCENCE_data-short";
|
|
Header = "fProductId;fDate;g4Scribe;fRecipeName;bandEdge_nm;bandEdge_V;yellowBand_Pmw;yellowBand_nm;yellowBand_V;Reactor;Pocket Number;Tool ID";
|
|
QueryFilter = "PL Ratio";
|
|
Title = "RPM Daily Verification";
|
|
HTML = @"Metrology\17 - rpm_verif_daily.html";
|
|
break;
|
|
case Test.VerificationRPM:
|
|
FileNameWithoutExtension = "PhotoLuminescence_Ver";
|
|
Header = "Part;Process;Date;Test;Value";
|
|
QueryFilter = "PL Edge Wavelength";
|
|
Title = "PL Daily Verification - [PL Edge Wavelength]";
|
|
HTML = @"Metrology\18 - photoluminescence_verif_daily.html";
|
|
break;
|
|
case Test.Photoreflectance:
|
|
FileNameWithoutExtension = "photoreflect_iqs_01";
|
|
Header = "Lot;Date;Part;Reactor;Scribe;Pocket;Tool;Point;WaferPosition_PR;PR_Peak";
|
|
QueryFilter = "PR Barrier Composition";
|
|
Title = "Photoreflectance 6 in, Photoreflectance 8 in";
|
|
HTML = @"GaN Epi Data\07 - photoreflectance.html";
|
|
break;
|
|
case Test.UV:
|
|
FileNameWithoutExtension = "uv_iqs_01";
|
|
Header = string.Empty;
|
|
QueryFilter = "UV Broken";
|
|
Title = "UV";
|
|
HTML = @"GaN Epi Data\15 - uv 2.1.html";
|
|
break;
|
|
case Test.VpdIcpmsAnalyte:
|
|
FileNameWithoutExtension = "VPD_iqs_01";
|
|
Header = "Reactor;RunID;RunDate;PartNumber;PocketNumber;WaferScribe;Analyte;Value";
|
|
QueryFilter = "Mg";
|
|
Title = "VpdIcpmsAnalyteData";
|
|
HTML = @"";
|
|
break;
|
|
case Test.WarpAndBow:
|
|
FileNameWithoutExtension = "warp_iqs_01";
|
|
Header = "fDate;fRecipeName;fProductId;g4Scribe;warp;bow;tool;Reactor;Pocket ID;bow_range;BowX;BowY;CenterBow";
|
|
QueryFilter = "BowCenter";
|
|
Title = "Warp and Bow";
|
|
HTML = @"GaN Epi Data\14 - warp.html";
|
|
break;
|
|
case Test.VerificationWarpAndBow:
|
|
FileNameWithoutExtension = "warp_ver_iqs_01";
|
|
Header = "Part;Process;Date;WaferScribe;totWarp;bow";
|
|
QueryFilter = "Bow Calibration";
|
|
Title = "6 Inch Warp/Bow Daily Verification, 8 Inch Warp/Bow Daily Verification";
|
|
HTML = @"Metrology\19 - warp_cal_daily.html";
|
|
break;
|
|
case Test.XRDXY:
|
|
FileNameWithoutExtension = "xrd_iqs_NEW_01";
|
|
Header = "Reactor;fDate;fRecipeName;Lot;pocketNumber;g4Scribe;ToolID;Name;Value;Group";
|
|
QueryFilter = "SL Period";
|
|
Title = "XRD XY Raw Data Viewer";
|
|
HTML = @"GaN Epi Data\11 - xrd.html";
|
|
break;
|
|
case Test.XRDWeightedAverage:
|
|
FileNameWithoutExtension = "xrd_iqs_NEW_01_WtAVG";
|
|
Header = "Reactor;fDate;fRecipeName;Lot;pocketNumber;g4Scribe;Name;Value;Group";
|
|
//QueryFilter = "Al% Barrier WTAVG";
|
|
QueryFilter = "SL Period WTAVG";
|
|
Title = "XRD Weighted Average Data";
|
|
HTML = @"GaN Epi Data\11 - xrd.html";
|
|
break;
|
|
case Test.MonthlyXRD:
|
|
FileNameWithoutExtension = "xrd_monthly_ver_iqs_01";
|
|
Header = "Part;Process;Date;TestName;Value";
|
|
QueryFilter = "XRD 2-Theta Position";
|
|
Title = "XRD Monthly Verification";
|
|
HTML = @"Metrology\03 - xrd_verif_monthly.html";
|
|
break;
|
|
case Test.WeeklyXRD:
|
|
FileNameWithoutExtension = "xrd_weekly_ver_iqs_01";
|
|
Header = "Part;Process;Lot;Date;TestName;Value";
|
|
QueryFilter = "XRD Weekly AL% Center";
|
|
Title = "XRD Weekly Verification";
|
|
HTML = @"Metrology\12 - xrd_verif_weekly.html";
|
|
break;
|
|
case Test.JVXRD:
|
|
FileNameWithoutExtension = "xrd_iqs_NEW_01";
|
|
Header = "Reactor;fDate;fRecipeName;Lot;pocketNumber;g4Scribe;ToolID;Name;Value;Group";
|
|
QueryFilter = "SL Period";
|
|
Title = "XRD XY Raw Data Viewer";
|
|
HTML = @"GaN Epi Data\11 - xrd.html";
|
|
break;
|
|
default:
|
|
throw new Exception();
|
|
}
|
|
FileName = string.Concat(FileNameWithoutExtension, ".txt");
|
|
}
|
|
|
|
public ScopeInfo ShallowCopy() => (ScopeInfo)MemberwiseClone();
|
|
|
|
} |