Объекты SensitiveDetector обрабатывают информацию о каждом шаге моделирования внутри области геометрии, которой они назначены.
SensitiveDetector.hh
#ifndef SENSITIVEDETECTOR
#define SENSITIVEDETECTOR
#include<G4VSensitiveDetector.hh>
class G4Step;
class G4TouchableHistory;
|
Здесь объявляется класс SensitiveDetector. В данном случае он должен строить распределение выделенной энергии в детекторе. Рассчитывается гистограмма, а затем значения из ее столбцов записываются в текстовый файл, чтобы затем с ними работать в программе построения графиков вроде gnuplot, Excel или Origin.
class SensitiveDetector: public G4VSensitiveDetector
{
private:
|
Число каналов
static const int channel = 1000
|
Максимальный и минимальный пределы графика. Значения этих констант задаются в файле SensitiveDetector.cc.
const double HIST_MAX;
const double HIST_MIN;
|
Гистограмма будет записываться в массив. Массив counts – число отсчетов, массив Eng – энергии.
float Eng[channel];
int counts[channel];
public:
SensitiveDetector(G4String name);
~SensitiveDetector();
G4bool ProcessHits(G4Step *step, G4TouchableHistory *hist);
void EndOfEvent(int nEvent);
};
#endif /* SENSITIVEDETECTOR */
|