-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
53 lines (41 loc) · 1.75 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.IO;
using AcqModeling;
class Program
{
#region Acquisition settings
// Время сбора
public static double TotalTime = 0.5;
// Временной интервал
public static double dt = 0.05;
// Суммарная активность (МБк)
public static double TotalActivity = 100;
// Период полураспада
public static double T12 = 6400;
static DetectorsConfiguration dc = DetectorsConfiguration.BaseConfiguration;
static int coincWindow = 10;
#endregion Acquisition settings
static string OutSinglesDir = "D:/Test/Singles";
static string OutCoincDir = "D:/Test/Coinc";
static string OutSinDir = "D:/Test/Sin";
static void Main(string[] args)
{
if (Directory.Exists(OutSinglesDir))
Directory.Delete(OutSinglesDir, true);
Directory.CreateDirectory(OutSinglesDir);
if (Directory.Exists(OutCoincDir))
Directory.Delete(OutCoincDir, true);
Directory.CreateDirectory(OutCoincDir);
double activity = TotalActivity * 1e6;
int intervalCount = (int) (TotalTime / dt);
for (int i = 0; i < intervalCount; i++)
{
//var events = Generators.GenerateEventsLinearSource(100, 0, 300, ref activity, i * dt, dt, T12, i);
var events = Generators.GenerateEventsCylSource(100, 300, ref activity, i * dt, dt, T12, i);
var singleEvents = Generators.GenerateSinglesNoAtt(events, dc, OutSinglesDir, i);
Generators.GenerateCoincList(singleEvents, OutCoincDir, i, coincWindow);
}
SinogramBuilder sb = new SinogramBuilder(dc, OutSinDir);
sb.Build(OutCoincDir);
}
};