(Geometry And Tracking) http://geant4.cern.ch Adnan Kılıç Uludağ Üniversitesi

Benzer belgeler
GEANT4: GiRiŞ ve ÖRNEKLER

GEANT4: GiRiŞ ve ÖRNEKLER

Geant4. Kısa Bir Tanıtım

HPFBU 2014 TOKAT KIŞ OKULU GEANT4 ÇALIŞMASI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

1 PROGRAMLAMAYA GİRİŞ

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

CAIN ile Işınlık Hesabı

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesneye Yönelmek. veya sadece formülleri bilgisayarın anlayacağı dile çevirmeyi bilen birinin C++ kullanma yöntemleri. Gökhan Ünel

BİL-142 Bilgisayar Programlama II

CERN Bağlamında İleri Fizik Uygulamaları

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Bölüm 5. Tıbbi Görüntüleme Yöntemlerinin Temel İlkeleri. Prof. Dr. Bahadır BOYACIOĞLU

Theory Tajik (Tajikistan)

--AccTR-- Hızlandırıcı Fiziği Tartışma Takımı.

ALGIÇ BENZETİMİ. V. ERKCAN ÖZCAN, University College London

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Göstericiler (Pointers)

Teknikleri. Önsöz. iskender atasoy

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR

Alüminyum Hedefte Depolanan Enerjinin Elektron Enerjisi ile Değişimi. Variation of Deposition Energy with Electron Energy in Aluminum Target

TURKFAB Tesisinin Araş0rma Potansiyeli, Kullanıcı Profili ve Üreteceği Katma Değer

C++ Dersi: Nesne Tabanlı Programlama

SquidGuard Kurulumu. Öncelikle gerekli paket temin edilmelidir. adresinden temin edilebilir. Basitçe kurulumu ;

C++ Dersi: Nesne Tabanlı Programlama

Problem B. Beton duvar (perde) Beton. E = ksi, Poisson oranı = 0.2. Yapılacaklar

Object-Oriented Programming Lab Shape, TwoDShape, ThreeDShape, Disk, Square, Sphere, Cube class hiyerarşisi.

WebInstaller. 1. Kurulum Đçin Gereksinimler

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İNSTAGRAM:kimyaci_glcn_hoca

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Squid i Follow X-Forwarded-For headers Yaması İle Patchlemek

Örnek 1 (Virtüel iş çözümü için; Bakınız : Ders Notu Sayfa 23 - Örnek 4)

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Ercan Piliçer Uludağ Üniversitesi (Araş.Gör.Dr.) INFN-Perugia (Post-Doc)

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNEYE YÖNELİK PROGRAMLAMA

Parçacık Fiziğinde Korunum Yasaları

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

BİLG Dr. Mustafa T. Babagil 1

8.333 İstatistiksel Mekanik I: Parçacıkların İstatistiksel Mekaniği

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

Hızlandırıcılar ve Çarpıştırıcılar

C Konsol ve Komut Satırı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

#ifndef COMPLEX_H #define COMPLEX_H

MODÜL 3 HTML İLE STİL ŞABLONLARI

CERN'deki Büyük Hadron Çarpıştırıcısı ve LCG (LHC Computing Grid) Projesi

ELN1001 BİLGİSAYAR PROGRAMLAMA I

C++ Dersi: Nesne Tabanlı Programlama

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

BTEP243 Ders 3. class Yazım Kuralı:

Qt Temelleri. Eren BAŞTÜRK.

3-D. İzometrik snap/grid ayarı. İzometrik çizim. İzometrik çizim. Geometrik Modeller. 3-D ye başlangıç. İzometrik çemberler. İzometrik ölçülendirme

A ve B düğüm noktalarında X yönündeki yer değiştirmeleri ve mesnet reaksiyonlarını bulunuz.

C++ Dersi: Nesne Tabanlı Programlama

Vakum Teknolojisi * Prof. Dr. Ergun GÜLTEKİN. İstanbul Üniversitesi Fen Fakültesi

Parmela Proje Soruları Çözümleri. 9 Nisan Esin Çavlan & Ece Aşılar

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Parçacık Fabrikalarında Fizik: B-Kuarklı ve C-Kuarklı Mezonlar Çalıştayı, Mart 2012, HTE, Ankara

SQL 2005 SQL STUDIO MANAGER ACP YAZILIMI KURULUM KILAVUZU

GENEL KİMYA. Yrd.Doç.Dr. Tuba YETİM

E-Prints: Açık Erişimli Arşiv Oluşturma Yazılımı; Kurulumu-Kullanımı-Özellikleri

DERS ÖĞRETİM PLANI. (Bölümden Bağımsız hazırlanmıştır

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Problem X. Kafes Kirişli Köprü. Çelik. E = ksi Poisson oranı = 0.3 Tüm elemanlar W6X12 Fy = 36 ksi. Betonarme Köprü Tabliyesi

8. İŞARETCİLER (POINTERS)

BİLGİSAYAR DESTEKLİ TASARIM HAFTA 6 COSMOSWORKS İLE ANALİZ

CALYPSO. İlkay TÜRK ÇAKIR Türkiye Atom Enerjisi Kurumu. Sarayköy Nükleer Araştırma ve Eğitim Merkezi V. UPHDYO

Şekil 2.31: Proje yöneticisi penceresinden değişkenleri tanımlama

Sınav tarihi : Süre : 60 dak.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Problemin çözümünde şu program olanakları kullanılmaktadır

CAIN PROGRAMI ile DEMET-DEMET SĐMÜLASYONU

Öğr. Gör. Dr. Demet SARIYER

MAK4061 BİLGİSAYAR DESTEKLİ TASARIM

Sekil 1 de plani verilen yapisal sistemin dinamik analizini yaparak, 1. ve 5. modlara ait periyotlari hesaplayiniz.

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Doğukan Akçay¹, Fadime Akman², Zafer Karagüler², Kadir Akgüngör³. XIV. Ulusal Medikal Fizik Kongresi Antalya, 2013

Mantıksal Kontrol ve Döngü Komutları

Öğr. Gör. Demet SARIYER

ULUSAL PROTON HIZLANDIRICILARI ÇALIŞTAYI

EME 3117 SİSTEM SİMÜLASYONU. Rassal Sayı ve Rassal Değer. Üretimi. Rassal Sayı Üretimi

Öğr. Gör. Demet SARIYER

ALIfiTIRMALARIN ÇÖZÜMÜ

RADYASYON FİZİĞİ 1. Prof. Dr. Kıvanç Kamburoğlu

Elektromanyetik ve Hadron Kalorimetrelerinin Farklı Açılardaki Verimleri

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

Mezon Molekülleri ve X(3872)

Son yıllarda bilgisayar teknolojisinin ilerlemesiyle ön plana çıktı.

Transkript:

(Geometry And Tracking) http://geant4.cern.ch Adnan Kılıç Uludağ Üniversitesi 1

TARİHTE GEANT4-1 Ø Geant3 e modern hesaplama tekniği nasıl uygulanabilir ( CERN ve KEK (1993) )? Ø RD44 Nesne Yönelimli teknoloji proje önerisi (1994)- Cern Det. Araş. Geliş. Projesi Proje, Avrupa, Japonya, Kanada and Birleşmiş milletlerde yüksek enerji fiziği deneylerine katlan, çok sayıda ensvtü ve üniversitelerden fizikçiler ve yazılım mühendislerinden oluşan çok sayıda katlımcıyla ortaya çıkt. Ø Amaç, nükleer fizik, hızlandırıcı fiziği, uzay and medikal fizik topluluğunun yararlanabileceği bir program gelişvrmekv. 2

TARİHTE GEANT4-2 Aralık 94 Proje başlama Nisan 97 - ilk alpha Haziran 98 - ilk beta Aralık 98 - ilk Geant4 halka açık sürüm...... 17 Aralık 04 - Geant4 versiyon 7.0 30 Haziran 05 - Geant4 versiyon 7.1 16 Aralık 05 - Geant4 versiyon 8.0 10 Şubat 06 - Geant4 8.0- patch01 30 Haziran 06 - Geant4 version 8.1 27 Temmuz 06 - Geant4 8.1- patch01 17 Aralık 2010 Geant4 versiyon 9.4 2 Aralık 2011 Geant versiyon 9.5 27 Mart 2012 Geant4 versiyon 9.5- patch- 01 Her yıl ortalama 2 veya 3 versiyon sağlanmaktadır. En son versiyon: 28 Haziran 2013- Geant4 10.0- beta 3

DÜNYADA GEANT4 HARP Univ. Barcelona PPARC Lebedev Helsinki Inst. Ph. Collaborators also from non-member institutions, including Budker Inst. of Physics IHEP Protvino MEPHI Moscow Pittsburg University 4

Uygulama Alanları (HEP) BaBar Use of Geant4 in the Babar Detector SimulaVon ATLAS (LHC) Use of Geant4 in the ATLAS Detector SimulaVon CMS and OSCAR (LHC) Use of Geant4 in the CMS experiment GAUSS (LHCb) Use of Geant4 in the GAUSS simulavon program of the LHCb experiment ALICE (LHC) Use of Geant4 in the ALICE Geant4 SimulaVon Fermilab Use of Geant4 at Fermilab for different applicavons ILC Use of Geant4 for the InternaVonal Linear Collider project BDSIM Toolkit based on Geant4 for accelerator beamline simulavon 5

Uygulama Alanları (Medikal) Harald Paganetti) GAMOS Tıbba Yönelik Benzetişimler için Geant4-tabanlı program (PET, Dosimetry, Radiotherapy, Hadrotherapy). GATE (PET ve SPECT, CT ve Radiotherapy için Geant4- tabanlı program) G4EMU Geant4 European Medical User Organization (Hadrotherapy demet hamnın benzevşimi için Geant4- tabanlı program) G4MED (Japonya) Geant4 Medical Physics in Japan G4NAMU Geant4 North American Medical User Organization (Beam Therapy, demet ham tasarımı, Dozimetri, Radyasyondan Korunma, Detektör tasarımı vb.) Geant4 Medical North America J. Perl, D. 6

Uygulama Alanları (Space & RadiaXon) European Space Agency (ESA) Ø Geant4 SimulaVon of XMM- Newton RadiaVon Environment (X- Ray Mirrors) Ø Space Environment InformaVon System (SPENVIS) (a web- based interface for assessing the space environment and its effects v v v on spacecraq systems and crews.) MULASSIS integrated SPENVIS SYSTEM Sector Shielding Analysis Tool (SSAT) integrated SPENVIS SYSTEM Geant4- based Microdosimetry Analysis Tool (GEMAT) Ø Geant4 SimulaVon of Dose EsVmaVon by SimulaVon of the ISS RadiaVon Environment (DESIRE) QineXQ Ø Space EnergeVc ParVcle Transport and InteracVon Modeling studies for ESA Science Studies (SEPTIMESS) Ø RadiaVon Effects and Analysis Tools (REAT): MUlV- LAyered Shielding SimulaVon Soqware (MULASSIS) and Geant4 Microdosimetry Analysis Tool (GEMAT) Ø General ParVcle Source (GPS, G4 class name: G4GeneralParVcleSource) 7

GEANT4'ÜN AVANTAJLARI Kompleks Geometriler etkin şekilde tanımlanabilir ManyeVk / elektrik alan tanımlama Malzeme tanımlama Uygulama alanına göre çeşitli fizik süreçleri tanımlanabilir Hızlı ve hassas görüntüleme Analiz programları GelişVrilebilir olması OPEN SOURCE (Ücretsiz olarak indirilebilir) h`p://geant4.cern.ch GEANT4'ÜN DEZAVANTAJLARI Eğer yeniyseniz C++ ve Unix çevresini öğrenme Eğer bir C veya C++ programcısıysanız bu bir avantaj Diğer Monte Carlo Kodları kadar kompleks 8

GEANT4 TE Ø Parçacık, v World hacmin dışına çıkıncaya kadar v kinevk enerjisi sıvra düşünceye kadar v bir etkileşme veya bozunmayla yok oluncaya kadar malzeme içerisinde adım adım taşınır. Ø Kullanıcı benzevşim sonuçlarını almak için taşınım sürecine erişebilir: v başında veya sonunda v herbir taşınıma ait adımın (step) sonunda v parçacık detektörün duyar hacmi içerisine girdiği zaman 9

GEANT4 DİLİ Geant4'te sıklıkla kullanılan kelimeler: Run, Event, Track, Step... Run: Aynı detektör ve fiziksel koşulları paylaşan olaylar topluluğudur. Run öncesinde, geometride kullanılan malzemeye ve tanımlanan cut değerlerine göre tesir kesiv tabloları hesaplanır. Event: Geant4'te benzevşimin en temel birimidir. Track: Bir parçacığın fotoğravdır. Step: Etkileşme oluncaya kadar alınan yol. TrackID=1 ParentID=0 TrackID=2 ParentID=1 Uzaysal konum, enerji, hacmin ismi vb. 10

GEANT4 Te PARÇACIK G4Track Konumu, geometrik bilgisi, vb Geant4' de parçacık 3 sınıf düzeyi ile temsil edilir G4DynamicParXcle Parçacığın momentumu, enerjisi, spini gibi Dinamik fiziksel özellikleri hakkında bilgileri sağlar Herbir G4Track nesnesi kendine ait ve tek G4DynamicParVcle nesnesine sahipvr G4ParXcleDefiniXon Parçacığın yükü, kütlesi, yaşam süresi, bozunma kanalları gibi StaVk özellikleri hakkında bilgileri sağlar Parçacık özelliklerinin listesi l PDG kodu l Kütlesi l Elektrik yükü l Spin, izospin, parite l Magnetik moment l Kuark içerikleri l Yaşam süresi, bozunma kanalları Katogoriler Gluon / kuark / di-kuark Leptonlar (e, mu, tau...) Mezonlar (pi, K, D, B, psi.) Baryonlar (p,n...) İyonlar Diğerler 11

Uygulama Aşamaları Ø G4State_PreInit Materyal, Geometri, Parçacık ve/veya fizik süreçlerin başlatlması/tanımlanması Ø G4State_Idle Simulasyonu başlatmaya hazır Ø G4State_GeomClosed Run (event loop) Geometri opvmize edilir ve bir olayı simule etmek için hazırdır Ø G4State_EventProc Bir olay yürütülür Ø G4State_Quit (Normal) sonlandırma Ø G4State_Abort Kural dışı bir durum oluşması ve programın sonlandırılması initialize beamon PreInit GeomClosed EventProc Abort Idle exit Quit 12

GEANT4 TE Parçacık Takibi 13

Cut - 1 Ø Cut, bir parçacığın takip edilme menzilini belirler. Ø Cut, uzunluk olarak tanımlanır ve malzemeye dayanarak enerjiye dönüştürülür. Ø Cut lar sadece gamma, elektron ve pozitronlar için tanımlanabilir. Ø Birincil parçacıklar ikincil elektron veya gamma üreterek enerji kaybederler. Eğer birincil parçacık, ikincil üretmek (cut değeri kadar yol alabilecek) için gerekli enerjiye sahip değilse: v v Kesikli enerji kaybı sona erer ( artk ikincil ürevlmez) Parçacık sürekli enerji kaybıyla enerji kaybederek sıvr enerjiye kadar takip edilir. Ø Geant4 varsayılan cut değerini 1 mm olarak önerir. Ø Kullanıcının en iyi değeri belirlemesi gerekir. Bu detektörün duyar elemanlarının boyutuna ve bilgisayarınızın CPU zamanına bağlı olacaktr. Ø Fizik listesinde SetCuts() fonksiyonuyla kurulur. 14

Cut - 2 ""#$%&'()*%+",-$./-%0&"1/2"3+.$45"6') <=="9.:"A"*+ BC$D#E"/?@A0*+4 (?0%$*@.).$" 6')"7"8"9.: 6')"7";<=">.: "#$%&'()*%+"$?+4."7!2<"@@! 15

Main Programı Ø Geant4 main() sağlamaz. Ø Kullanıcının main() içerisinde v G4RunManager (veya kendi türevlmiş sınıvnı) yapılandırması v Zorunlu kullanıcı sınıflarını G4RunManager a bildirilmesi gerekir: G4VUserDetectorConstruc/on G4VUserPhysicsList G4VUserPrimaryGeneratorAc/on Ø Kullanıcı kendi main() I içerisinde, v VisManager, (G)UI seanslarını, seçmeli kullanıcı eylem sınıflarını, kendi AnalysisManager ını tanımlamalıdır. 16

Kullanıcı Sınıfları Başlangıç sınıfları Başlangıçta çağırılırlar G4VUserDetectorConstruc/on G4VUserPhysicsList Eylem Sınıfları Çalışma çevrimi süresince çağırılırlar G4VUserPrimaryGeneratorAc/on G4UserRunAcVon G4UserEventAcVon G4UserStackingAcVon G4UserTrackingAcVon G4UserSteppingAcVon Zorunlu Sınıflar: " G4VUserDetectorConstruction Deneysel kurulum tanımlanır " G4VUserPhysicsList Kullanılmak istenen fizik seçilir " G4VUserPrimaryGeneratorAction Birincil olaylar üretilir. 17

İsteğe Bağlı Kullanıcı Sınıflar G4UserRunAction Ø G4Run* GenerateRun() Fizik tabloları etkileyecek değişken tanımlaması Ø void BeginOfRunAction(const G4Run*) Histogramların tanımlanması Ø void EndOfRunAction(const G4Run*) Histogramların kayıt edilmesi Çalıştırma sonuçlarının analizi G4UserTrackingAction Ø void PreUserTrackingAction(const G4Track*) Parçacık izinin depolanması/depolanmaması Ø void PostUserTrackingAction(const G4Track*) Gereksiz parçacık izlerinin silinmesi G4UserStackingAction void PrepareNewEvent() (Öncelik kontrolü resetlenir) Ø void ClassifyNewTrack(const G4Track*) (Urgent, Waiting, PostponeToNextEvent, Kill) Ø void NewStage() G4UserEventAction Ø void BeginOfEventAction(const G4Event*) Bir olayın seçilmesi Olay ile ilgili değişkenlerin sıfırlanması Ø void EndOfEventAction(const G4Event*) Bir olay için analizlerin yapılması G4UserSteppingAction Ø void UserSteppingAction(const G4Step*) Bir adım için gerekli bilgilerin alınması 18

Bir main() Örneği (batch program): #include G4RunManager.hh // Geant4 ten run manager ın deklerasyonu #include G4UImanager.hh // Geant4 ten User interface manager ın deklerasyonu #include MyDetectorConstrucXon.hh //Kullanıcıdan; detektör geometrisinin tanımı #include MyPhysicsList.hh // Kullanıcıdan, fizik süreçleri listesinin eklenmesi #include MyPrimaryGenerator.hh // Kullanıcıdan, event kinemavğinin eklenmesi int main () { G4RunManager* runmanager=new G4RunManager; // run manager runmanager- >SetUserIniValizaVon(new MyDetectorConstrucVon); // geometri runmanager- >SetUserIniValizaVon(new MyPhysicsList); // fizik runmanager- >SetUserAcVon(new MyPrimaryGenerator); // kinemavk runmanager- >IniValize(); // run başlatma G4UImanager* UI=G4UImanager::GetUIpointer(); // UI ye işaretçi UI- >ApplyCommand( run/verbose 1 ); // print düzeyi int numberofevent=3; // run yapılacak event ların sayısı runmanager- >BeamOn(numberOfEvent); // event ları ürevlmesi delete runmanager; // run sonu } return 0; 19

Bir makro dosyalı batch mod için main() - 1 int main (int argc, char** argv) { // varsayılan run manager ı yapılandır G4RunManager* runmanager = new G4RunManager; runmanager- >SetUserIniValizaVon(new MyDetectorConstrucVon); runmanager- >SetUserIniValizaVon(new MyPhysicsList) runmanager- >SetUserAcVon(new MyPrimaryGeneratorAcVon); runmanager- >IniValize(); //makro dosyayı oku G4UIManager* UI = G4UImanager::GetUIpointer(); G4String command = /control/execute ; G4String filename = argv[1]; UI- >ApplyCommand(command+fileName); } delete runmanager; return 0; 20

Bir makro dosyalı batch mod için main() - 2 Ø İlk olarak Geant4 programını çalıştrılmalı, Konsolda yalnızca main() fonksiyonunun tanımlandığı source dosyanın ismi ve yanına Komutların yazılı olduğu makronun ismi yazılarak >detector run.macro Burada detector executable nesnenin adıdır, run.macro bir komut dosyasıdır: # set verbose level for this run /run/verbose 2 /event/verbose 0 /tracking/verbose 2 # 100 electrons of 1GeV Energy /gun/parvcle e- /gun/energy 1 GeV /run/beamon 100 21

İnterakXf mod için main() - 1 int main(int argc, char** argv) { G4RunManager* runmanager = new G4RunManager; runmanager- >SetUserIniValizaVon(new MyDetectorConstrucVon); runmanager- >SetUserIniValizaVon(new MyPhysicsList); G4VisManager* vismanager = new MyVisManager; vismanager- >inivalize(); runmanager- >SetUserAcVon(new MyPrimaryGeneratorAcVon); runmanager- >IniValize(); G4UIsession* session = new G4UIterminal; session- >SessionStart(); delete session; } delete vismanager; delete runmanager; return 0; 22

İnterakXf mod için main() - 2 Ø İlk olarak Geant4 programını çalıştrılmalı, Konsolda yalnızca main() fonksiyonunun tanımlandığı source dosyanın ismi yazılarak >detector Burada detector executable nesnenin adıdır Ø IniValizaVon dan sonra konsol da Idle> Ø Bu aşamada interakvf kısım başlamış durumdadır: Idle> /vis~/create_view/new_graphics_system DAWN Idle> /vis/draw/current Idle> /run/verbose 1 Idle> /event/verbose 1 Idle> /tracking/verbose 1 Idle> /gun/parvcle mu+ Idle> /gun/energy 10 GeV Idle> /run/beamon 1 Idle> /vis/show/view Vb. 23

Materyal Tanımlama - 1 Basit materyal tanımlama #include G4Material.hh G4double density=1.390*g/cm3; G4double a=39.95*g/mole; G4double z=18.; G4String name; G4Material* LAr = new G4Material(name= Liquid Argon, z, a, density); Molekül tanımlama #include G4Element.hh #include G4Material.hh... G4double a=1.01*g/mole; G4double z; G4String name,symbol; G4Element* H = new G4Element(name= Hydrogen, symbol= H,z=1.,a); a=16.0*g/mole; G4Element* O = new G4Element(name= Oxygen, symbol= O,z=8.,a); G4double density=1.000*g/cm3; G4int ncomponent,natoms; G4Material* H2O = new G4Material(name= Water,density,ncomponents=2); H2O- >AddElement(H,natoms=2); H2O- >AddElement(O,natoms=1); 24

Materyal Tanımlama - 2 #include G4Element.hh #include G4Material.hh... G4double a,z,fracvonmass,density; G4String name,symbol; G4int ncomponents,natoms; Bir materyal ve element karışımını tanımlama G4Element* Ar = new G4Element(name= Argon, symbol= Ar,z=18.,a=39.95*g/mole); G4Element* C = new G4Element(name= Carbon, symbol= C, z=6., a=12.00*g/mole); G4Element* O = new G4Element(name= Oxygen, symbol= O,z=8.,a=16.00*g/mole); G4Material* CO2 = new G4Material(name= CO2,density=1.977*mg/cm3,ncomponents=2); CO2- >AddElement(C,natoms=1); CO2- >AddElement(O,natoms=2); G4Material* ArCO2=new G4Material(name= ArCO2,density=1.8*mg/ cm3,ncomponents=2); ArCO2- > AddElement(Ar,fracVonmass=93*percent); ArCO2- > AddMaterial(CO2,fracVonmass=7*percent); 25

Materyal Tanımlama - 3 #include "globals.hh" #include "G4Material.hh" #include "G4NistManager.hh" NIST Database int main() { G4NistManager* man = G4NistManager::Instance(); man- >SetVerbose(1); // elementleri tanımlama G4Element* C = man- >FindOrBuildElement("C"); G4Element* Pb = man- >FindOrBuildMaterial("Pb"); // saf NIST materyallerini tanımlama G4Material* Al = man- >FindOrBuildMaterial("G4_Al"); G4Material* Cu = man- >FindOrBuildMaterial("G4_Cu"); // NIST materyallerini tanımlama G4Material* H2O = man- >FindOrBuildMaterial("G4_WATER"); G4Material* Sci = man- >FindOrBuildMaterial("G4_PLASTIC_SC_VINYLTOLUENE"); G4Material* SiO2 = man- >FindOrBuildMaterial("G4_SILICON_DIOXIDE"); G4Material* Air = man- >FindOrBuildMaterial("G4_AIR"); 26

Geometri - 1 Ø Kullanıcı temel G4VUserDetectorConstrucVon sınıvndan kendi sınıvnı türetmelidir. Ø Construct() fonksiyonu kur. v İhVyaç duyulan tüm materyalleri tanımlama v Geometriyi tanımlamak için gerekli biçimleri/katları tanımlama v Detektör geometrisinin hacimlerini yapılandırma v Duyar detektörleri tanımlama v Elektrik/manyaVk alanları detektör bölgelerine atama v Detektör elemanları için görüntüleme özelliklerini tanımlama 27

Geometri - 2 Ø Geant4 te bir detektör geometrisi çok sayıda hacimden oluşur. Ø En büyük hacim World hacmidir. Detektör geometrisindeki diğer tüm hacimleri içermesi gerekir. Ø Herbir hacim, şekilleri ve fiziksel karakterisvkleriyle ürevlir ve onu içerecek hacim içerisine yerleşvrilir. Ø Bir daughter hacmin yerleşvrildiği yeri belirlemek için kullanılacak koordinat sistemi, mother hacmin koordinat sistemidir. 28

Geometri - 3 Üç kavram vardır; G4VSolid şekli, boyutları G4LogicalVolume materyal, duyarlılık, kullanıcı limitleri Magnetik alan, vb G4VPhysicalVolume konumu, dönüşü G4VSolid G4LogicalVolume G4VPhysicalVolume G4Box G4Material G4VisAttributes G4PVPlacement G4Tubs G4VSensitiveDetector G4PVParameterised 29

Geometri - 4 Bir Solid hacim tanımı Ø Geant4 te bir Box (kutu) ın tanımı bulunabilir. $G4INSTALL/source/geometry/solids/CSG/include/G4Box.hh Ø Bir box üretmek için: v G4Box(const G4String& pname, G4double px, G4double py, G4double pz) Burada px: X ekseni boyunva yarı uzunluk py: Y ekseni boyunva yarı uzunluk pz: Z ekseni boyunva yarı uzunluk v G4Box* a_box=new G4Box( Det,12*cm,1*mm,26*cm); 30

Geometri - 5 Bir Logic hacim tanımı Ø Bir logic hacim tanımına, bir solid ve malzeme den başlanması gerekir: #include G4LogicalVolume.hh #include G4Box.hh #include G4Material.hh. G4Box* Det = new G4Box( det,12*cm,1*mm,26*cm); G4double a=39.95*g/mole; G4double density=1.390*g/cm3; G4Material* LAr = new G4Material(name= Liquid Argon,z=18.,a,density); G4LogicalVolume* Det_log = new G4LogicalVolume(Det,LAr, basit kutu ); 31

Geometri - 6 Bir Fiziksel hacim tanımı Ø Bir hacmi konumlandırmak için, bir logical hacimle başlanması, onun hangi hacim içerisine yerleşvrileceğine, o hacim içerisindeki konumunun ne olacağına ve döndürüleceksek nasıl döndürüleceğine karar verilmesi gerekir. #include G4VPhysicalVolume.hh #include G4PVPlacement.hh G4RotaVonMatrix *rm=new G4RotaVonMatrix; rm- >rotatex(30*deg); G4Double DetPosX=- 1.0*m; G4VPhysicalVolume* Det_phys= new G4PVPlacement(rm, // G4RotMatrix e işaretçi G4ThreeVector(DetPosX,0,0), // konum Det_log, // onun logical hacmi Det, // İsmi experimentalhall_log, // mother ı false, // boolean ops. yok 1); // kopya numarası. 32

Geometri - 7 YerleşXrilmiş hacim (placement volume) Ø Bir hacim içerisine yerleşvrien hacim elemanıdır. Ø Bir fiziksel hacim nesnesi bir tane gerçek hacmi temsil eder Tekrar eden hacim (repeated volume) Ø Bir hacmin birden fazla tekrar edilmesidir. placement Ø Bir fiziksel hacim nesnesi, birden fazla gerçek hacmi temsil eder. Ø Bilgisayar havzasında az yer kullanır Ø ParametreleşVrilmiş tekrar eden hacimler (Parameterised) Ø Bir eksende tekrar eden hacimler (Replica, Division) Ø Mother hacim ya birçok yerleşvrilmiş hacmi ya da bir tekrar eden hacmi içerebilir repeated 33

Geometri - 8 CSG (Constructed Solid Geometries) G4Tubs(const G4String &pname, // name G4double prmin, G4double prmax, // inner radius // outer radius G4Polycone( G4String name, G4double pdz, // Z half length const G4double start_angle, // starvng angle G4double psphi, // starting Phi const G4double opening_angle, // opening angle G4double pdphi); // segment angle const int num_z_planes, // nr. of planes const G4double z_start, // starvng value of z s: G4Polycone const G4double z_values[], // z coordinate of each plane const G4double RMIN[], // inner radius of the cone at each plane const G4double RMAX[]) // outer radius of the cone at each plane, space G4Polycone G4Cons G4Trap Bu şekiller için ek bilgi için, $G4INSTALL/source/geometry/solids/GSG/include 34

Geometri - 9 Boolean Operasyonlar Ø KaT hacimler bir araya gevrilebilir (boolean operavons) Ø 2 kat hacim, 1 mantksal işlem uygulanır, ve isteğe bağlı olarak 2. hacime rotasyon uygulanır (2. hacim 1. hacimin koordinat sistemine göre yerleşvrilmişvr) Ø Sonuçta yeni kat hacim oluşur bu da tekrardan yeni mantksal işlemlerle yeni kat hacimlere dönüştürülebilir. Ø Bu tür bir hacimde parçacık takibi hacimlerin sayısına bağlı olarak artar G4UnionSolid G4SubtractionSolid G4IntersectionSolid 35

Geometri (GDML) Generic and Geometric Model Geometry Desciption Markup Language Build-in Geant4 export G4LIB_BUILD_GDML=1 $G4INSTALL/source/persistency/gdml/schema/ gdml_core.xsd gdml_define.xsd gdml_extensions.xsd gdml_materials.xsd gdml_parameterised.xsd gdml_replicas.xsd gdml_solids.xsd gdml.xsd 5 bloktan oluşur Define Material Solids Structure Setup <?xml version="1.0" encoding="utf- 8"?> <gdml xsi:nonamespaceschemalocavon="gdmlschema/gdml.xsd"> <define>... <posivon name="trkrinworldpos" unit="mm" x="0" y="0" z="100"/> </define> <materials>... <element name="nitrogen" formula="n" Z="7."> <atom value="14.01"/> </element> <material formula=" " name="air" > <D value="1.290" unit="mg/cm3"/> <fracvon n="0.7" ref="nitrogen" /> <fracvon n="0.3" ref="oxygen" /> </material> </materials> <solids>... <box lunit="mm" name="tracker" x="50" y="50" z="50"/> </solids> <structure>... <volume name="world" > <materialref ref="air" /> <solidref ref="world" /> <physvol> <volumeref ref="tracker" /> <posivonref ref="trkrinworldpos"/> <rotavonref ref="trkinworldrot"/> </physvol> </volume> </structure> <setup name="default" version="1.0" > <world ref="world" /> </setup> </gdml> 36

GDML - - - > GraXML (Geometri ve Geometri Modelleyicisi) JAVA3D h`p://hrivnac.home.cern.ch/hrivnac/acxvixes/packages/graxml/ 37

Geometri (ROOT) TgeoManager ROOT geometri pakex, bir detektör geometrisini oluşturmak, parçacık izleme ve görüntülemek için tasarlanmıştr. C++ dili kullanılır. http://root.cern.ch/root/html/tgeomanager.html ATLAS 38

Fizik Süreçlerinin Seçimi - 1 Ø Geant4 kendisi herhangi bir parçacık veya süreçlere sahip değildir. Ø Kullanıcı temel G4VUserPhysicsList sınıvndan kendi sınıvnı türetmelidir. v Tüm gerekli parçacıkları tanımla v Tüm gerekli süreçleri tanımla ve onları uygun parçacıklara ata v ÜreVm eşik değerlerini tanımla (menzil cinsinden) 39

Fizik Süreçlerinin Seçimi - 2 Ø Geant4 içerisinde fizik tanımlamaları için bir çok örnek bulunmaktadır. Ø Fiziksel süreç farklı enerji aralıklarında değişik model, tesir kesitleri vb içerebilir Gamma particle Compton scattering Pair production process 1 process 2 model 1 model 2 cross section set 1 cross section set 2 cross section set 3 40

Fizik Süreçlerinin Seçimi - 3 Ø ElektroManyeXk fizik Standard fizik, ~ PeV Düşük enerji limiti, 250 ev ~ PeV (Livermore & Penelope) Optik fotonlar DNA seviyesindeki modeller, 7 ev ~ 100 MeV Ø Zayıf fizik n Atomaltı parçacık bozunması n Çekirdeklerin radyoaktif bozunması Ø Hadronik fizik n 0 ev ~ 100 TeV n Muon ve gamma çekirdek etkileşmeleri,10 MeV ~ TeV Ø Parametrize edilmiş veya hızlı simulaxon fiziği 41

Fizik Süreçlerinin Seçimi - 4 Ø Kullanıcı tanımlı fizik listesi (kısmen basitleştirilmiş) G4VUserPhysicsList temel sınıfından MyPhysicsList sınıfın türetilmesi Ø Modular fizik listesi (biraz daha karmaşık) G4VModularPhysicsList temel sınıfından MyPhysicsList daha detaylı sınıfın türetilmesi Ø Referans fizik listesi $G4INSTALL/source/physics/lists Uygulanacak metot class MyPhysicsList: public G4VUserPhysicsList { public: MyPhysicsList(); ~MyPhysicsList(); void ConstructParticle(); // simulasyonda gerekli olan parçacıkların seçimi void ConstructProcess(); // ilgili fiziğin herbir parçacığa atanması void SetCuts(); // ikincil parçacıkların üretim eşik enerjisi }; main() içinde Geant4 e bu fiziğin kayıt edilmesi runmanager->setuserinitialization(new MyPhysicsList); 42

Birincil Parçacıkların ÜreXmi Ø Olay Üreteçlerine arayüz v HEPEVT ve HEPMC (G4HEPEvtInterface, G4HEPMCInterface). Ø Geant4 içinde sağlanan çeşitli olanaklar v ParVcle Gun u Parçacık demevnin Vpi, enerjisi, açısal dağılımı vb özellikler v GeneralParVcleSource u Bir parçacık kaynağının modellenmesinde kolaylıklar sağlar u Uzay radyasyon çevrelerini ve radyoakvf kaynakları modellemek için kullanılır. 43

G4ParXcleGun Void ExamPrimaryGeneratorAcXon::GeneratePrimaries(G4Event* anevent) { G4ParVcleDefiniVon* parvcle; G4int i = (int)(5.*g4uniformrand()); switch(i) { case 0: parvcle = positron; break;... } parvclegun- >SetParVcleDefiniVon(parVcle); G4double pp = momentum+(g4uniformrand()- 0.5)*sigmaMomentum; G4double mass = parvcle- >GetPDGMass(); G4double Ekin = sqrt(pp*pp+mass*mass)- mass; parvclegun- >SetParVcleEnergy(Ekin); G4double angle = (G4UniformRand()- 0.5)*sigmaAngle; parvclegun- >SetParVcleMomentumDirecVon(G4ThreeVector(sin(angle),0.,cos(angle))); parvclegun- >GeneratePrimaryVertex(anEvent); } /gun/list //Mevcut parçacık listesi /gun/parvcle //ÜreVlecek parçacık ismi /gun/direcvon //Momentum doğrultusu /gun/energy //KineVk enerjisi /gun/momentum //Momentumu /gun/posivon //Parçacığın başlayacağı konum /gun/number //ÜreVlecek parçacık sayısı /gun/ion Z A Q //İyonun atom numı, kütle num. ve yükü 44

G4GeneralParXcleSource 1 MyPrimaryGeneratorAcVon:: MyPrimaryGeneratorAcVon() { generator = new G4GeneralParVcleSource; } void MyPrimaryGeneratorAcVon::GeneratePrimaries(G4Event* anevent) { generator- >GeneratePrimaryVertex(anEvent); } PosiXon distribuxons /gps/pos/ Point /gps/pos/type Point /gps/pos/type /gps/pos/centre /gps/pos/centre 0. 0. 0. cm Beam /gps/pos/type Beam /gps/pos/type /gps/pos/shape Circle /gps/pos/radius 1. mm /gps/pos/sigma_r 2. mm Plane Shape:Circle, Annulus, Ellipsoid, Square or Rectangle /gps/pos/type Plane /gps/pos/shape Rectangle /gps/pos/halfx /gps/pos/halfx 50 cm /gps/pos/halfy /gps/pos/halfy 70 cm Surface or Volume Shape: Sphere, Ellipsoid, Cylinder or Para Surface: zenith automavcally oriented as normal to surface at point /gps/pos/type Surface /gps/pos/type /gps/pos/shape Sphere /gps/pos/radius 1. m 45

G4GeneralParXcleSource 2 46

Birim Sistemi - 1 Data ya birim ataması aşağıdaki gibi yapılabilir: G4double Size = 15*km; G4doubel KineVcEnergy = 90.3*GeV; G4double density = 11*mg/cm3; Data ya Geant4 ün uygun birimi ataması istendiği durumda: cout << G4BestUnit(StepSize, Length ) <<endl; cout << G4BestUnit(Edep, Energy ) <<endl; millimeter (mm) nanosecond (ns) Mega electron Volt (MeV) positron charge (eplus) degree Kelvin (kelvin) the amount of substance (mole) luminous intensity (candela) radian (radian) steradian (steradian) Data nın istenilen birimde yazdırılmak isteniyorsa, bunun için / sembolu kullanılır: G4cout << KineticEnergy/keV << " kev ; G4cout << density/(g/cm3) << " g/cm3"; Geant4 içerisinde bazı birimler aşağıdaki gibi interakvf komutlarda hazır olarak bulunmaktadır /gun/energy 15.2 kev /gun/posivon 3 2-7 meter Bu birimler CLHEP (A Class Library for High Energy Physics) in bir parçasıdır. 47

Birim Sistemi - 2 Ø İstenilen yeni birimler ürevlebilir: v SystemOfUnits.hh dosyasına bakarak. Ø G4UnitDefiniVon sınıv kullanılarak ve onun yeni bir nesnesi oluşturularak: G4UnitDefiniVon (name, symbol, category, value) G4UnitDefiniXon ( km/hour, km/h, Speed,km/(3600*s)); G4UnitDefiniXon ( meter/ns, m/ns, Speed,m/ns); 48

GÖRÜNTÜLEME - 1 Ø Görüntüleme özellikleri G4VisA`ributes nesnesinde tutulur Ø Görüntüleme; G4VisA`ributes::SetVisibility(G4bool visibility); Ile kurulur. Ø Deneysel alanın görüntülenmemesi için: experimentalhall_log- >SetVisA`ributes(G4VisA`ributes::Invisible); Ø Hacmin rengi: G4VisA`ributes::G4VisA`ributes(const G4Colour& color); G4Colour white () ; // white G4Colour white (1.,1.,1.) ; // white G4Colour gray (.5,.5,.5) ; // gray G4Colour black (0.,0.,0.) ; // black G4Colour red (1.,0.,0.) ; // red G4Colour green (0.,1.,0.) ; // green G4Colour blue (0.,0.,1.) ; // blue G4Colour cyan (0.,1.,1.) ; // cyan G4Colour magenta (1.,0.,1.) ; // magenta G4Colour yellow (1.,1.,0.) ; // yellow ExpHall_log=new G4LogicalVolume(ExpHall_box,Air, exp_hall );.. G4VisA ributes *exphallvisa =new G4VisA ributes(g4colour(0.,1.,1.)); exphallvisa - >SetForceWireframe(true); ExpHall_log- >SetVisA ributes(exphallvisa ); G4VisA`ributes::G4VisA`ributes(const G4Colour& color); 49

GÖRÜNTÜLEME - 2 GÖRÜNTÜLEME SÜRÜCÜLERİ OpenGL OpenInventor Derleme öncesinde, export G4VIS_USE_DAWN=1 export G4VIS_USE_OPENGLX=1 export G4VIS_USE_VRML=1 görüntüleme sürücüsü kullanılabilir. HepRepFile HepRepXML DAWN VRML RayTracer ASCIITree GAGTree XMLTree 50

ANALİZ Java Analysis Studio: JAS (all files) h p://jas.freehep.org/jas3 The Root of Everything: ROOT (root files) h p://root.cern.ch/ Physics Analysis WorkstaVon: PAW (hbook files) (cernlib) OpenScienVst (all files) ROOT için export G4ANALYSIS_USE_ROOT=1 Analiz örnekleri için : $G4INSTALL/examples/extented/electromagneVc/ $G4INSTALL/examples/advanced/hadrontherapy 51

GEANT4 ÖRNEKLERİ 3 katogoride toplanır (G4INSTALL/examples) Ø Yeni başlayanlar (examples/novice) 7 adet örnek Ø Kapsamlı (examples/extended) 19 adet örnek Fiziksel süreçlerin tesv ve doğrulanması Geant4 araçlarının gösterimi Ø İleri düzey (examples/advanced) 20 adet örnek PraVk uygulamalar HEP dışı uygulamalardan örnekler (Space,Medical,..) 52

İLETİŞİM Uludağ Üniversitesi- Fizik Bölümü Ercan PİLİÇER - epilicer@uludag.edu.tr Fatma KOÇAK - ocak@uludag.edu.tr Adnan KILIÇ adnank@uludag.edu.tr 53

KATILIMINIZ İÇİN TEŞEKKÜRLER 54

BACKUP SLIDES 55

GEANT4 KURULUM - 1 http://geant4.web.cern.ch/geant4/support/download.shtml 56

GEANT4 KURULUM - 2 57

GEANT4 KURULUM REHBERİ h p://geant4.web.cern.ch/geant4/userdocumentavon/usersguides/installavonguide/fo/ BookInstalGuide.pdf CLHEP Geant4 source kod dağılımıyla berarbe default olarak gelir. Önceki Geant4 sürümlerindeki gibi önceden external olarak kurmaya ihvyaç yoktur. External olarak ta kurulabilir: Geant4 var olan CLHEP kurulumuna configure edilir. (Cmake e extra configure opvon ları eklenerek) GEANT4_USE_SYSTEM_CLHEP (DEFAULT : OFF ON if CLHEP_ROOT_DIR set) CLHEP_ROOT_DIR (include ve lib directory lerinin bulunduğu yer) Extra: CLHEP_INCLUDE_DIR (include directory si) CLHEP_LIBRARY (lib directory si) 58

59

60

CLHEP KURULUMU mkdir clhep cd clhep wget http://proj-clhep.web.cern.ch/proj-clhep/distribution/tarfiles/ clhep-2.1.3.1.tgz tar -zxvf clhep-2.1.3.1.tgz mkdir clhep-2.1.3.1 cd 2.1.3.1/CLHEP/./bootstrap./configure --prefix=$home/softwares/clhep/clhep-2.1.3.1 make -j4 make install cd.. rm -rfv 2.1.3.1 clhep-2.1.3.1.tgz 61

XERCESC mkdir xercesc cd xercesc wget http://ftp.itu.edu.tr/mirror/apache//xerces/c/3/ sources/xerces-c-3.1.1.tar.gz tar -zxvf xerces-c-3.1.1.tar.gz mv xerces-c-3.1.1 xerces-c-3.1.1-src mkdir xerces-c-3.1.1 cd xerces-c-3.1.1-src./configure --prefix=/home/epilicer/softwares/xercesc/ xerces-c-3.1.1 make -j4 make install cd.. rm -rfv xerces-c-3.1.1-src xerces-c-3.1.1.tar.gz 62

GEANT4 ÜN UNIX PLATFORMLARINA KURULUM mkdir geant4data cd geant4data wget http://geant4.cern.ch/support/source/g4emlow.6.32.tar.gz wget http://geant4.cern.ch/support/source/g4ndl4.2.ts.tar.gz wget http://geant4.cern.ch/support/source/g4pii.1.3.tar.gz wget http://geant4.cern.ch/support/source/g4radioactivedecay.3.6.tar.gz wget http://geant4.cern.ch/support/source/realsurface.1.0.tar.gz wget http://geant4.cern.ch/support/source/g4ndl.4.2.tar.gz wget http://geant4.cern.ch/support/source/g4neutronxs.1.2.tar.gz wget http://geant4.cern.ch/support/source/g4photonevaporation.2.3.tar.gz wget http://geant4.cern.ch/support/source/g4saiddata.1.1.tar.gz for f in $(find. -iname "*tar.gz"); do tar -xzvf $f ; done rm -fv *tar.gz 63

cmake build options: http://geant4.web.cern.ch/geant4/userdocumentation/usersguides/ InstallationGuide/html/ch02s03.html cd geant4.9.6.p01 cmake -Wno-dev \ -DCMAKE_INSTALL_PREFIX=$HOME/softwares/geant4/ geant4.9.6.p01 \ -DGEANT4_USE_SYSTEM_CLHEP=ON \ -DCLHEP_ROOT_DIR=$HOME/softwares/clhep/clhep-2.1.3.1 \ -DGEANT4_USE_OPENGL_X11=ON \ -DGEANT4_USE_XM==ON\ -DGEANT4_USE_GDML=ON \ -DXERCESC_ROOT_DIR=$HOME/softwares/xercesc/xerces-c-3.1.1 \ -DGEANT4_USE_G3TOG4=ON \ $HOME/softwares/geant4/geant4.9.6.p01-src make -j4 make install 64

edit /geant4make.sh to set proper paths for data libraries source $HOME/softwares/geant4/geant4.9.6.1.p01/geant4make/geant4make.sh 65