Tải bản đầy đủ (.pdf) (101 trang)

Hướng dẫn sử dụng GEANT4 cho hệ điều hành windows

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.89 MB, 101 trang )

Nhóm NMTP
(Tài liệu lưu hành nội bộ)

Hướng dẫn sử dụng GEANT4 cho hệ điều
hành Windows

Đặng Nguyên Phương (tổng hợp)

TP. Hồ Chí Minh − 10/2013


Mục lục
Lời nói đầu

4

1 Giới thiệu về GEANT4
1.1 Giới thiệu . . . . . . . . . . . . . . . .
1.2 Lịch sử hình thành . . . . . . . . . . .
1.3 Các chức năng chính và ưu nhược điểm
1.3.1 Chức năng chính . . . . . . . .
1.3.2 Ưu nhược điểm . . . . . . . . .
1.4 Cấu trúc của GEANT4 . . . . . . . . .
1.5 Một số lưu ý khi sử dụng GEANT4 . .

.
.
.
.
.
.


.

5
5
5
6
6
6
7
8

.
.
.
.
.
.
.

10
10
11
12
12
14
17
18

.
.

.
.
.
.
.
.
.
.
.
.

21
21
21
21
22
22
23
24
25
25
25
25
26

2 Cách thức cài đặt GEANT4
2.1 Cài đặt CMake . . . . . . . . . . . .
2.2 Cài đặt Microsoft Visual C++ . . . .
2.3 Cài đặt GEANT4 . . . . . . . . . . .
2.3.1 Cài đặt chương trình . . . . .

2.3.2 Cài đặt các file dữ liệu . . . .
2.3.3 Sử dụng trực tiếp file cài đặt .
2.4 Biên dịch ứng dụng với GEANT4 . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

3 Xây dựng và thực thi chương trình
3.1 Hệ thống các đơn vị . . . . . . . . . . .

3.1.1 Đơn vị cơ bản . . . . . . . . . . .
3.1.2 Cách khai báo đơn vị . . . . . . .
3.2 Cách thức xây dựng một ứng dụng trong
3.2.1 Các bước cần thiết . . . . . . . .
3.2.2 Hàm main() . . . . . . . . . . . .
3.2.3 G4RunManager . . . . . . . . . .
3.2.4 G4UImanager . . . . . . . . . . .
3.2.5 G4cout và G4cerr . . . . . . . . .
3.2.6 Xây dựng hình học detector . . .
3.2.7 Xác định quá trình vật lý . . . .
3.2.8 Tạo event sơ cấp . . . . . . . . .

1

.
.
.
.
.
.
.

.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

. . . . . .
. . . . . .
. . . . . .
GEANT4
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .

. . . . . .
. . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.


MỤC LỤC

3.3

3.2.9
Cách
3.3.1
3.3.2

3.3.3

Đặng Nguyên Phương
Cấu trúc mã nguồn của một
thực thi ứng dụng . . . . . .
Batch mode . . . . . . . . .
Batch mode với macro . . .
Interactive mode . . . . . .

ứng dụng
. . . . . .
. . . . . .
. . . . . .
. . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.

.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.

.
.

.
.
.
.
.

4 Xây dựng hệ detector
4.1 Xây dựng hình học . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Tạo các khối hình học . . . . . . . . . . . . . . . . . .
4.1.2 Tạo các khối luận lý . . . . . . . . . . . . . . . . . . .
4.1.3 Tạo các khối vật lý . . . . . . . . . . . . . . . . . . . .
4.2 Định nghĩa vật liệu . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Định nghĩa vật liệu đơn . . . . . . . . . . . . . . . . .
4.2.2 Định nghĩa phân tử . . . . . . . . . . . . . . . . . . . .
4.2.3 Định nghĩa hỗn hợp theo tỉ lệ khối lượng . . . . . . . .
4.2.4 Định nghĩa vật liệu dựa vào cơ sở dữ liệu của GEANT4
4.2.5 Định nghĩa vật liệu mới từ vật liệu có sẵn . . . . . . .
4.3 Khai báo trường điện từ . . . . . . . . . . . . . . . . . . . . .
4.3.1 Từ trường . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Điện trường . . . . . . . . . . . . . . . . . . . . . . . .
5 Các quá trình vật lý
5.1 Khai báo hạt . . . . . . . . . . . .
5.1.1 Định nghĩa hạt . . . . . . .
5.1.2 Động học hạt . . . . . . . .
5.2 Khai báo quá trình vật lý . . . . .
5.2.1 Tương tác điện từ . . . . . .
5.2.2 Tương tác hadronic . . . . .

5.2.3 Quá trình phân rã hạt nhân
5.3 Thiết lập ngưỡng cắt . . . . . . . .
5.3.1 Ngưỡng tạo hạt và vết . . .
5.3.2 Ngưỡng cắt theo vùng . . .
6 Mô phỏng event
6.1 Tạo các hạt ban đầu . . . . . .
6.1.1 G4ParticleGun . . . . .
6.1.2 G4GeneralParticleSource
6.2 Hits . . . . . . . . . . . . . . .
6.2.1 Vùng nhạy . . . . . . . .
6.2.2 Ghi nhận đại lượng . . .

.
.
.
.
.
.

.
.
.
.
.
.
2

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

26
27
27
28
29

.
.
.

.
.
.
.
.
.
.
.
.
.

31
31
32
33
35
43
43
44
44
45
45
45
46
47

.
.
.
.

.
.
.
.
.
.

48
48
48
49
50
51
52
52
54
54
55

.
.
.
.
.
.

56
56
56
57

58
58
58


MỤC LỤC

6.3
7 Xử
7.1
7.2
7.3

Đặng Nguyên Phương

Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
lý dữ liệu
Các lớp xử lý dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ntuple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61
61
62
63

Lời kết

65


Tài liệu tham khảo

66

A Một số lệnh thực thi cơ bản

67

B Các khối hình học cơ bản

70

C Cơ sở dữ liệu vật liệu của GEANT4

76

3


Lời nói đầu
Tiếp theo sau tập tài liệu Hướng dẫn sử dụng ROOT cho hệ điều hành Windows,
tôi muốn tiếp tục giới thiệu đến các bạn thành viên nhóm NMTP một trong những bộ
công cụ mô phỏng Monte Carlo rất mạnh trong lĩnh vực hạt nhân và hạt cơ bản. Nếu các
bạn đã làm quen với ROOT, sẽ không khó khăn gì cho các bạn để làm quen với bộ công
cụ này, đó chính là chương trình GEANT4. Đây là một bộ công cụ dùng để mô phỏng
vận chuyển của các hạt qua môi trường vật chất. Các lĩnh vực ứng dụng của GEANT4
rất rộng, từ vật lý năng lượng cao, khoa học không gian, hạt nhân, lò phản ứng cho tới
y học hạt nhân, xạ trị,...
Tập tài liệu này nhằm mục đích trình bày sơ lược cho các bạn những kiến thức và kĩ
năng cơ bản nhất trong việc sử dụng GEANT4 cho công việc của mình. Do đó, nội dung

của bài viết khá cô đọng và không đi quá sâu vào chi tiết. Các kiến thức được trình
bày trong tập tài liệu này được tổng hợp từ nhiều nguồn khác nhau. Để có thể tìm
hiểu về GEANT4 một cách trọn vẹn hơn, các bạn có thể vào trang web của GEANT4
tại hoặc tham gia trao đổi, thảo luận với các chuyên gia tại
/>Nếu các bạn thích thú với việc sử dụng ROOT và mong muốn có một chương trình mô
phỏng để đi kèm với ROOT một cách đồng bộ, thì đây chính là chương trình mà tôi
khuyên các bạn nên tìm hiểu...

Đặng Nguyên Phương

4


Chương 1
Giới thiệu về GEANT4
1.1

Giới thiệu

GEANT4 (GEometry ANd Tracking) là một bộ công cụ miễn phí, được sử dụng để mô
phỏng sự vận chuyển của các hạt qua môi trường vật chất bằng phương pháp Monte
Carlo. Đây là một chương trình mô phỏng mã nguồn mở, cung cấp một tập hợp các quá
trình vật lý đa dạng để mô phỏng tương tác của các hạt với môi trường trên một dải năng
lượng rộng.
GEANT4 được xây dựng trên nền tảng ngôn ngữ lập trình C++, khai thác và ứng dụng
các tiến bộ của kỹ thuật lập trình hướng đối tượng, hỗ trợ người dùng trong việc xây
dựng và sử dụng các thành phần cần thiết. Chương trình được phát triển và sử dụng bởi
một cộng đồng rộng lớn các nhà khoa học hiện đang tham gia nhiều thí nghiệm lớn ở
Châu Âu, Mỹ, Nhật, Nga,...
Các lĩnh vực ứng dụng của GEANT4 rất rộng, bao gồm:

• Vật lý hạt nhân và hạt cơ bản
• Khoa học không gian
• Y học hạt nhân, xạ trị
• ...

1.2

Lịch sử hình thành

Ý tưởng cho việc xây dựng GEANT4 được xuất hiện một cách độc lập tại CERN và KEK
vào năm 1993, thông qua việc nghiên cứu các kĩ thuật tính toán mới thay thế cho các
công cụ mô phỏng dựa trên nền tảng FORTRAN đã có trước đó ở GEANT3. Năm 1994,
dự án RD44 được tiến hành tại CERN nhằm xây dựng một chương trình hoàn toàn mới
dựa trên kĩ thuật lập trình hướng đối tượng (object-oriented technology). Dự án này được
5


CHƯƠNG 1. GIỚI THIỆU VỀ GEANT4

Đặng Nguyên Phương

sự tham gia của rất nhiều nhà khoa học máy tính cũng như kĩ sư lập trình tại các quốc
gia Châu Âu, Nhật, Canada và Mĩ. Mục tiêu của dụ án là xây dựng một chương trình
mô phỏng hệ đo có đầy đủ chức năng và linh hoạt phù hợp với các yêu cầu của các thí
nghiệm vật lý hạt trong tương lai. Việc nghiên cứu và phát triển hoàn thành vào năm
1998 với sự ra đời phiên bản đầu tiên của GEANT4, và từ đó về sau trung bình hàng
năm có 2 phiên bản nâng cấp được công bố.
Các cột mốc chính trong lịch sử hình thành và phát triển của GEANT4:
• 12/1994: dự án RD44 được bắt đầu.
• 04/1997: phiên bản alpha đầu tiên được công bố.

• 07/1998: phiên bản beta đầu tiên được công bố.
• 12/1998: phiên bản GEANT4 đầu tiên được công bố.
• 12/2004: phiên bản 7.0
• 12/2005: phiên bản 8.0
• 02/2008: phiên bản 9.0
• 10/2012: phiên bản 9.5 (patch-02)

1.3
1.3.1

Các chức năng chính và ưu nhược điểm
Chức năng chính

Bộ công cụ GEANT4 có thể được sử dụng để
• Mô phỏng các hạt cơ bản (lepton, hadron, boson,...) cũng như các hạt ion.
• Tính toán các vết vả tương tác của hạt với các quá trình vật lý khác nhau.
• Tạo ra các hạt mới sau tương tác và cho phép truy cập tất cả thông tin trong mỗi
tương tác.
• Tổng hợp các thông tin, cho kết quả đầu ra ghi nhận bởi các detector.

1.3.2

Ưu nhược điểm

Ưu điểm
• Có khả năng mô phỏng các thí nghiệm có cấu hình phức tạp.

6



CHƯƠNG 1. GIỚI THIỆU VỀ GEANT4

Đặng Nguyên Phương

• Có thể được sử dụng để nghiên cứu và tối ưu hóa các thiết bị ghi nhận, các kĩ thuật
xử lý,... giúp so sánh giữa kết quả thực nghiệm và lý thuyết.
• Được xây dựng trên nền tảng lập trình hướng đối tượng, có độ linh động cao nên
dễ dàng cho việc nâng cấp.
• Được sự đóng góp của một cộng đồng lớn các nhà khoa học và kĩ thuật, các tính
năng mới và mô hình vật lý mới được cập nhật thường xuyên.

Nhược điểm
• Khá tốn tài nguyên máy tính trong quá trình mô phỏng.
• Cấu trúc chương trình khá phức tạp, gồm nhiều phần kết nối với nhau.
• Đòi hỏi việc nghiên cứu chi tiết và kiểm tra kĩ càng các quá trình vật lý khi đưa vào
trong mô phỏng.

1.4

Cấu trúc của GEANT4

Bô công cụ GEANT4 bao gồm nhiều thành phần nhỏ được xây dựng một các độc lập với
nhau, tuy nhiên vẫn có sự phụ thuộc, liên kết lẫn nhau. Hình 1.1 trình bày mối liên hệ
phụ thuộc giữa các thành phần với nhau trong GEANT4. Các thành phần chính gồm có:
• Global: chứa hệ thống các đơn vị, hằng số, các phép gieo số ngẫu nhiên.
• Run và Event: liên quan tới việc tạo các event, các hạt sơ cấp và thứ cấp cần thiết
trong quá trình mô phỏng.
• Processes, Tracking và Track: xác định vết của hạt, các quãng chạy, tương tác,...
• Geometry và Material: mô tả detector, vật liệu, tính toán khoảng các đến các
mặt biên.

• Physics và Particles: chứa tất cả các mô hình vật lý, tính chất của hạt.
• Hits và Digits: liên quan đến việc tạo ra tín hiệu ghi nhận khi hạt đập vào detector
• Readout: xử lý tín hiệu đầu ra, pile-up,...
• Visualization, Persistency và Interfaces: các công cụ đồ họa hiển thị hình học
và vết của hạt, giao diện tương tác với người dùng và các chương trình xử lý số liệu
khác (vd: ROOT).

7


CHƯƠNG 1. GIỚI THIỆU VỀ GEANT4

Đặng Nguyên Phương

Hình 1.1: Sơ đồ liên kết giữa các lớp trong GEANT4

1.5

Một số lưu ý khi sử dụng GEANT4

• Tất cả các lớp (class) cơ bản trong GEANT4 đều được bắt đầu bằng G4.
Ví dụ: G4double, G4UIManager,...
• Khi xây dựng bài toán mô phỏng, người dùng phải đảm bảo tối thiểu 3 lớp sau đây
được sử dụng:
– G4VUserDetectorConstruction: mô tả hình học và vật liệu của hệ đo.
– G4VUserPhysicsList: mô tả khoảng giá trị được mô phỏng, loại hạt và các
quá trình vật lý.
– G4VUserPrimaryGeneratorAction: mô tả nguồn phát hạt, năng lượng, phân
bố góc,...
• Các lớp vừa được nhắc tới là các lớp cơ bản (base class) hay còn gọi là lớp trừu

8


CHƯƠNG 1. GIỚI THIỆU VỀ GEANT4

Đặng Nguyên Phương

tượng (abstract class), không thể dùng trực tiếp các lớp này trong xây dựng ứng
dụng mô phỏng cũng như không thể tạo đối tượng (object) thuộc lớp này bằng lệnh
new. Người dùng phải tự xây dựng lớp riêng cho mình (lớp dẫn xuất hay còn gọi
là lớp con) dựa trên cơ sở của các lớp này và tạo các đối tượng thuộc các lớp vừa
được xây dựng. Ví dụ như để xây dựng hệ đo detector, người dùng phải xây dựng
một lớp MyG4DetectorConstruction dựa trên lớp G4VUserDetectorConstruction,
điều này sẽ được trình bày chi tiết hơn ở những phần sau.

9


Chương 2
Cách thức cài đặt GEANT4
GEANT4 có thể được cài đặt trên nhiều hệ điều hành khác nhau, tuy nhiên tài liệu
này chỉ tập trung vào việc cài đặt trên hệ điều hành Windows. Cách thức cài đặt
được trình bày dựa theo hướng dẫn tại trang />UserDocumentation/UserGuides/InstallationGuide/html/index.html. Để cài đặt được
GEANT4 cho hệ điều hành Windows, ta cần có:
• Công cụ hỗ trợ biên dịch CMake.
• Trình biên dịch Microsoft Visual C++.
• Mã nguồn GEANT4.

2.1


Cài đặt CMake

CMake (Cross-platform Makefile Generator ) là công cụ hỗ trợ quản lý các quá trình biên
dịch các mã nguồn. Cách thức cài đặt CMake như sau:
• Tải file cài đặt CMake về từ trang web (trong tài liệu này
phiên bản CMake 2.8.11 được sử dụng).
• Sau khi đã tải file cài đặt cho hệ điều hành Windows về (cmake-2.8.11.1-win32x86.exe), double click vào file để thực hiện quá trình cài đặt, giao diện cài đặt của
chương trình CMake như trong Hình 2.1.
• Chọn option thứ 2 hoặc thứ 3 để đưa đường dẫn CMake vào trong biến môi trường
PATH của hệ thống.
• Thực hiện theo hướng dẫn của chương trình để kết thúc cài đặt.

10


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.1: Giao diện cài đặt của CMake

2.2

Cài đặt Microsoft Visual C++

Microsoft Visual C++ là một phần trong bộ Microsoft Visual Studio, tuy nhiên ta chỉ cần
tải phiên bản miễn phí Visual C++ tại />là được. Trong phần hướng dẫn này, phiên bản Visual C++ 2008 Express được sử dụng.
Các bước thực hiện việc cài đặt như sau:
• Sau khi download thành công file setup (vcsetup.exe), double click để chạy chương
trình setup (Hình 2.2).


Hình 2.2: Giao diện cài đặt của Visual C++ 2008 Express
• Ở Welcome to setup, nhấp Next.
11


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

• Ở License Terms, nhấp chọn I have read and accept the license terms và nhấp Next.
• Ở Installation Options, bỏ dấu chọn ở Microsoft SQL và bấm Next.
• Ở Destination Folder, giữa nguyên đường dẫn mặc định và bấm Install.
• Sau khi cài đặt hoàn tất, bấm Exit để thoát.
• Ngoài ra, Microsoft còn yêu cầu đăng kí để được sử dụng sản phẩm. Vào Start →
All Programs, mở Visual C++ 2008 Express, trên thanh menu nhấp vào Help và
làm theo các hướng dẫn đăng kí.

2.3

Cài đặt GEANT4

Để cài đặt được chương trình GEANT4, trước tiên ta cần tải mã nguồn và các file dữ
liệu (data files) từ trang web của chương trình (). Tại giao diện
chính của trang web, ta nhấp vào nút Download (Hình 2.3) để vào được trang download.

Hình 2.3: Giao diện trang web GEANT4, nút Download được đánh dấu màu đỏ

2.3.1


Cài đặt chương trình

• Tại trang download, trong phần Source files, nhấp chọn nút Download tương ứng
với ZIP format (Hình 2.4).
• Sau khi đã tải được file mã nguồn dùng WinZip hay WinRar để giải nén.
• Chạy CMake, sử dụng nút Browse Source chọn đường dẫn đến thư mục mã nguồn, và
nút Browse Build để chỉ đường dẫn đến thư mục muốn cài đặt GEANT4 (Hình 2.5).

12


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.4: Tải file mã nguồn
Sau đó bấm nút Configure, chương trình sẽ hiện ra thông báo đề nghị chọn trình
biên dịch, chọn như trong Hình 2.6 và bấm Finish.

Hình 2.5: Giao diện CMake khi biên dịch GEANT4
• Sau khi cấu hình xong (thể hiện qua dòng chữ Configuring done), CMake sẽ yêu
cầu xác định lại một số tham số cho cấu hình như trong Hình 2.5, bật tắt các tham
số bằng cách nhấp vào ô trống tướng ứng.
– CMAKE_INSTALL_PREFIX (mặc định C:/Program Files/Geant4) chỉnh lại như
đường dẫn tới thư mục cài đặt chương trình.
– GEANT4_INSTALL_DATA (mặc định OFF) nếu chọn ON, chương trình sẽ tải và cài
đặt các file dữ liệu vào thự mục được khai báo trong GEANT4_INSTALL_DATADIR.
– GEANT4_USE_GDML (mặc định OFF) cài đặt thư viện G4persistency; yêu cầu
có sẵn thư viện và các header của Xerces-C++.
– GEANT4_USE_INVENTOR (mặc định OFF) cài đặt driver cho OpenInventor; yêu

13


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.6: Chọn trình biên dịch
cầu có sẵn SoWin (Windows), thư viện và header của OpenGL.
– GEANT4_USE_OPENGL_WIN32 (mặc định OFF) cài đặt driver cho Win32 OpenGL;
yêu cầu có thư viện và header của OpenGL. Nên chọn ON khi biên dịch trên
Windows.
– GEANT4_USE_QT (mặc định OFF) cài đặt giao diện và driver cho Qt4 User Interface; yêu cầu có thư viện và header của Qt4 và OpenGL.
– GEANT4_SYSTEM_CLHEP (mặc định OFF) biên dịch GEANT4 với thư viện ngoài
CLHEP. Không nên chọn.
• Sau khi chỉnh sửa cấu hình, bấm Configure lần nữa để cấu hình lại, sau đó bấm
Generate để tạo Makefile. Khi dòng chữ Generating done hiện lên có nghĩa là quá
trình tạo Makefile đã hoàn tất.
• Mở Visual C++, chọn File → Open → Project/Solution và chọn file solution
của GEANT4 (Geant4.sln) như trong Hình 2.7. Trong khung bên trái, kéo xuống
và nhấp chuột phải vào INSTALL và chọn Build.
• Hoàn tất việc cài đặt.

2.3.2

Cài đặt các file dữ liệu

Trong trường hợp không chọn GEANT4_INSTALL_DATA trong quá trình cài đặt GEANT4,
ta có thể cài đặt các file dữ liệu sau khi quá trình cài đặt GEANT4 đã hoàn tất, cách
thức tiến hành như sau:

• Tại trang download của GEANT4, trong phần Data files (Hình 2.8), tải các file dữ

14


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.7: Cấu hình GEANT4 trong CMake
liệu cần thiết:
– G4NDL (có hoặc không có neutron nhiệt) dữ liệu tương tác của neutron với
năng lượng dưới 10MeV (từ thư viện ENDF/B-VI).
– G4EMLOW dữ liệu tương tác điện từ ở năng lượng thấp (từ các thư viện
EPDL97, EEDL, EADL).
– G4PhotonEvaporation dữ liệu các chuyển dời photon (từ thư viện ENSDF).
– G4RadioactiveDecay dữ liệu phân rã hạt nhân (từ thư viện ENSDF).
– G4SAID dữ liệu từ SAID cho proton, neutron, tán xạ pion, trao đổi điện tích
của các nucleon năng lượng dưới 3GeV.
– G4NEUTRONXS dữ liệu tiết diện neutron với năng lượng trên 20MeV.
– G4PII dữ liệu tiết diện ion hóa trong môi trường vật chất.
– RealSurface dữ liệu tán xạ trên các bề mặt quang học.
• Tạo thư mục data bên trong thư mục cài đặt GEANT4, copy các file dữ liệu nén
vào trong thư mục này và giải nén.
• Sau khi đã giai nén các file dữ liệu, ta tiến hành cài đặt các biến môi trường cho
các dữ liệu này. Nhấp chuột phải vào biểu tượng My Computer trên màn hình

15



CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.8: Tải file dữ liệu
Desktop và chọn Properties. Trong cửa sổ Properties chọn tab Advanced, sau đó
chọn Environment Variables như trong Hình 2.9.

Hình 2.9: Giao diện System Properties
• Trong khung User variables chọn New, nhập vào các biến môi trường tương ứng với
các thư mục chứa dữ liệu (Hình 2.10)
– G4LEDATA (G4EMLOW)
– G4LEVELGAMMADATA (PhotonEvaporation)
– G4NEUTRONHPDATA (G4NDL)
– G4NEUTRONXSDATA (G4NEUTRONXS)
– G4PIIDATA (G4PII)
– G4RADIOACTIVEDATA (G4RadioactiveDecay)
16


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

– G4REALSURFACEDATA (RealSurface)
– G4SAIDXSDATA (G4SAIDDATA)

Hình 2.10: Giao diện nhập biến môi trường
• Trong khung System variables chọn biến PATH và nhấp chọn nút Edit, thêm vào
đường dẫn của thư mục chứa các thư viện động .dll của GEANT4 (thư mục bin)

như trong Hình 2.11 và bấm OK.

Hình 2.11: Giao diện nhập thêm đường dẫn vào PATH
• Hoàn tất việc cài đặt các file dữ liệu.

2.3.3

Sử dụng trực tiếp file cài đặt

Bên cạnh việc biên dịch GEANT4 từ mã nguồn, ta cũng có thể cài đặt bằng cách sử dụng
trực tiếp các chương trình cài đặt đã được biên dịch sẵn trước đó. Các bước thực hiện
như sau:
• Tại trang download của GEANT4, trong phần Pre-compiled Libraries (Hình 2.12),
tải file installer (lưu ý tới sự tương thích giữa cấu hình biên dịch và cấu hình máy
đang sử dụng).
• Chạy file cài đặt và làm theo các hướng dẫn trong quá trình cài đặt, lưu ý việc chọn
option để đường dẫn GEANT4 được đặt trong PATH (Hình 2.13).

17


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.12: Giao diện tải thư viện đã được biên dịch sẵn

Hình 2.13: Giao diện chương trình cài đặt GEANT4

2.4


Biên dịch ứng dụng với GEANT4

Sau khi hoàn tất các file khai báo cấu hình cho bài toán, để thực hiện được việc mô phỏng
ta cần phải biên dịch các file đó thành file thực thi (.exe). Giả sử ta chọn ví dụ B1 trong
thư mục examples của GEANT4 để biên dịch, cách thức làm như sau:
• Mở CMake, thiết lập đường dẫn tới thư mục chứa mã nguồn và thư mục chứa phần
biên dịch (hai thư mục này không nhất thiết phai giống nhau nhưng trong đây tôi
sử dụng chung), sau đó bấm Add Entry và nhập đường dẫn cho biến Geant4_DIR
(tới thư mục có chứa file Geant4Config.cmake) như Hình 2.14.
• Tương tự như việc biên dịch GEANT4 ở phần trước, nhấp Configure để thiết lập
cấu hình biên dịch. Sau khi kiểm tra các tham số của CMake nhấp Configure lần
nữa, sau đó nhấp Generate.
• Mở Visual C++, mở solution của B1, tại khung bên trái nhấp chuột phải vào
ALL_BUILD và chọn Build (Hình 2.15).

18


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Hình 2.14: Giao diện CMake biên dịch ví dụ B1

Hình 2.15: Giao diện Visual C++ biên dịch ví dụ B1
• File thực thi (exampleB1.exe) sẽ được tạo ra trong thư mục Debug, copy file này
ra ngoài thư mục B1 và double click để chạy chương trình, kết quả thu được như
trong Hình 2.16. Trong trường hợp có sử dụng GEANT4_USE_OPENGL_WIN32, giao
diện G4UIWin32 sẽ hiện ra. Một cách khác để chạy chương trình vào mở ứng dụng

19


CHƯƠNG 2. CÁCH THỨC CÀI ĐẶT GEANT4

Đặng Nguyên Phương

Command Prompt, di chuyển đến thư mục chứa ví dụ B1 và gõ exampleB1.exe
để chạy chương trình.

Hình 2.16: Chạy ví dụ B1

20


Chương 3
Xây dựng và thực thi chương trình
3.1
3.1.1

Hệ thống các đơn vị
Đơn vị cơ bản

Các đơn vị cơ bản trong GEANT4 gồm có:
• millimet (mm)
• nano giây (ns)
• Mega electron volt (MeV)
• điện tích positron (eplus)
• độ Kelvin (kelvin)
• lượng vật chất tính bằng đơn vị mole (mole)

• cường độ sáng (candela)
• radian (radian)
• steradian (steradian)
Danh sách các đơn vị sử dụng trong GEANT4 được cho trong source/global/management/
include/G4SystemOfUnits.hh.

3.1.2

Cách khai báo đơn vị

Khi khai báo một giá trị trong GEANT4, tốt nhất là ta nên khai báo đơn vị kèm theo
bằng cách "nhân" với giá trị khai báo, ví dụ như:
G4double Step = 10∗ km , KineEnergy = 3 . 0 ∗ GeV , density = 1 . 5 ∗ mg/ cm3 ;

21


CHƯƠNG 3. XÂY DỰNG VÀ THỰC THI CHƯƠNG TRÌNH

Đặng Nguyên Phương

Trong trường hợp đọc dữ liệu từ bảng hay file ngoài không có đơn vị đi kèm, ta nên lập
tức gán đơn vị cho dữ liệu vừa đọc được, ví dụ:
f o r ( i n t j=0, j
Trong trường hợp muốn trình bày kết quả theo đơn vị mình muốn, ta "chia" kết quả cho
đơn vị đó.
G4cout << KineEnergy / keV << " keV" ;
G4cout << density / ( g/ cm3 )


<< " g /cm3" ;

Ngoài ra, ta cũng có thể để cho GEANT4 tự lựa chọn đơn vị trình bày phù hợp với giá
trị được cho bằng cách:
G4cout << G4BestUnit ( StepSize , " Length " ) ;

Trong trường hợp này, giá trị StepSize sẽ được trình bày theo một trong các đơn vị km,
m, mm, fermi,... tùy theo độ lớn của giá trị này.
Để khai báo một đơn vị mới không có trong danh sách của GEANT4, ta có thể làm 1
trong hai cách sau:
Cách 1: Sử dụng SystemOfUnits.h
#i n c l u d e " SystemOfUnits . h"
s t a t i c c o n s t G4double inch = 2 . 5 4 ∗ cm ;

Cách 2: Sử dụng hàm định nghĩa đơn vị:
G4UnitDefinition (name, symbol, category, value)
G4UnitDefinition ( "km/ hour " , "km/h" , " Speed " , km / ( 3 6 0 0 ∗ s ) ) ;
G4UnitDefinition ( " meter / ns " , "m/ ns " , " Speed " , m/ns ) ;

3.2
3.2.1

Cách thức xây dựng một ứng dụng trong GEANT4
Các bước cần thiết

GEANT4 chỉ là một công cụ, để có thể thực hiện mô phỏng một thí nghiệm hay đo đạc
nào đó ta phải tự xây dựng và biên dịch ứng dụng từ mã nguồn. Để xây dựng một ứng
dụng mô phỏng, cần thực hiện các bước sau đây:
• Xây dựng hình học (hình dạng, thể tích, vật liệu).
• Xác định các quá trình vật lý liên quan.

22


CHƯƠNG 3. XÂY DỰNG VÀ THỰC THI CHƯƠNG TRÌNH

Đặng Nguyên Phương

• Xác định một event được bắt đầu như thế nào.
• Xác định những thông tin cần thu nhận trong quá trình mô phỏng.
Ngoài ra, tùy trường hợp cũng cần thực hiện một số công việc như:
• Vẽ hình học, các vết của hạt.
• Xây dựng các lệnh cho giao diện tương tác.
• ...
Các thành phần cụ thể trong việc xây dựng một ứng dụng sẽ được trình bày ở những
phần sau.

3.2.2

Hàm main()

Là thành phần chính để xây dựng nên ứng dụng mô phỏng, có chức năng tổ chức các thực
thi các tính toán trong quá trình mô phỏng. Nội dung của main() sẽ thay đổi theo nhu
cầu của ứng dụng mô phỏng được đưa ra và do đó phải được cung cấp bởi người dùng.
Một ví dụ đơn giản cho hàm main():
#include "G4RunManager . hh"
#include "G4UImanager . hh"
#include " ExG4DetectorConstruction01 . hh"
#include " ExG4PhysicsList00 . hh"
#include " ExG4PrimaryGeneratorAction01 . hh"
i n t main ( )

{
// xay dung Run Manager
G4RunManager ∗ runManager = new G4RunManager ;
// t h i e t l a p c a c l o p ban dau can t h i e t
runManager−>SetUserInitialization ( new ExG4DetectorConstruction01 ) ;
runManager−>SetUserInitialization ( new ExG4PhysicsList00 ) ;
// t h i e t l a p u s e r a c t i o n
runManager−>SetUserAction ( new ExG4PrimaryGeneratorAction01 ) ;
// k h o i dong G4 k e r n e l
runManager−>Initialize ( ) ;
// l a y con t r o cho UI Manager va t h i e t l a p c a c bao cao
G4UImanager ∗ UI = G4UImanager : : GetUIpointer ( ) ;
UI−>ApplyCommand ( "/ run / v e r b o s e 1 " ) ;
UI−>ApplyCommand ( "/ e v e n t / v e r b o s e 1 " ) ;
UI−>ApplyCommand ( "/ t r a c k i n g / v e r b o s e 1" ) ;
// bat dau chay chuong t r i n h

23


CHƯƠNG 3. XÂY DỰNG VÀ THỰC THI CHƯƠNG TRÌNH

Đặng Nguyên Phương

i n t numberOfEvent = 3 ;
runManager−>BeamOn ( numberOfEvent ) ;
// k e t thuc
d e l e t e runManager ;
return 0;
}


Trong ví dụ trên, hàm main() được xây dựng bằng cách sử dụng 2 lớp công cụ có sẵn trong
GEANT4 (G4RunManager, G4UImanager) và 3 lớp được xây dựng từ các lớp công cụ có sẵn
(ExG4DetectorConstruction01, ExG4PhysicsList00 và ExG4PrimaryGeneratorAction01).
Mỗi lớp sẽ được trình bày cụ thể ơ những phần sau.

3.2.3

G4RunManager

Đây là lớp quan trọng cần phải có khi xây dựng ứng dụng. Lớp này quản lý quá trình
thực thi của toàn bộ chương trình mô phỏng, đồng thời quản lý vòng lặp event trong mỗi
lần chạy chương trình. Khi lớp G4RunManager được tạo ra, các lớp quản lý chủ yếu khác
cũng được khởi tạo và các lớp này cũng bị xóa khi G4RunManager bị xóa.
G4RunManager cũng đảm nhận vai trò quản lý các khởi tạo ban đầu, cung cấp những
thông tin cần thiết để vận hành mô phỏng, bao gồm cấu trúc của detector, các loại hạt,
các quá trình vật lý được mô phỏng, cách tạo ra hạt sơ cấp trong mỗi event, và các yêu
cầu cần thiết khác trong quá trình mô phỏng.
Trong ví dụ hàm main() ở trên, các dòng
runManager−>SetUserInitialization ( new ExG4DetectorConstruction01 ) ;
runManager−>SetUserInitialization ( new ExG4PhysicsList00 ) ;

tạo các đối tượng (object) mô tả hình học detector (ExG4DetectorConstruction01) và
các quá trình vật lý (ExG4PhysicsList00) và chuyển con trỏ của các đối tượng này cho
runManager. Các lớp ExG4DetectorConstruction01 và ExG4PhysicsList00 được xây
dựng từ các lớp công cụ G4VUserDetectorConstruction và G4VUserPhysicsList tương
ứng. Điều này cũng tương tự cho lớp ExG4PrimaryGeneratorAction01.
Dòng lệnh
runManager−>Initialize ( ) ;


thực hiện việc xây dựng detector, tạo các quá trình vật lý, tính toán tiết diện tương tác
tương ứng và các thiết lập khác cho việc chạy chương trình. Việc chạy chương trình được
thực hiện bằng dòng lệnh
i n t numberOfEvent = 3 ;
runManager−>BeamOn ( numberOfEvent ) ;

24


×