در این وبینار به معرفی ابزار Geant4 پرداخته ام
و کاربردها ی آن را بر اساس تجربیات خودم و با نگاه به مساله DNA بیان کرده ام.
در 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
v C++: ابزار Geant4 بر پایه آن نوشته شده است. لزومی ندارد یک برنامه نویس حرفهای باشید، فقط کافی است که با مفاهیم برنامه نویسی و ساختار الگوریتمها آَشنا باشید. بتوانید آن را درک کنید. موارد خاص خودتان را در مثالها پیدا کنید و در مواردی بسیار نادر و البته آسان آنها را بنویسید. این لینک را ببنید.
v مفهوم شیگرایی (Object Oriented Technology): یک شیوه برنامهنویسی است که ساختار یا بلوک اصلی اجزای آن، شیها میباشند. در واقع در این شیوه برنامهنویسی، برنامه به شی گرایش پیدا میکند. به این معنا که دادهها و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله میشوند و از این طریق، توابع بیگانهی خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. در برنامههای خیلی پیشرفته از این مفهوم استفاده خواهد شد و کاربر معمولی فقط باید بداند که Geant4 با این روش تمام پیشنیازهای اصلی برای شبیهسازی را یک بار ساخته است و او باید فقط قادر باشد آنها را درک و استفاده نماید. همچنین در صورت لزوم امکان اصلاح و سفارشی کردن اجزا با توجه به نیاز کاربر وجود دارد.
v Unix/Linux: محیط استاندارد برای اجرا است و بنابراین باید آشنایی مختصری با محیط و نیز اجرای کدهای C++ در آن وجود داشته باشد. در محیط ویندوز هم قابل Geant4 امکان اجرا دارد اما پیشنهاد تیم سازنده استفاده از محیط لینوکس است. اینجا را ببنید.
ابزار Geant4 در موضوعات بسیاری به کار برده شده و به مقاله مرجع معرفی ابزار بیش از 4000 بار استناد رخ داده است.
v large scale HEP experiments
v Space science and astrophysics
v Medical physics, nuclear medicine
v Radiation protection
v Accelerator physics
v Pest control, food irradiation
v Homeland security
کاربرهای معمولی (پژوهشگران یا دانشجویان دکتری یا ارشد با عناوین مرتبط به زمینههای مطرح شده بالا) برای طراحی مساله خود باید ابتدا مرتبطترین مثال را از بین مثالهای فراوان Geant4 پیدا کنند. سپس مثال مورد نظر را به دقت برای درک آن مطالعه نمایند. راهنمای مربوط به مثال را با عنوان readme که در همه مثالها وجود دارد، حتماً مطالعه نمایند. سپس مثال را با توجه به نیاز خود اصلاح نمایند. به عبارت دیگر کاربر معمولی نیازی نیست که از ابتدا شروع به نوشتن یک برنامه نماید. پیشنهاد میشود برای اضافه کردن هر تعریف جدیدی در مثال خودتان، حتماً به دیگر مثالهای نسخه نصب شده در سیستم خودتان مراجعه کنید.
کاربر معمولی بعد از آشنایی با هسته اصلی Geant4 قادر خواهد بود به کمک مثالهای متعددی که در منبع برنامه نصبی وجود دارد تبحر خود را افزایش داده و بعد از مدتی مساله مورد نظر خود را طراحی و اطلاعات مورد نیاز را از استخراج نماید. بنابراین ابتدا نگاهی کلی و بدون در نظر گرفتن جزئیات، به هسته Geant4 خواهیم داشت.
v Run مجموعهای از Eventها و با شرایط یکسان هندسه و ساختار شبیهسازی و یک تعریف مشخص و ثابت از فیزیک برهمکنشها در مسأله است. G4RunManager کلاس مدیریتی و G4UserRunAction کلاس اختیاری کاربر برای تعاریف مورد نیاز است.
v Event به عنوان واحد پایه در شبیهسازی تعریف میشود، یعنی هر ذره تابشی یک Event در نظر گرفته میشود. در ابتدای فرایند، ردها (track) تولید میشوند و در پشته (stack) نگهداری میشوند. trackها از پشته یکی یکی خارج شده و ردیابی میگردند. نتایج ثانویه هر track دوباره به پشته ارسال میشود. این فرایند تا تمام شدن پشته ادامه مییابد و وقتی پشته خالی شود یعنی یک event تمام شده است. کلاس G4Event اطلاعات یک event را در انتهای آن نمایش میدهد که شامل لیست ذزه ورودی و ذرات ایجاد شده در event است و همه ردها را به عنوان خروجی در خود دارد. G4EventManager کلاس مدیریتی و G4UserEventAction کلاس اختیاری کاربر برای تعاریف مورد نیاز است.
v Tracking: تصویر لحظهای ذره توسط track داده میشود. در آن همه کمیتهای فیزیکی متناظر به آن موقعیت وجود دارد و اطلاعات قبلی را در خود ندارد. کلاس G4Trac اطلاعات هر track را دارد. G4TrackingManager کلاس مدیریتی و G4UserTrackingAction کلاس اختیاری کاربر برای تعاریف مورد نیاز است. Track زمانی حذف میشود که:
o ذره از محیط شبیهسازی (جهان) خارج شود.
o واپاشی یا پراکندگی غیرالاستیک رخ دهد.
o انرژی جنبشی ذره به صفر برسد و فرایند “AtRest”ی نیاز هم نباشد.
o کاربر نیاز داشته باشد به طور دستی (مصنوعی) ذره را از بین ببرد (kill).
v Step: هر step شامل اطلاعات جزئی از یک track هست. یک track جمع stepها نیست. در عوض هر track با step به روزرسانی میشود.
در Geant4 همه ذرات تا آخرین مرحله از دست دادن همه انرژی جنبشی با توجه به فیزیک تعریف شده ردیابی میشوند. تنها محدودیت تعریف شده انرژی آستانه برای تولید ذرات ثانویه است. کاربر خود میتواند cut برای انرژی و برد و ... با توجه به مساله خاص خود تعریف کند.
به نام رب رحمن
مروری کوتاه بر تواناییها و چگونگی استفاده از ابزار Geant4 در شبیهسازیها:
v Geant4 ابزاری رایگان و منبع باز است.
v فایل منبع و کتابخانهها و راهنمای کاربر و ابزار مورد نیاز از سایت http://cern.ch/geant4 قابل دانلود هست.
v مثالهای مختلف و بسیاری در منبع برنامه وجود دارد که کمک بسیار ارزشمندی برای تسریع یادگیری و ساخت و اجرای برنامه شبیهسازی هر پژوهشگری خواهد بود.
v انجمن بسیار کاربردی به آدرس http://hypernews.slac.stanford.edu/HyperNews/geant4/top.pl برای به اشتراک گذاشتن و بحث درباره مسائل مختلف شامل گروههای مختلف وجود دارد. هنگامی که سوالی مطرح میشود تیم اصلی طراح ابزار هم در پاسخدهی مشارکت بسیار خوبی دارند.
v Geant4 ابزاری قدرتمند و همچنین پیچیدهای هست.
v غیرممکن هست همه نکات آن در یک روز آموزش داده شود.
v غیرممکن هست همه نکات در یک روز یاد گرفته شود.
v این ارائه سعی در ایجاد یک چشمانداز کلی به Geant4 و روشی برای چگونگی استفاده از آن است.
v پیدا کردن مسیر درست استفاده در ابزار پیچیده Geant4 کار آسانی نیست.
v چشم انداز روشن به یادگیری بیشتر کمک خواهد کرد.
شبیهسازی نقش مهمی در طراحی، ارزیابی عملکرد آزمایش و خطرات بالقوه، تست، توسعه و بهینهسازی در پروژههای آزمایشگاهی دارد. هدف ابزار Geant4 شبیهسازی عبور ذرات از ماده هست.
1. گام به گامِ عبور ذره در ماده و برهمکنشهای رخ داده با آن و میدانهای خارجی تعریف شده را ردیابی میکند تا زمانی که
v ذره همه انرژی جنبشیاش را از دست بدهد.
v به علت فرآیندهای فیزیکی ذره از بین برود.
v به مرز محیط شبیهسازی برسد.
2. کاربر قادر خواهد بود اطلاعات عبور ذره از ماده شامل جزئیات فرایندهای رخ داده در شبیهسازی را در مراحل زیر داشته باشد:
v در شروع و پایان عبور هر ذره
v در آغاز و شروع هر گام
v در هر محل خاص از سیستم طراحی شده توسط کاربر
سه اطلاعات اساسی را باید در هر شبیهسازی فراهم سازید:
v طراحی هندسه شبیهسازی و تعریف مواد به کار رفته در آن
v تعریف نوع ذره تابشی به همراه انرژی، مکان و جهت و کیفیت چگونگی تابش
v انتخاب فیزیک مناسب با توجه به مواد هندسه شبیهسازی و نوع تابش
در صورت نیاز میتوان میدانهای الکتریکی و مغناطیسی را هم اضافه نمود. با انجام این سه مرحله Geant4 تمام رویدادها را با توجه به هندسه طراحی شده و مواد آن و فیزیک مورد نظر ردیابی خواهد کرد.
در نهایت با توجه به طراحی انجام شده، کاربر میتواند دادههای مورد نیازش را از برنامه استخراج کند.