-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwafermap.h
106 lines (86 loc) · 2.25 KB
/
wafermap.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// wafermap.h
#ifndef WAFERMAP_H
#define WAFERMAP_H
//#include "TH2.h"
#include <TH2.h>
#include <TArc.h>
#include <TBox.h>
#include <TPaletteAxis.h>
#include "chipdatabase.h"
#include "colorscale.h"
struct CWaferPos
{
int x, y, pos;
CWaferPos() {};
CWaferPos(int wx, int wy, int wpos) { x=wx; y=wy; pos=wpos; }
int GetPicX() { return 2*x + pos%2 + 1; }
int GetPicY() { return 2*y - pos/2 + 2; }
bool Exist();
};
class CChipBox;
class CWaferMap;
class TChipBox : public TBox
{
CChipBox *fChipbox;
public:
TChipBox(CChipBox *chipbox, Double_t x1, Double_t y1,
Double_t x2, Double_t y2)
: TBox(x1,y1,x2,y2)
{ fChipbox = chipbox; }
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
};
class CChipBox
{
protected:
CChipBox *fNext;
float fValue;
CChip *fChipData;
TChipBox *fChip;
CWaferPos fPos;
int fColor;
public:
CChipBox(CChip *chip, CWaferPos &pos, float value, int colNum);
~CChipBox();
float GetValue() { return fValue; }
void SetColor(int colNum);
void Draw();
friend class TChipBox;
friend class CWaferMap;
};
class CWaferMap
{
TEllipse *fBorder;
CChipBox *fFirst;
TH2C *thDummy;
CColorScale *scale;
bool fScaleFixed;
bool fScaleValid;
bool Add(CChip *chip, CWaferPos &chippos, float value);
public:
CWaferMap();
~CWaferMap();
void Clear();
bool Draw();
void UpdateBin(CWaferDataBase &database);
void UpdateClass(CWaferDataBase &database);
void UpdateFailCode(CWaferDataBase &database);
// void UpdatePic(CWaferDataBase &database);
void UpdateIdOn(CWaferDataBase &database);
void UpdateIaOn(CWaferDataBase &database);
void UpdateIdInit(CWaferDataBase &database);
void UpdateIaInit(CWaferDataBase &database);
void UpdateVanaDAC(CWaferDataBase &database);
void UpdateBlack(CWaferDataBase &database);
void UpdateVdreg(CWaferDataBase &database);
void UpdateVaout(CWaferDataBase &database);
void UpdateCalDel(CWaferDataBase &database);
void UpdatePm(CWaferDataBase &database);
void UpdatePstd(CWaferDataBase &database);
void UpdatePmColDiff(CWaferDataBase &database);
void UpdatePh1mean(CWaferDataBase &database);
void UpdatePh1std(CWaferDataBase &database);
void UpdatePh21mean(CWaferDataBase &database);
void UpdatePh21std(CWaferDataBase &database);
void UpdatePhColDiff(CWaferDataBase &database);
};
#endif