ExN02SteppingAction.hh (new_cos):
#ifndef ExN02SteppingAction_h
#define ExN02SteppingAction_h 1
#include "G4UserSteppingAction.hh"
#define MAXBIN 201
#define MAXEVT 10000
#include "macro.hh"
extern int SPECTR_cost[MAXBIN];
extern int Act, N;
extern double X1, Y1, Z1, X2, Y2, Z2;
class ExN02SteppingAction : public G4UserSteppingAction
{
public:
ExN02SteppingAction();
ExN02SteppingAction(){};
void UserSteppingAction(const G4Step* aStep);
};
#endif
ExN02TrackingAction.cc (new_cos):
#include "ExN02TrackingAction.hh"
#include "G4TrackingManager.hh"
#include "G4Track.hh"
#include "G4UnitsTable.hh"
ExN02TrackingAction::ExN02TrackingAction()
{
N = 0;
Act = 0;
}
void ExN02TrackingAction::PreUserTrackingAction(const G4Track* aTrack)
{
G4Track* Track = (G4Track*)aTrack;
if (!aTrack->GetCreatorProcess()) {
if (aTrack->GetPosition().x() == 0 &&
aTrack->GetPosition().y() == 0 &&
aTrack->GetPosition().z() == 0)
Act = 0;
} else
if (Act==2 || aTrack->GetCreatorProcess()->GetProcessName()!=PROCESS_NAME) {
//Track->SetKineticEnergy(0);
}
}
ExN02TrackingAction.hh (new_cos):
#ifndef ExN02TrackingAction_h
#define ExN02TrackingAction_h 1
#include "G4UserTrackingAction.hh"
#include "G4String.hh"
#include "macro.hh"
extern int Act;
extern int N;
class ExN02TrackingAction : public G4UserTrackingAction {
public:
ExN02TrackingAction();
virtual
ExN02TrackingAction(){};
virtual void PreUserTrackingAction(const G4Track* aTrack);
private:
int N;
G4String name;
G4String proc;
};
#endif
SPECTR.hh (new_cos):#define MAXBIN 201
#define MAXEVT 10000
int SPECTR_cost[MAXBIN];
int Act;
double X1, Y1, Z1, X2, Y2, Z2;
int N;
macro.hh (new_cos):#ifndef PARTICLE_INCIDENT
#define PARTICLE_INCIDENT "proton" // частица, для
которой считаем угловое распределение#endif
#ifndef PROCESS_NAME
#define PROCESS_NAME "LElastic" // процесс, для которого считаем угл. распределение
#endif
#ifndef PARTICLE_PRODUCT1
#define PARTICLE_PRODUCT1 "proton" // частица отдачи, для кот. считаем угловое распределение
#endif
Пример командного файла run1.mac для расчета энергетического спектра ядер отдачи от нейтронов с энергией 15 МэВ:
/run/verbose 2
/event/verbose 0
/tracking/verbose 0
/gun/particle neutron
/gun/energy 15 MeV
/run/beamOn 1000
ЛИТЕРАТУРА 1. Ф.П. Коршунов, Ю.В. Богатырев, В.А. Вавилов. Воздействие радиации на интегральные микросхемы.-
Наука и техника, 1986, с. 256.
2.
http://wwwndc.tokai.jaeri.go.jp (данные о сечениях взаимодействия нейтронов с кремнием)
3.
http://t2.lanl.gov (данные о сечениях взаимодействия протонов с кремнием)
4. Geant4 Physics Reference Manual
(http://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/PhysicsReferenceManual/html/PhysicsReferenceManual.html)
5. Geant4 Installation Guide
(
http://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/InstallationGuide/html/index.html)
6. В.С. Вавилов, А.Е. Кив, О.Р. Ниязова. Механизмы образования и миграции дефектов в полупроводниках, М: Наука, 1981, с.368.
7. Geant4 User’s Guide For Application Developers (http://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/index.html)
8. Ю.П. Гангрский, Ю.Ц. Оганесян, Ю.Э. Пенионжкевич, Г.М. Тер-Акопьян. Ядерные реакции с тяжелыми ионами: Учебное пособие М.: МИФИ, 1995, с. 108.
9. Мухин К.Н. Экспериментальная ядерная физика: Учебник для вузов. Т. I. Физика атомного ядра.-М.: Энергоатомиздат, 1983, с. 616.
10. Мухин К.Н. Экспериментальная ядерная физика: Учебник для вузов. Т. II. Физика элементарных частиц.-М.: Энергоатомиздат, 1983, с. 376.
11. Кинчин Д., Пиз Р. Смещение атомов в твердых телах под действием излучения.-УНФ, 1956, с. 590-612.