(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