اجزای DetectorConstruction و نحوه تعریف آنها-مقدماتی (1)
برای درک بهتر لطفاً مثال B1 را باز کنید و سپس از فولدر src فایل B1DetectorConstruction را باز کنید.
در ابتدای فایل یک سری کلاس اصطلاحاً Include شده است که با توجه به تعاریف و توضیحات بعدی متوجه خواهید شد که برای مثال خاص خودتان نیاز هست که چه اجزایی را اضافه کنید.
اما یک تعداد فایل مشخص باید وجود داشته باشد که ابتد ا یک به یک آنها توضیح داده می شود:
#include "B1DetectorConstruction.hh"
همان کلاس مکمل فایلتان است که در فولدر Include قرار دارد و گاهی نیاز هست تغییراتی در آن انجام داد.
همان طور که قبلاْ گفته شد به ازای هر کلاسی در فولدر src نیاز به مکمل آن در فولدر Include است.
#include "G4NistManager.hh"
#include "G4Material.hh"
همچنین با کمک این دو کلاس می توانید اطلاعات خروجی تان را، برای مثال در چاپ در ترمینال، به صورت زیر تعریف کنید. طول stepsize را بر اساس واحد طول متناسب با مقدار آن چاپ خواهد کرد. برای کمیت های دیگر نیز مانند انرژی و زمان و طول و ...می توان از این دستورات استفاده کرد: Length, Time, Energyو ...
با این دستور چاپ
G4cout << G4BestUnit(StepSize, "Length");
خروجی در ترمینال نمایش داده خواهد شد طول گام به همراه واحدش است.
نیاز هست که سه بخش اصلی برای تک تک بخشهای سیستم تعریف کنید.
تعریف هندسه مساله
اولین بخش تعریف هندسه است. به این معنا که باید مشخص کنید حجم مورد نظرتان چه هندسه ای است و چه ابعادی دارد. برای مثال کره هست یا مکعب یا .... و اندازه ابعادش چقدر است.
با کمک دستورات زیر هندسه تعریف خواهد شد:
G4Box* solidWorld =
new G4Box("World", //its name
0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ); //its size
یا
G4Trd* solidShape2 =
new G4Trd("Shape2", //its name
0.5*shape2_dxa, 0.5*shape2_dxb,
0.5*shape2_dya, 0.5*shape2_dyb, 0.5*shape2_dz); //its size
G4Box* solidWorld یعنی از کلاس G4Box یک هندسه به نام solidWorld ساخته خواهد شد. گاهی برای برون کشی داده فقط نیاز به نام solidهندسه هست.
یا
G4Trd* solidShape2 یعنی از کلاس G4Trd یک هندسه به نام solidShape2 ساخته خواهد شد.
در خط دوم مشخصات هر هندسه تعریف میشود:
اسم کلی آن: "world" یا "Shape2"
ابعاد "world" یعنی طول و عرض و ارتفاع آن:
0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ
ابعاد "Shape2" یعنی طول (کمترین و بیشترین مقدار آن) و عرض (کمترین و بیشترین مقدار آن) و ارتفاع: 0.5*shape2_dxa, 0.5*shape2_dxb, 0.5*shape2_dya, 0.5*shape2_dyb, 0.5*shape2_dz
۴ نوع هندسه می توان تعریف کرد:
تعریف موقعیت هندسه
حال باید موقعیت هندسه ساخته شده را تعیین کرد. مرکز جهان مرکز محور مختصات است و جهت خاصی را هم به آن نسبت نمی دهند زیرا معنایی ندارد. در مورد هندسه های بعدی که اجزای سازنده خواهند بود باید دقت کرد که محل شان و دروان شان (اگر وجود داشته باشد) باید نسبت به مرکز جهان و محورهای مختصات تعریف شده اولیه مشخص شود. هنگامی که هندسه ای درون هندسه ی دیگری قرار می گیرد باید دقت کرد که برای آن باید مادری تعریف کرد که آن را در بر گرفته است.
G4VPhysicalVolume* physWorld =
new G4PVPlacement(0, //no rotation
G4ThreeVector(), //at (0,0,0)
logicWorld, //its logical volume
"World", //its name
0, //its mother volume
false, //no boolean operation
0, //copy number
checkOverlaps); //overlaps checking
برای تعریف فیزیک به ترتیب دوران، محل مرکز جسم، نام logic آن، نام کلی آن، نام مادر (اولین هندسه در بردارنده آن هندسه)، استفاده از متغیرهای بولین برای تعاریف هندسه های پیچیده تر، عدد کپی هندسه و در نهایت بررسی روی هم افتادگی تعربف خواهد شد. برای هندسه جهان دروان آن معنایی ندارد زیرا هندسه ی غیر از آن وجود ندارد. محل مرکز آن هم مرکز محور مختصات خواهد بود. اما برای هندسه های بعدی موقعیت شان باید با توجه به مرکز هندسی مادرشان تعریف شود. برای مثال شکل ۲ در هندسه دیگری به نام logicEnv قرار دارد. دقت کنید که نام logic مادر باید نوشته شود نه نام کلی آن!
new G4PVPlacement(0, //no rotation
pos2, //at position
logicShape2, //its logical volume
"Shape2", //its name
logicEnv, //its mother volume
false, //no boolean operation
0, //copy number
checkOverlaps); //overlaps checking
در انتهای کلاس دتکتور باید return physWorld; وجود داشته باشد.
در Geant4 سه مدل مثال تعریف شده است:
v Basice: مثالهای بسیار سادهای هستند که برای کاربران تازه کار بسیار مفید خواهند بود. با مطالعه این مثالها کاربر آشنایی نسبتاً خوبی با اجزای مختلف Geant4 پیدا خواهد کرد.
v Extended: مجموعهای از مثالهایی هستند که نیاز به کتابخانههای بیشتری دارند و موارد خاصی در آن جای گرفته است.
v Advanced: برنامههای کاربردی به صورت مثالهای کاملی در آن قرار دارند. البته کاربران میتوانند با توجه به نیاز خود آنها را اصلاح نماید.
ExampleB1
- Simple geometry with a few solids
- Scoring total dose in a selected volume user action classes
ExampleB2
- Simplified tracker geometry with global constant magnetic field
- Scoring within tracker via G4 sensitive detector and hits
- Started from novice/N02 example
ExampleB3
- Schematic Positron Emitted Tomography system
- Radioactive source
- Scoring within Crystals via G4 scorers
ExampleB4
- Simplified calorimeter with layers of two materials
- Scoring within layers in four ways: via user actions (a), via user own
object (b), via G4 sensitive detector and hits (c) and via scorers (d)
- Started from novice/N03 example
analysis
- Histogramming through the AIDA interface
biasing
- Examples of event biasing, scoring and reverse-MC
common
- A set of common classes which can be reused in other examples demonstrating
just a particular feature
electromagnetic
- Specific EM physics simulation with histogramming
errorpropagation
- Use of the error propagation utility (Geant4e)
eventgenerator
- Applications using interface to HepMC
exoticphysics
- Exotic simulation applications (classical magnetic monopole, etc...)
field
- Specific simulation setups in magnetic field
g3tog3
- Examples of usage of the g3tog4 converter tool
geometry
- Specific geometry examples and tools: OLAP tool for detection
of overlapping geometries
hadronic
- Specific hadronic physics simulation with histogramming
medical
- Specific examples for medical physics applications
optical
- Examples of generic optical processes simulation setups
parallel
- Examples of event-level parallelism in Geant4 using either the
TOP-C library, Intel-TBB library or MPI technique
parameterisations
- Examples for fast shower parameterisations according to specific models
persistency
- Persistency of geometry (GDML or ASCII) and simulation output
polarisation
- Use of physics processes including polarization
radioactivedecay
- Examples to simulate the decays of radioactive isotopes and
induced radioactivity resulted from nuclear interactions
runAndEvent
- Examples to demonstrate how to connect the information between
primary particles and hits and utilize user-information classes
visualization
- Specific visualization features and graphical customisations
air_shower
- Simulation of the ULTRA detector for UV and charged particles
detection in cosmic rays
amsEcal
- Simplified AMS Ecal calorimeter structure
brachytherapy
- Setup for brachytherapy Ir-192 HDR source
ChargeExchangeMC
- Charge Exchange Monte Carlo
composite_calorimeter
- Test-beam simulation used in CMS against real data taken
in 1996 in a CMS Hadron calorimeter test-beam at LHC
dnageometry
- Setup of a realistic nucleus model of a cell, including chromosomes,
in combination with Geant4-DNA physics
eRosita
- Simplified eROSITA X-ray telescope setup for instrumental background
simulations for fluorescence measurements.
gammaknife
- Application specifically developed to simulate an advanced device for
Stereotactic Radiosurgery; reproduces a Leksell Gamma-Knife unit model C
gammaray_telescope
- Simulation of a typical telescope for gamma ray analysis
hadrontherapy
- Simulation of a hadron therapy beam line
human_phantom
- Anthropomorphic phantoms (male and female) based on MIRD/ORNL model
with geometry description derived from GDML persistent files
iort_therapy
- Application specifically developed to address typical needs related to
the Intra-Operative Radio-Therapy (IORT) technique
lAr_calorimeter
- Simulation of the Liquid Argon Calorimeter of the ATLAS
Detector at LHC
medical_linac
- Simulation of energy deposit in a Phantom filled with water
for a typical linac used for intensity modulated radiation therapy
microbeam
- Simulation of the cellular irradiation beam line installed on the AIFIRA
electrostatic accelerator facility located at CENBG, France
microelectronics
- Simulating tracks of a 5 MeV proton in silicon.
nanobeam
- Simulation of the beam optics of the nanobeam line installed on the AIFIRA
electrostatic accelerator facility located at CENBG, France.
purging_magnet
- Simulation of electrons traveling through a 3D magnetic field of a
strong purging magnet used for treatment head in a medical environment
radioprotection
- Modeling a simplified diamond microdosimeter for radioprotection
applications in space environments.
underground_physics
- Setup of an underground dark matter experiment
xray_fluorescence
- Test beam to characterize the response function of an
HPGe detector used to measure fluorescence emissions
xray_telescope
- Realistic simulation of an X-ray Telescope