HPFBU 2014 TOKAT KIŞ OKULU GEANT4 ÇALIŞMASI

Benzer belgeler
(Geometry And Tracking) Adnan Kılıç Uludağ Üniversitesi

GEANT4: GiRiŞ ve ÖRNEKLER

Geant4. Kısa Bir Tanıtım

GEANT4: GiRiŞ ve ÖRNEKLER

1 PROGRAMLAMAYA GİRİŞ

Teknikleri. Önsöz. iskender atasoy

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

C++ Dersi: Nesne Tabanlı Programlama

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.


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İ

Fall Object-Oriented Programming Laboratory 03

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

Object-Oriented Programming Laboratuvar 11

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

C Konsol ve Komut Satırı

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

#ifndef VEKTOR_H #define VEKTOR_H. struct vektor_s { double x; double y; double z; }; typedef struct vektor_s vektor_t;

#ifndef COMPLEX_H #define COMPLEX_H

Object-Oriented Programming Lab 4. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri K olsun.

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

C++ Dersi: Nesne Tabanlı Programlama



man komut man ls (ls komutu hakkında bilgi verir.) man pwd (pwd komutu hakkında bilgi verir.)

Linux Dosya Yapısı. Eren BAŞTÜRK.


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

DOSYA İŞLEMLERİ Programlama dilleri hafta -

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

BİLG Dr. Mustafa T. Babagil 1

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Aşağıda listelenen temel linux komutları bilgisayarınızın komut satırında çalıtırılacaktır.

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

ALGORİTMA VE PROGRAMLAMA II

C++ Dersi: Nesne Tabanlı Programlama

#ifndef FATURA_H #define FATURA_H

Üst Düzey Programlama

Temel Dosya İşlemleri. Kütük Organizasyonu 1

LOGO CALYPSO. Ankara Üniversitesi. Hızlandırıcı ve Parçacık Fiziğinde Bilgisayar Uygulamaları, Ocak 2009, Ç.Ü., Adana

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

int printf (const char *format [, argument,...]);

Object-Oriented Programming Laboratuvar 10

Fen ve Mühendislik Uygulamaları ile MATLAB

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

NESNEYE YÖNELİK PROGRAMLAMA

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

C++ Dersi: Nesne Tabanlı Programlama

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos

Mpuantor 2.7 Client Kurulumu

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Fonksiyonlar (Altprogram)

Ad Soyad: İmza: Object-Oriented Programming Quiz 4 60dk. Kapalı kitap. Kapalı defter. Kapalı cep telefonu. Hesap makinesi yok.

ALGORİTMA VE PROGRAMLAMA II

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Veri Yapıları Lab Notları 1

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

Data Structures Lab Güz

ü ü üü İ Ç İİ ü ü üü İ Ç Ü ö üü ü Ç Ü ü ü İ ü İ ö ü üü ü ö ü ö üü ü ü ö ö Ç Ş ü İŞ ö ü ü İ İ İ İ Ç İ Ç ü ü ü ü ö ü ü ü ö Ü ü ü İ Ö Ö ü ü üü ö ü ü üü Ö

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

CYGWIN KURULUMU ve KULLANIMI

C PROGRAMLAMA D İ L İ

Dr. Fatih AY Tel: fatihay@fatihay.net

Parçacık (Widget) Eren BAŞTÜRK

C ile Uygulamalar 1 - Cevaplar

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

C# Çalışma Örnekleri

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

CAIN ile Işınlık Hesabı

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

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

Elektromanyetik ve Hadron Kalorimetrelerinin Farklı Açılardaki Verimleri

Pascal Programlama Dili

3CX Phonesystem Türkçe Anonsları Windows ve Linux İşletim Sistemlerinde Aktif Etme

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

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

Proses. Prosesler 2. İşletim Sistemleri

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

/* Çember alanını hesaplar */

C ile Uygulamalar 2 - Cevaplar

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

HSancak Nesne Tabanlı Programlama I Ders Notları

Giris {\} /\ Suhap SAHIN Onur GÖK

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Java String İşlemleri

Komutlar (Devam) ls -a > deneme (ls -a komutunun çıktısı deneme isimli. ls -a >> deneme (ls -a komutunun çıktısı deneme

İNTERNET TABANLI PROGRAMLAMA- 4.ders

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Window Script Host. Message Box Kullanımı. Pupup(Acilir)Message Kullanımı. Arslan ACAR

Görsel Programlama 1

Transkript:

TOKAT KIŞ OKULU GEANT4 ÇALIŞMASI Taylan YETKİN - tyetkin@yildiz.edu.tr Adnan KILIÇ - adnank@uludag.edu.tr

GEANT4' TEN ALGIC CEVABI ALMAK UserSteppingAction() içerisinde adım adım alınan biriktirilir. Bilgi UserEventAction::AddEnergy() fonksiyonu ile EventAction'a aktarılır. Cevap, UserEventAction::EndOfEventAction() fonksiyonu içerisinde ekrana bastırılır. Duyar Hacim ve Hit Primitive Scorer Nedir Analiz

UserSteppingAction.cc // energy deposit G4double edep = step->gettotalenergydeposit(); If (...) EventAction->AddEnergy(edep); UserSteppingAction.hh private: UserEventAction* EventAction; UserEventAction.cc UserEventAction.hh private: G4double fedep; AddEnergy(G4double de,) { fedep += de; } void UserEventAction::BeginOfEventAction(const G4Event* event) {// initialisation per event fedep = 0.;} void UserEventAction::EndOfEventAction(const G4Event* event) {G4cout<< Depolanan Enerji : <<G4BestUnits(fEdep, Energy )<<G4endl; }

HIT Etkileşme yeri Duyar Bölge Adım Bir hit, duyar algıc içerisinde gerçekleşen etkileşmenin bir fotoğrafı Hit sınıfı, kullanıcı tarafından G4VHit temel sınıfından türetilen bir sınıftır. Türetilen Hit sınıfınızda istenilen değişken ve/veya bilgiler depolanabilir: Ne Gibi? Konum, zaman ve bir adımdaki enerji kaybı Verilen bir track'ın momentumu, enerjisi, konumu,bulunduğu hacimi ve parçacığın tipi vb.

VERİNİN KAYDEDİLMESİ Edep=2. X=1. Y=0.6 Z=1.4 Edep=5. X=1.2 Y=1.4 Z=2. Edep=3. X=2. Y=2.1 Z=2.4... Edep=1.5 X=2.3 Y=2.1 Z=2.5 Adım 1 Adım 2 Adım 3 Adım N Hit 1 Hit 2 Hit3 Hit N Her bir adımda ProcessHits() çağırılır. Hit N Hit3 Hit 2 Hit 1 Hit Biriktirisi =vector<hit> G4THitsCollection<UserHit> UserHit* bir dizi! Bir Hit başına bit Hit biriktirisi! G4Event EndOfEventAction() G4Event::G4HCofThisEvent

//Duyar Algıç-Hit kullanımı) examples/basic/b4/b4c ----------------------------İlk düzey examples/basic/b5/ ----------------------------İlk düzey

PRIMITIVE SCORER G4MultiFunctionalDetector, G4VSensitiveDetector'den türetilmiş bir sınıftır. Herbir G4VPrimitiveSensitivity herbir fiziksel hacim için bir fiziksel büyüklüğü biriktirir. Bu yaklaşımda duyar algıc ve hit sınıfları oluşturmaya ihtiyaç olmaz! İz uzunluğu: GmG4PSTrackLength, GmG4PSPassageTrackLength Depolanan Enerji: GmG4PSEnergyDeposit Akım/Akı: GmG4PSFlatSurfaceCurrent, GmG4PSCylinderSurfaceCurrent, GmG4PSSphereSurfaceCurrent, GmG4PSPassageCellCurrent, GmG4PSFlatSurfaceFlux, GmG4PSCylinderSurfaceFlux,GmG4PSSphereSurfaceFlux, GmG4PSCellFlux, GmG4PSPassageCellFlux Diğerleri: GmG4PSCylinderSurfaceCurrent, GmG4PSCylinderSurfaceFlux, GmG4PSFlatSurfaceCurrent, GmG4PSFlatSurfaceFlux, GmG4PSSphereSurfaceCurrent, GmG4PSSphereSurfaceFlux, GmG4PSTrackCounter

SÜZGEÇ SCORER'LAR Hangi tür parçacıkları score etmek istiyorsunuz??? Sadece yüklü/ yüksüz parçacıklar: G4SDChargedFilter, G4SDNeutralFilter Belirli kinetik enerji aralığındaki parçacıklar: G4SDKineticEnergyFilter Belirli parçacık türleri : G4SDparticleFilter Belirli kinetik enerji aralığındaki parçacık türleri : G4SDParticleWithEnergyFilter http://geant4.web.cern.ch/geant4/g4usersdocuments/usersguides/forapplicationdeveloper/html/detector/hit.html Detaylı Bilgi için ziyaret edin...

PRIMITIVE SCORER //(primitive scorer'ların kullanımı) examples/basic/b4/b4d ----------------------------İlk düzey examples/extended/runandevent/re02 ------orta düzey examples/extended/runandevent/re03 ------orta düzey

ANALİZ ROOT ile çalışmak için Analiz.hh isimli bir başlık dosyası oluştur. #ifndef Analysis_h #define Analysis_h 1 #include "g4root.hh" #endif EventAction.cc void EventAction::EndOfEventAction(const G4Event* event) {... // get analysis manager G4AnalysisManager* analysismanager = G4AnalysisManager::Instance(); //fill Histogram // fill histograms analysismanager->fillh1(1, EnergyDeposit/MeV); // fill ntuple analysismanager->fillntupledcolumn(0,energydeposit/mev); analysismanager->addntuplerow();

http://g4course2010.web.cern.ch/g4course2010/task0/overview.html Alıştırma ve Kullanışlı Uygulamalar için ziyaret edin... http://hypernews.slac.stanford.edu/hypernews/geant4/cindex Soru ve cevaplarınız geliştiricilerle paylaşmak için ziyaret edin...

SANAL BİLGİSAYARDA YENİLEME cd /hep/geant4data rm -fv *tar.gz unrar e ~/Desktop/LINUX_SHARED/*.tar.gz. for f in ~/Desktop/LINUX_SHARED/*tar.gz; do tar -xzvf $f ; done rm -fv ~/Desktop/LINUX_SHARED/*tar.gz echo "#Geant4 env" >> $HOME/.bashrc echo "source \$HOME/hepWork/geant4.10.00/share/Geant4-10.0.0/geant4make/geant4make.sh" >>$HOME/.bashrc echo "export Geant4_DIR=\$HOME/hepWork/geant4.10.00/lib/Geant4-10.0.0" >> $HOME/.bashrc

UYGULAMA ÖRNEĞİ Kullanıcı etkileşimli mod cd $HOME/hepWork/geant4.10.00/share/Geant4-10.0.0/examples cd basic/b4/b4a Idle>/control/execute run2.mac mkdir build cd build cmake.. Make./exampleB4a idle>help Idle>/gun/particle e- Idle>/gun/direction 0 0 1 Idle>/gun/energy 1 GeV Idle>/run/beamOn 10 batch mod./exampleb4a run2.mac veya./exampleb4a -m run2.mac

Primitive Scorer Uugulaması cd examples/b4d/ gedit exampleb4d.cc & KOMUT TABANLI SCORER #include G4ScoringManager.hh int main() { G4RunManager* runmanager = new G4RunManager; G4ScoringManager* scoringmanager = G4ScoringManager::GetScoringManager(); UI komutları /score/ klasörü içerisinde...

/score/create/boxmesh boxmesh_1 # /score/mesh/boxsize 5 5 7.5 cm /score/mesh/nbin 30 30 30 # /score/quantity/energydeposit edep /score/filter/particle eminusfilter e- /score/filter/particle eplusfilter e+ /score/close /score/list /vis/disable /control/verbose 2 /run/verbose 1 /gun/particle e- /run/beamon 20 /vis/enable # # drawing projections # /score/drawprojection boxmesh_1 edep

cd $HOME/hepWork/geant4.10.00/share/Geant4-10.0.0/examples cd basic/b4/b4d Idle>/control/execute scorer.mac mkdir build cd build cmake.. Make./exampleB4d idle>help /scorer/ seçeneğini görmelisiniz!

BİR PARÇA UYGULAMA examples/basic/b4 (B4a, B4c veya B4d) üzerinde gerekli değişiklikleri yaparak, 1) Cu malzemesi tanımla 2) Si malzemesi tanımla ( NIST malzeme kütüphanesi ile değil!!!) 3) Bir Si aktif tabaka kalınlığı 500 um Soğurucu tabaka Cu ve aktif tabaka Si 4) Pb ile aynı radyasyon uzunluğuna sahip olunacak şekilde, soğrucunun Cu olması durumunda toplam soğurucu kalınlığını belirle 5) Bu Cu soğurucu kalınlığını uygun şekilde tabakalara ayır 6 ) Cu olması durumunda kalorimetrenin soğurucu ve aktif tabakalarında depolanan enerji dağlımlarını ayrı ayrı elde edin 7) Pb ve Cu enerji dağılımlarını aynı histogram üzerinde gösterin.

GEANT4 MALZEME TANIMI #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); #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);

#include "PrimaryGeneratorAction.hh" #include "PrimaryGeneratorMessenger.hh" #include "G4Event.hh" #include "G4HEPEvtInterface.hh" #include "G4ParticleGun.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" G4HEPEvtInterface PYTHIA6 DOSYASI PrimaryGeneratorAction::PrimaryGeneratorAction() { const char* filename = "PYTHIA_EVENT.data"; HEPEvt = new G4HEPEvtInterface(filename); G4int n_particle = 1; G4ParticleGun* fparticlegun = new G4ParticleGun(n_particle); G4ParticleTable* particletable = G4ParticleTable::GetParticleTable(); G4String particlename; G4ParticleDefinition* particle = particletable->findparticle(particlename="proton"); fparticlegun->setparticledefinition(particle); fparticlegun->setparticlemomentumdirection(g4threevector(0.,1.,0.)); fparticlegun->setparticleenergy(7*tev); fparticlegun->setparticleposition(g4threevector(0.*cm,0.*cm,0.*cm)); particlegun = fparticlegun; messenger = new PrimaryGeneratorMessenger(this); usehepevt = true; nnprim = 0; } PrimaryGeneratorAction::~PrimaryGeneratorAction() {delete HEPEvt; delete particlegun; delete messenger;} void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anevent) { if(usehepevt) { HEPEvt->GeneratePrimaryVertex(anEvent); } else { particlegun->generateprimaryvertex(anevent); } }