#include <stdio.h>
#include <stdlib.h>
#include <TROOT.h>
#include <TH1D.h>
#include <TH2D.h>
#include <TH3D.h>
#include <TCanvas.h>
#include <TStyle.h>
#include <TSystem.h>
#include <TFile.h>
#include <TDirectory.h>
#include <TPaveText.h>
#include "base.h"
#include "map.h"
int mapped(){
char pdfname[256];
GRID m = mapping();
TCanvas * c = new TCanvas("Koordinatni sistemi","Koordinatni sistemi",500,500);
c->Divide(2,2);
gStyle->SetOptStat(0);
TH2D *mapBack = new TH2D("mapBack", "Mapping - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *posBack = new TH2D("posBack", "Scan Position - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *posChipBack = new TH2D("posChipBack", "Position on chip - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *kvadratki = new TH2D("kvadratki", "", 12, -0.5, 11.5, 12, -0.5, 11.5);
for (int x=0;x<12;x++){
for (int y=0;y<12;y++){
mapBack->Fill(x,y,m.koordinatniSistem[x][y]);
posBack->Fill(x,y,m.pozicijaPixla[m.koordinatniSistem[x][y]]);
posChipBack->Fill(x,y,m.pozicijaPixlaNaCipu[m.koordinatniSistem[x][y]]);
kvadratki->Fill(x,y,144);
}
}
c->cd(1);
mapBack->GetYaxis()->SetTickLength(0.01);
mapBack->GetYaxis()->SetLabelOffset(0.03);
mapBack->GetXaxis()->SetTickLength(0.01);
mapBack->GetXaxis()->SetLabelOffset(0.03);
mapBack->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
c->cd(3);
posBack->GetYaxis()->SetTickLength(0.01);
posBack->GetYaxis()->SetLabelOffset(0.03);
posBack->GetXaxis()->SetTickLength(0.01);
posBack->GetXaxis()->SetLabelOffset(0.03);
posBack->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
c->cd(4);
posChipBack->GetYaxis()->SetTickLength(0.01);
posChipBack->GetYaxis()->SetLabelOffset(0.03);
posChipBack->GetXaxis()->SetTickLength(0.01);
posChipBack->GetXaxis()->SetLabelOffset(0.03);
posChipBack->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
c->SaveAs(pdfname,"pdf");
return 0;
}
/*
int newFile(){
GRID m = mapping();
FILE *f = fopen("map.txt", "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
for (int x=0;x<12;x++){
for (int y=0;y<12;y++){
fprintf(f, "%d\t%d\t%d\t%d\t%d\n", m.koordinatniSistemCHIP[y][x], m.koordinatniSistemPIXEL[y][x], x, 11-y,(11-x)+y*12);
}
}
fclose(f);
return 0;
}
GRID mapping2(){
int f[6];
int ndim = 400;
char line[400];
GRID m;
FILE * fp = fopen("mapNEW.map","r");
while (fgets(line,ndim,fp) != NULL) {
sscanf(line,"%d%d%d%d%d%d",&f[0],&f[1],&f[2],&f[3],&f[4],&f[5]);
//m.koordinatniSistem[f[2]][f[3]] = f[0]*36+f[1];
m.koordinatniSistemCHIP[11-f[2]][11-f[3]] = f[0];
m.koordinatniSistemPIXEL[11-f[2]][11-f[3]] = f[1];
m.koordinatniSistem[11-f[2]][11-f[3]] = f[0]*36+f[1];
m.pozicijaPixla[f[0]*36+f[1]] = f[4];
m.pozicijaPixlaNaCipu[f[0]*36+f[1]] = f[5];
}
fclose(fp);
TCanvas * c = new TCanvas("Koordinatni sistemi","Koordinatni sistemi",1000,1000);
c->Divide(2,2);
//gStyle->SetOptStat(0);
TH2D *mapBack = new TH2D("mapBack", "Mapping - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *zaporedje = new TH2D("zaporedje", "zaporedje meritve - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *chips = new TH2D("chips", "chips - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *pixelonchp = new TH2D("pixelonchp", "pixelonchp - from back side", 12, -0.5, 11.5, 12, -0.5, 11.5);
TH2D *kvadratki = new TH2D("kvadratki", "", 12, -0.5, 11.5, 12, -0.5, 11.5);
for (int x=0;x<12;x++){
for (int y=0;y<12;y++){
mapBack->Fill(x,y,m.koordinatniSistem[x][y]);
zaporedje->Fill(x,y,m.pozicijaPixla[m.koordinatniSistem[x][y]]);
chips->Fill(x,y,m.pozicijaPixlaNaCipu[m.koordinatniSistem[x][y]]);
pixelonchp->Fill(x,y,m.koordinatniSistemPIXEL[x][y]);
//mapBackNew->Fill(x,y,m.koordinatniSistem[y][11-x]);
//posBack->Fill(x,y,m.pozicijaPixla[m.koordinatniSistem[x][y]]);
//posChipBack->Fill(x,y,m.pozicijaPixlaNaCipu[m.koordinatniSistem[x][y]]);
kvadratki->Fill(x,y,144);
}
}
c->cd(1);
mapBack->GetYaxis()->SetTickLength(0.01);
mapBack->GetYaxis()->SetLabelOffset(0.03);
mapBack->GetXaxis()->SetTickLength(0.01);
mapBack->GetXaxis()->SetLabelOffset(0.03);
mapBack->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
c->cd(2);
zaporedje->GetYaxis()->SetTickLength(0.01);
zaporedje->GetYaxis()->SetLabelOffset(0.03);
zaporedje->GetXaxis()->SetTickLength(0.01);
zaporedje->GetXaxis()->SetLabelOffset(0.03);
zaporedje->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
c->cd(3);
chips->GetYaxis()->SetTickLength(0.01);
chips->GetYaxis()->SetLabelOffset(0.03);
chips->GetXaxis()->SetTickLength(0.01);
chips->GetXaxis()->SetLabelOffset(0.03);
chips->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
c->cd(4);
pixelonchp->GetYaxis()->SetTickLength(0.01);
pixelonchp->GetYaxis()->SetLabelOffset(0.03);
pixelonchp->GetXaxis()->SetTickLength(0.01);
pixelonchp->GetXaxis()->SetLabelOffset(0.03);
pixelonchp->DrawCopy("TEXT");
kvadratki->DrawCopy("BOX,SAME");
return m;
}
*/