GEANT4: GiRiŞ ve ÖRNEKLER Ercan Piliçer - Uludağ Üniversitesi 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Tarihçe Geant3 CERN' de geliştirildi (1982-1994) Geant4 (C++) Geant3 (Fortran) ün gelişmiş halidir Dec ’94 Apr ’97 Jul ’98 Dec ’98 Projenin başlangıcı İlk alpha sürümü İlk beta sürümü İlk Geant4 halka açık sürüm 1.0 Geant4 SLAC' da BaBar deneyinde 2000 yılından itibaren kullanılmaktadır Geant4 ATLAS, CMS, LHCb deney merkezlerinde 2004' den itibaren Monte Carlo Simulasyon programı olarak kullanılmaktadır Aralık 2006 Mayıs 2007 Haziran 2007 Aralık 2007 Mart 2009 Nisan 2010 Geant4 8.2 sürümü Geant4 8.3 sürümü Geant4 9.0 sürümü Geant4 9.1 sürümü Geant4 9.2 sürümü Geant4.9.3 sürümü Şubat 2011 → Geant4.9.4 sürümü 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geant4 Paketleri Geant4 17 kategoriden oluşur Birbirinden bağımsız çalışma grupları tarafından geliştirilir Kategorilerin birbirine arayüzü Global çalışma gurubu ile ele alınır 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Uygulama Aşamaları PreInit initialize Geant4 6 uygulama aşamasına sahiptir Idle G4State_PreInit Fizik süreçlerin başlatılması/tanımlanması gerekir G4State_Idle Run (event loop) Materyal, Geometri, Parçacık ve/veya Simulasyonu başlatmaya hazır G4State_GeomClosed beamOn GeomClosed Quit EventProc Geometri optimize 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ı 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu exit Abort Terminoloji 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geant4' de Çalıştırma (Run) Çalıştırma “BeamOn” ile başlar Bir çalıştırma içerisinde kullanıcı aşağıdakileri değiştiremez tanımlanan geometriyi fiziksel süreçlerin ayarlarını Bir çalıştırma aynı geometriyi ve fiziksel şartları paylaşan olayların birleşimidir ve bir olay çevrimini içerir Çalıştırmanın başlangıcında geometri optimize edilir ve tesir kesiti tabloları tanımlanan materyallere göre hesaplanır G4RunManager sınıfı bir çalıştırmanın işleyişini yönetir, Bir çalıştırma G4Run sınıfı veya G4Run dan türetilmiş kullanıcı tanımlı sınıfla temsil edilir G4UserRunAction bir çalıştırma için kullanıcı isteğine bağlı detayları verebilecek bir sınıfdır 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geant4' de Olay (Event) Olay Geant4 simulasyonun basit bir birimidir İşleme başlanmadan önce, birincil parçacıklar oluşturulup yığın (stack) içine atılır Birincil parçacıklar bu yığından alınıp geometri içerisinde takip edilir (tracked) Bu sırada oluşan ikincil parçacıklar da yığın içerisine atılır Takip etme olayı yığın içerisinde parçacıklar olduğu sürece devam eder Yığın boş olduğu zaman bir olayın işlenmesi bitmiştir G4Event sınıfı bir olayı temsil eder. Bu sınıf - Birincil parçacıklar ve konumları listesi - Parçacık hit ve yörüngeleri nesnelerine sahiptir G4EventManager sınıfı bir olayın işleyişini kontrol eder G4UserEventAction bir olay için kullanıcıya isteğe bağlı hesaplamalar yapmasını sağlar 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geant4' de İz (Track) İz bir parçacığın anlık görüntüsüdür - sadece o anki parçacığın fiziksel büyüklüklerine sahiptir - parçacık hareket ettiğinde anlık görüntüdeki fiziksel büyüklükler de değişir - herhangi bir anda iz (track), konuma ve fiziksel büyüklüğe sahiptir - adımların toplamı değildir İz nesnesi silindiği zaman - en dıştaki hacim dışarısına gider - yok olur (bozunma, inelastik saçılma gibi olaylarla) - sıfır kinetik enerjiye sahip olur - veya kullanıcının kararı ile silinir G4TrackingManager bir izin işleyişini kontrol eder, bir iz G4Track sınıfı ile temsil edilir G4UserTrackingAction kullanıcı isteğine bağlı bir sınıftır 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu TrackID=2 ParentID=1 TrackID=1 ParentID=0 Geant4' de Adım (Step) Adım iki noktaya sahiptir ve bunlarda parçacık ile bilgiler vardır (o adımdaki enerji kaybı, uçuş zamanı, kinetik enerjisi gibi) Her bir nokta içerisinde bulunduğu hacmin ve materyalin bilgisine sahiptir Hacim sınırlarında yansıma gibi olayların simulasyonu için adım bilgisinde bir sonraki hacime ait bilgiler de bulunmaktadır G4SteppingManager sınıfı bir adımın işleyişini kontrol eder ve bir adım G4Step sınıfı ile temsil edilir G4UserSteppingAction adım hakkındaki bilgilerin alınabileceği isteğe bağlı bir sınıftır Hacimlerin sınırı Adım Adım öncesi nokta Adım sonrası nokta (Pre-step point) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu (Post-step point) Geant4' de Parçacık G4Track Konumu, geometrik bilgisi, vb Bu takip edilecek parçacığın temsil edildiği sınıftır Geant4' de parçacık 3 sınıf düzeyi ile temsil edilir G4DynamicParticle Parçacığın momentumu, enerjisi, spini gibi Dinamik fiziksel özellikleri hakkında bilgileri sağlar Herbir G4Track nesnesi kendine ait ve tek G4DynamicParticle nesnesine sahiptir Bu sınıf herbir parçacığın kendisini temsil eder G4ParticleDefinition Parçacığın yükü, kütlesi, yaşam süresi, bozunma kanalları gibi Statik özellikleri hakkında bilgileri sağlar Parçacık özelliklerinin listesi PDG kodu Kütlesi Elektrik yükü Spin, izospin, parite Magnetik moment Kuark içerikleri Yaşam süresi, bozunma kanalları Katogoriler 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Gluon / kuark / di-kuark Leptonlar Mezonlar Baryonlar İyonlar Diğerler Birim Sistemi $CLHEP_BASE_DIR/include/CLHEP/Units/SystemOfUnits.h millimeter nanosecond Mega electron Volt positron charge degree Kelvin the amount of substance luminous intensity radian steradian Kullanılan değişkenlerin birim ataması aşağıdaki gibi yapılabilir G4double Size = 15*km; G4doubel KineticEnergy = 90.3*GeV; G4double density = 11*mg/cm3; Geant4 içcerisinde bazı aşağıdaki gibi interaktif komutlarda hazır olarak bulunmaktadır /gun/energy 15.2 keV /gun/position 3 2 -7 meter Kullanılan kodun içerisinde de bilgi almak için girilen değerler “/” sembolü kullanılarak görüntülenebilir. G4cout << KineticEnergy/keV << " keV"; G4cout << density/(g/cm3) << " g/cm3"; 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu (mm) (ns) (MeV) (eplus) (kelvin) (mole) (candela) (radian) (steradian) Ne Yapmalıyım? Geant4 ile bir uygulama yapmak icin: Simule edilecek geometrinin hazırlanması (materyaller, hacimler ve konumları gibi) İlgili fiziğin tanımlanması (parçacıklar, fiziksel süreçler ve modeller, üretim eşik enerjisi) Bir olayın nasıl başlayacağı (birincil parçacıkların oluşum mekanizması) Bunların yanında: – Hazırlanan geometrinin ve parçacık izlerinin görüntülenmesi – Kullanılan fizik ile ilgili ekran çıktıların alınması – Kendinize ait UI (User Interface) komutların eklenmesi – Simulasyon sırasında faydalı bilgilerin toplanması 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Kullanıcı Sınıfları main() Geant4 varsayılan bir main() metodu tanımlamaz Başlangıç sınıfları G4RunManager::SetUserInitialization() metodu başlangıçta G4VUserDetectorConstruction G4VUserPhysicsList sınıflarının tanımlanması ve çağırılmasında kullanılır Eylem sınıfları G4RunManager::SetUserAction() metodu başlangıçta G4VUserPrimaryGeneratorAction G4UserRunAction G4UserEventAction G4UserStackingAction G4UserTrackingAction G4UserSteppingAction sınıflarının tanımlanması ve çağırılmasında kullanılır Yeşil renkteki sınıflar zorunlu sınıflardır 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geometri G4VUserDetectorConstruction temel sınıfından kullanıcıya ait MyDetectorConstruction sınıfı türetilir Bu sınıfın Construct() metodunda Gerekli tüm materyaller tanımlanır Kullanılacak hacimler tanımlanır Duyarlı detektörleriniz başlatılır ve mantıksal hacimlere atanır İsteğe bağlı olarak da Optionally you can define Geometrinizin herhangi bir yeri için bölgeler tanımlanabilir Kullanıcak hacimlerin görüntüleme özellikleri tanımlanır (renk, görünürlük biçimleri gibi) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geometri Temel strateji; G4VSolid* pBoxSolid = new G4Box(“aBoxSolid”, 1.*m, 2.*m, 3.*m); Üç kavram vardır; G4VSolid şekli, boyutları G4LogicalVolume materyal, duyarlılık, kullanıcı limitleri Magnetik alan, vb G4VPhysicalVolume konumu, dönüşü G4VSolid G4Box G4Tubs G4LogicalVolume* pBoxLog = new G4LogicalVolume( pBoxSolid, pBoxMaterial, “aBoxLog”, 0, 0, 0); G4VPhysicalVolume* aBoxPhys = new G4PVPlacement( pRotation, G4ThreeVector(posX, posY, posZ), pBoxLog, “aBoxPhys”, pMotherLog, 0, copyNo); G4LogicalVolume G4Material G4VPhysicalVolume G4VisAttributes G4PVPlacement G4VSensitiveDetector 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu G4PVParameterised Geometri (Katı Hacimler – Solid Volumes) CSG (Constructed Solid Geometries) G4Box(const G4String &pname, // name G4Tubs(const G4String &pname, // name G4double pRmin, // inner radius G4double pRmax, // outer radius G4double pDz, // Z half length G4double half_x, // X half size G4double pSphi, // starting Phi G4double half_y, // Y half size G4double pDphi); // segment angle G4double half_z); // Z half size G4Cons G4Trd G4Trap 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu G4Para (parallelepiped) G4Sphere Geometri (Katı Hacimler – Solid Volumes) Katı hacimler bir araya getirilebilir (boolean operations) G4UnionSolid, G4SubtractionSolid, G4IntersectionSolid Ne Gerekir? 2 katı hacme, 1 mantıksal işleme, ve isteğe bağlı olarak 2. hacim için döndürülmesi (2. hacim 1. hacimin koordinat sistemine göre yerleştirilmiştir) Sonuçta yeni katı hacim oluşur bu da tekrardan yeni mantıksal 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 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu G4IntersectionSolid Geometri (Mantıksal Hacim – Logical Volume) G4LogicalVolume(G4VSolid *pSolid, G4Material *pMaterial, const G4String &name, G4FieldManager *pFieldMgr=0, G4VSensitiveDetector *pSDetector=0, G4UserLimits *pULimits=0); Hacimin konumu ve döndürülmesi dışında bütün bilgilerini içerir – Şekli ve boyutlarını (G4VSolid) – Materyal, duyarlılık, görüntüleme özelliklerini – İçerisinde bulunan diğer hacimlerin konumlarını – Magnetik alan – Kullanıcı limitleri 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geometri (Fiziksel Hacimler – Physical Volumes) Yerleştirilmiş hacim (placement volume) Bir hacim içerisine yerleştirien 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. Bir fiziksel hacim nesnesi birden fazla gerçek hacmi temsil eder. placement Bilgisayar hafızasında az yer kullanır Parametreleştirilmiş tekrar eden hacimler (Parameterised) Bir eksende tekrar eden hacimler (Replica, Division) Ana hacim ya birçok yerleştirilmiş hacmi ya da bir tekrar eden hacmi içerebilir 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu repeated Geometri <?xml version="1.0" encoding="UTF-8"?> <gdml xsi:noNamespaceSchemaLocation="GDMLSchema/gdml.xsd"> <define> ... <position name="TrkrinWorldpos" unit="mm" x="0" y="0" z="100"/> </define> Geometry Desciption Markup Language <materials> ... <element name="Nitrogen" formula="N" Z="7."> Build-in Geant4 <atom value="14.01"/> </element> export G4LIB_BUILD_GDML=1 <material formula=" " name="Air" > <D value="1.290" unit="mg/cm3"/> <fraction n="0.7" ref="Nitrogen" /> $G4INSTALL/source/persistency/gdml/schema/ <fraction n="0.3" ref="Oxygen" /> gdml_core.xsd </material> </materials> gdml_define.xsd <solids> gdml_extensions.xsd ... <box lunit="mm" name="Tracker" x="50" y="50" z="50"/> gdml_materials.xsd </solids> gdml_parameterised.xsd <structure> ... gdml_replicas.xsd <volume name="World" > gdml_solids.xsd <materialref ref="Air" /> <solidref ref="world" /> gdml.xsd <physvol> <volumeref ref="Tracker" /> <positionref ref="TrkrinWorldpos"/> 5 bloktan oluşur <rotationref ref="TrkinWorldrot"/> Define </physvol> </volume> Material </structure> Solids <setup name="Default" version="1.0" > <world ref="World" /> Structure </setup> Setup </gdml> (GDML) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geometri (ROOT) ATLAS 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Fizik Geant4 de başlangıçta varsayılan herhangi bir fizik veya parçacık yoktur Parçacık iletimi (transportation) bile tanımlanmalıdır G4VUserPhysicsList temel sınıfından kullanıcı MyPhysicsList türetilmiş sınıfını oluşturur Tüm gerekli parçacıklar tanımlanır Gerekli fizik süreçleri tanımlanır ve uygun parçacıklara atanır Tüm hacim (world) veya belirli bir bölge içn parçacık oluşum enerjileri tanımlanır Geant4 içerisinde bunlar 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 Compton scattering Pair production particle process 1 process 2 model 1 model 2 … 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu cross section set 1 cross section set 2 cross section set 3 … Fizik (Sağlanan) ElektroManyetik 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 Atomaltı parçacık bozunması Çekirdeklerin radyoaktif bozunması Hadronik fizik 0 eV ~ 100 TeV Muon ve gamma çekirdek etkileşmeleri,10 MeV ~ TeV Parametrize edilmiş or hızlı simulation fiziği 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Fizik 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 listes (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 metodunda Geant4 e bu fiziğin kayıt edilmesi runManager->SetUserInitialization(new MyPhysicsList); 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Üretim Eşik Enerjisi (Production Cuts) Bu eşik enerjisi bir uzaklıktır, enerji değildir Birincil parçacıklar enerjilerini kaybederek ikincil parçacıklar oluşturur (elektron, gama) Bu kesilim (cut-off) ikincil parçacıkların menzilini temsil eder, bu parçacığın izinin karşılık gelen enerjide yok edildiği anlamına gelmez Bir parçacık izi sıfır kinetik enerjiye kadar takip edilir İkincil parçacıkların üretim eşiği mesafesi demektense kesilim (cut) denilir Geant4 de varsayılan kesilim değeri 1 mm Kullanıcı hassas sonuçlar ve CPU performansı için kendine gereken kesilim değerini atayabilir Kesilim değeri MyPhysicsList sınıfının SetCuts() metodunda atanır Çok küçük kesilim değeri kullanmak gereksiz olabilir Silikonda 10 keV' lik gama menzili ~ birkaç cm Silikonda 10 keV' like elektron menzili ~ birkaç mikron 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Birincil Parçacıklar G4VUserPrimaryGeneratorAction temel sınıfından MyPrimaryGeneratorAction sınıfının türetilmesi G4Event nesnesi birincil parçacıkları ve başlangıç konumlarını oluşturan birincil parçacık oluşum sınıfı nesnesine gönderilir Geant4 provides several generators in addition to the G4VPrimaryParticleGenerator base class G4ParticleGun G4HEPEvtInterface, G4HepMCInterface Interface to /hepevt/ common block or HepMC class G4GeneralParticleSource (GPS) Define radioactivity 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu İsteğe Bağlı Kullanıcı Sınıflar Kullanıcı eylem sınıflarının hepsi main() metodu içerisinde çağırılmalıdır ve RunManager a atanmalıdır G4UserRunAction G4Run* GenerateRun() Fizik tabloları etkileyecek değişken tanımlaması void BeginOfRunAction(const G4Run*) G4UserEventAction Histogramların tanımlanması void BeginOfEventAction(const G4Event*) void EndOfRunAction(const G4Run*) Bir olayın seçilmesi Histogramların kayıt edilmesi Olay ile ilgili değişkenlerin sıfırlanması Çalıştırma sonuçlarının analizi void EndOfEventAction(const G4Event*) Bir olay için analizlerin yapılması G4UserTrackingAction void PreUserTrackingAction(const G4Track*) Parçacık izinin depolanması/depolanmaması void PostUserTrackingAction(const G4Track*) Gereksiz parçacık izlerinin silinmesi G4UserSteppingAction void UserSteppingAction(const G4Step*) G4UserStackingAction Bir adım için gerekli bilgilerin alınması void ClassifyNewTrack(const G4Track*) void NewStage() void PrepareNewEvent() 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Görüntüleme Geant4 ün faklı grafik sürücülerine arayüzeyi vardır DAWN WIRED RayTracer OpenGL OpenInventor VRML HepRApp gMocren gMocren 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Analiz Kod içerisinde ROOT $G4ANALYSIS_USE_ROOT AIDA $G4ANALYSIS_USE Örneğin MySteppingAction, MyEventAction, MySensitiveDetector sınıflarında kullanımı Geant4 içerisinde hazır bulunan hesaplayıcılar (Primitive scorers) $G4INSTALL/source/digits_hits/scorer G4PSEnergyDeposit3D.cc G4PSTrackLength.cc G4PSNofCollision.cc G4PSEnergyDeposit.cc G4PSNofSecondary.cc G4PSDoseDeposit3D.cc G4PSDoseDeposit.cc G4PSMinKinEAtGeneration.cc examples/extended/runAndEvent/RE03 /score/create/boxMesh boxMesh_1 /score/mesh/boxSize 100. 100. 50. cm /score/mesh/nBin 30 30 30 /score/quantity/energyDeposit eDep /score/close /score/drawProjection boxMesh_1 eDep 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Araçlar (Geometri) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Araçlar (MOMO) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Uygulama Alanları (HEP) BaBar Use of Geant4 in the ATLAS Detector Simulation ATLAS (LHC) Use of Geant4 in the ATLAS Detector Simulation CMSSW and OSCAR (LHC) Use of Geant4 in the CMS experiment GAUSS (LHC) Use of Geant4 in the GAUSS simulation program of the LHCb experiment ALICE (LHC) Use of Geant4 in the ALICE Geant4 Simulation Fermilab Use of Geant4 at Fermilab for different applications ILC Use of Geant4 for the International Linear Collider project BDSIM Toolkit based on Geant4 for accelerator beamline simulation 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Uygulama Alanları (Space & Radiation) European Space Agency Geant4 Space Users' Home Page ESA Project Support XMM-Newton Radiation Environment. Space Environment Information System (SPENVIS) Dose Estimation by Simulation of the ISS Radiation Environment (DESIRE) Physics Models for Biological Effects of Radiation and Shielding QinetiQ Space Energetic Particle Transport and Interaction Modeling studies (SEPTIMESS) Radiation Effects Analysis Tools (REAT) MUlti-LAyered Shielding SImulation Software (MULASSIS) GLAST Gamma Ray Large Area Space Telescope 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Uygulama Alanları (Medical) GAMOS Geant4-based Architecture for Medicine-Oriented Simulations GATE Geant4 Application for Tomographic Emission G4EMU Geant4 European Medical User Organization G4MED (in Japanese) Geant4 Medical Physics in Japan G4NAMU Geant4 North American Medical User Organization 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Geant4 Collaboration PPARC Lebedev 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Collaborators also from non-member institutions, including Budker Inst. of Physics IHEP Protvino MEPHI Moscow Pittsburg University Ö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 testi ve doğrulanması Geant4 araçlarının gösterimi İleri düzey (examples/advanced) 20 adet örnek Pratik uygulamalar HEP dışı uygulamalardan örnekler (Space,Medical,..) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Uygulama Geant4 yüklenmesi ve ortam değişkenleri Silikon detektöre gelen foton demet Sınıfların açıklaması Analizlerin yapılması 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu BACKUP SLIDES 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu How to participate in? Depending your interest & capabilities, Choose your way in Computer Aided Methods Learn advanced programming (C++) CAD Tools XML language Physics Models Analyze Tools (RooT, OpenScientist, JAS, Paw) Have a look at; http://www.lcsim.org/software/ Analysis and Reconstruction Detector Simulation Event Generation (JAS3, LCIO) (SLIC, LCDG4, Mokka) (Herwig, GuineaPig) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Tracking & Processes Geant4 Tracking is general It is independent to the particle type the physics processes assigned to a particle It gives the chance to all processes to contribute to determining the step length contribute any possible changes in physical quantities of the track generate secondary particles suggest changes in the state of the track (e.g. to suspend, postpone or kill it) Processes; Particle transportation is a process as well; the particle interacts with geometrical volume boundaries and field of any kind Each particle has its own list of applicable processes. At each step, all processes listed are invoked to get proposed physical interaction lengths The process which requires the shortest interaction length (in space-time) is the one that occurs. Each process has one or combination of the following natures. AtRest (e.g. muon decay at rest) AlongStep (continuous process, e.g. Cerenkov process) PostStep (discrete process, e.g. decay on the fly) 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu EM Physics Category 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu Hadronic Physics Category CHIPS At rest Absorption µ, π, K, anti-p CHIPS (gamma) Photo-nuclear, electro-nuclear High precision neutron Evaporation Fermi breakup Multifragment Photon Evap Precompound FTF String (up to 20 TeV) QG String (up to 100 TeV) Binary cascade Rad. Decay Bertini cascade Fission LE pp, pn HEP ( up to 15 TeV) LEP 1 MeV 10 MeV 100 MeV 1 GeV 10 GeV 100 GeV 1 TeV … plus G4BinaryLightIonCascade, G4WilsonAbrasion, G4EmDissociation 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu ConstructParticle() [1] Basic construction method: By manually invoking the particle definition methods #include “G4Electron.hh” #include “G4Proton.hh” … void MyPhysicsList::ConstructParticle() { G4Electron::ElectronDefinition(); G4Proton::ProtonDefinition(); G4Neutron::NeutronDefinition(); G4Gamma::GammaDefinition(); … } 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu ConstructParticle() [2] By using utility classes: That make the individual calls for you: void MyPhysicsList::ConstructParticle() { G4BaryonConstructor* baryonConstructor = new G4BaryonConstructor(); baryonConstructor->ConstructParticle(); delete baryonConstructor; G4BosonConstructor* bosonConstructor = new G4BosonConstructor(); bosonConstructor->ConstructParticle(); delete bosonConstructor; … } 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu ConstructProcess() void MyPhysicsList::ConstructProcess() { AddTransportation(); // Method provided by G4VUserPhysicsList // It assignes the transportation process to all // particles, with non-zero lifetime, defined // in ConstructParticle() ConstructEM(); // Method may be defined by user (for convenience) // Instantiate electromagnetic processes here ConstructGeneral(); // Method may be defined by user (for convenience) } 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu ConstructEM() void MyPhysicsList::ConstructEM() { theParticleIterator->reset(); while( (*theParticleIterator)() ) { G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); if (particleName == “gamma”){ pmanager->AddDiscreteProcess(new G4GammaConversion()); … } … } } 7th Uluslararası Katılımlı Parçacık Hızlandırıcıları ve Detektörleri Yaz Okulu