Beruflich Dokumente
Kultur Dokumente
Introduction
DATA
Current A
0.0008
0.0006
0.0004
0.0002
0
0
0.1
0.2
0.3
0.4
0.5
0.6
Voltage V
Data
0.001
0.0008
0.0006
0.0004
0.0002
0
Current A
Reverse Bias
0
0.0002
0.1
0.2
0.3
0.4
0.5
0.0004
0.0006
0.0008
0.001
300
250
200
150
100
50
0
Voltage V
ANALYSIS
Analysis
0.52
0.518
0.516
0.514
0.512
10
0.51
5
10
5
0
0
5
5
10
10
f (x, y) =
B
p
2x y
1 2
eA
V0 = eq
(x x )2
1
A=
2(1 2 )
x 2
2
2(x x )(y y )
(y y )
+
y 2
x y
h4
Entries
20
Mean x 3.037
Mean y 2.078
RMS x
3.744
RMS y
2.606
30
10
25
20
15
0
10
5
0
10
10
5
10
10
10
10
10
REFERENCES
Even Equivalence
Discussion
Conclusion
References
[1] J. Mekki, M. Moll, M. Fahrer, M. Glaser, and L.
Dusseasu, Senior Member, IEEE. Prediction of
the Response of the Commercial BPW34FS Silicon p-i-n Diode Used as Radiation Monitoring
Sensors up to Very High FluencesIEEE Transactions on Nuclear Science, Vol. 57, No. 4, August
2010.
[2] H. Spieler, Chinese Physics C 33.7. Semiconductor detectors November 2013. Vol. 38, No. 9,
September 2014.
[3] Hamedani, G. G.; Tata, M. N. (1975). On the determination of the bivariate normal distribution
from distributions of linear combinations of the
variables. The American Mathematical Monthly
82 (9): 913?915. doi:10.2307/2318494
[4] All
About
Circuits(2014).http
ROOT CODE
ROOT Code
***********************************************************************************/
double fit1(double *x, double *p){
double a = p[0];//the saturation current for the reverse bias region.
double k = 1.3806488e-23;
double T = p[1];
double q = 1.60217657e-19;
return a*(exp(x[0]*q/(k*T)) - 1);
}
/********************************************************************************
*******************************************************************************/
void parsegraph2(){
//This program attemps to read multiple files
//based on the input file as the following convention:
//array#.diode#.biasDirect.ext
//The following doubles and constants are for reading out each diode
//...find the iv curve fit it, then use the inverting function in
//ROOT to obtain the forward Voltage.
Double_t SpatCur[20];
Double_t SpatVol[20];
Double_t Posx[20] = {1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4};
Double_t Posy[20] = {1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5};
Double_t VD[20];
//The current that will correlate to a forward voltage for the fit1 function
ROOT CODE
double ID = 100e-6;
double Is = 2.5e-10;//2.5e-6;//The saturation current for the diodes.
double Temp = 283;//The temperature in kelvin...Room temp here at 20 degrees celcius.
//Graphing each of the IV Curves
TCanvas *c1 = new TCanvas("Diode Readout","Diode Readout",200,10,600,400);
//c1->Divide(3);
TGraph *g[20];
TMultiGraph *mg = new TMultiGraph();
//Declaring the fitting function to fit the iv curves
TF1 *f1 = new TF1("f1",fit1, 0, 0.6, 2);
f1->SetParameters(Is,Temp);
/*************************************************************************************/
for(int fo = 1; fo<21;fo++){
//character strings for reading the file names and creating multiple graphs.
char buffer[32];
char name[20];
snprintf(buffer, sizeof(char) * 32, "array2.%i.f.txt",fo);
g[fo-1] = new TGraph();
const char *file;
file = fopen(buffer,"r");
char line[64];
ifstream in(buffer);
in.getline(line,sizeof(line));
int n = 0;
while ( ! in.eof() ) {
in.getline(line,sizeof(line));
if ( ! in.eof() ) {
char *p = line;
while ( isspace(*p) ) p++;
if ( *p == \0 ) break;
double x = strtod(p,&p);
while ( isspace(*p) ) p++;
double y = strtod(p,&p);
g[fo-1]->SetPoint(n,-x,-y);
n++;
//mg->Add(g[n++]);
}
}
g[fo-1]->SetLineColor(fo);
mg->Add(g[fo-1]);
g[fo-1]->Fit("f1");
g[fo-1]->GetXaxis()->SetTitle("Voltage V");
g[fo-1]->GetYaxis()->SetTitle("Current A");
ROOT CODE
Double_t VS[20];
for(int i = 0; i<20 ; i++){
VS[i] = vr*exp(-((double)i-10)*((double)i-10));
}
index = 0;
for ( int i = 1; i<=4; i++ ) {
for ( int j= 1; j<=5; j++ ) {
h4->SetBinContent(i,j,(4.27e-18)*
pow((5e14)*exp(-(j-2.5)*(j-2.5))*exp((-(i-2)*(i-2))),1.289));
//h4->SetBinContent(i,j,vr*exp(-(j-2.5)*(j-2.5))*exp((-(i-2)*(i-2))));
}
}
//Drawing the various histograms and/or contours.
//fn->Draw("surf1");
//h4->Draw("lego2");
h4->Fit("fn");
fn->Draw("cont");
fn->SetTitle("Fitting Function Simulation");
//Getting the fitting paramters:
cout<<"***********************************"<<"\n";
cout<<"X Mean "<<fn->GetParameter(1) <<"\n";
cout<<"X Standard Deviation "<<fn->GetParameter(3) <<"\n";
cout<<"Y Mean "<<fn->GetParameter(2) <<"\n";
cout<<"Y Standard Deviation "<<fn->GetParameter(4) <<"\n";
cout<<"Correlation Parameter Sig.xy "<<fn->GetParameter(5)<<"\n";
cout<<"***********************************"<<"\n";
//c1->cd(1);
//h2->Draw("Lego2");
//c1->cd(2);
//g2->Draw("Surf1");
}
This research project has expanded my understanding in multiple ways and some key concepts and
software utilized were:
Familiarization with C++
Familiarization with ROOT
Familiarization with Latex
Partical Beam Concepts
Solid State Semiconductor Theory
Partical Physics Statistics