Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
21.04.2026
Размер:
1.7 Кб
Скачать
#include <iostream>
#include <math.h>
#include <time.h>
#include "hist.hpp"

#ifndef M_PI
double M_PI = 3.14159265;
#endif

using namespace std;

// This function generates basic random
double gamma(){
	return (rand()+0.5)/(RAND_MAX+1.0);
}

// scattered photon energy probability
double g_compton(double x, double E){
	return x/E + E/x + (1/E - 1/x)*(2 + 1/E - 1/x);
}

// simulate compton
double compton(double E){
// *****************************************************

// *****************************************************
	return ksi;
}

double mu_phot(double E){return 0.1/E;}
double mu_compt(double E){return 0.05*E;}
double mu_pair(double E){
	if( E>2 ) return 0.023*(E-2);
	return 0;
}

int main(){
	double d = 3;  // thickness
	double Einit = 8; // initial energy
	srand(time(NULL)); // initialize the random generator
	int num_bin = 51;
	Hist *hist = new Hist(-0.1, 10.1, num_bin);
	Hist *hist_pm = new Hist(-0.1, 10.1, num_bin);
	for( int i=0; i<500000; i++ ){
// *****************************************************

// *****************************************************
        hist->fill(de); // fill histogramm
        double de_pm =        de;
        hist_pm->fill(de_pm); // fill histogramm
    }
    for(int i=0; i<hist->get_num_bin(); i++){
        cout << hist->get_bin(i) << "\t";   // get middle of bin boundary
        cout << hist->get_bin_value(i) << "\t"; // get number of counts in the bin
        cout << hist_pm->get_bin_value(i) << "\n"; // get number of counts in the bin
	}
	hist->draw(60);
	hist_pm->draw(60);

	delete hist;  // destroy histogramm
    delete hist_pm;  // destroy histogramm

 }

Соседние файлы в папке Моделирование процессов в физике частиц (7 сем)