Modelowanie Procesów Jądrowych Modelowanie kaskad elektromagnetycznych Marcin Słodkowski Pracownia Reakcji Ciężkich Jonów, Zakład Fizyki Jądrowej, Wydział Fizyki, Politechnika Warszawska
Spis treści Mechanizm powstawania kaskad Procesy fizyczne Fluktuacje i ich opis Symulowanie kaskad Wyniki symulacji 2/56
Kaskady EM Kaskady elektromagnetyczne są wynikiem interakcji poruszających się cząstek z atomami w dostatecznie gęstym ośrodku. Jest to pierwszy odkryty proces stochastyczny w fizyce wysokich energii (B. Rossi 1932r.) 3/56
Mechanizm powstawania Proces kaskadowy jest inicjowany przez cząstkę o wysokiej energii, która wpada w gęsty ośrodek Cząstką inicjującą może być: Kwant γ Elektron, pozyton e-, e+ Inne cięższe cząstki np. mion μ 4/56
Mechanizm powstawania Aby kaskada zaczęła się rozwijać cząstka inicjująca musi mieć odpowiednią energię: E >> 2mec2 Kaskady elektronowo-fotonowe zarejestrowane w komorze pęcherzykowej wypełnionej ciekłym ksenonem. 5/56
Procesy Podstawowymi procesami odpowiedzialnymi za rozwój kaskady są: Kreacja par Powstawanie promieniowania hamowania (bremsstrahlung) 6/56
Kreacja par Kwant gamma o energii większej od energii progowej i w polu kulombowskim jądra atomowego może z dużym prawdopodobieństwem konwertować w parę elektronpozyton γ+( A,Z ) e+ + e +( A,Z ) 7/56
Kreacja par Energia progowa zjawiska 2 e m 2 E p =2m e c 2 c mj 2 Różniczkowy przekrój czynny 2 2 e ap E, E de =4 Z r ln 183 Z Powietrze 3/ 2 de E, E de Ołów 8/56
Kreacja par Obszary dominacji różnych efektów: (I) Efekt fotoelektryczny (II) Efekt Comptona (III) Kreacja par 9/56
Promieniowanie hamowania Zjawisko promieniowania hamowania (zwane również bremsstrahlung) polega na emisji kwantu gamma przez elektron, którego tor lotu został zmieniony na skutek interakcji z polem elektrycznym jądra atomowego. 10/56
Promieniowanie hamowania Różniczkowy przekrój czynny: b E, E de =4 Z Z ln 183Z r 1 3 2 e de E, E E 1 3 E 136mc =ln Z E E E 2 Powietrze Ołów 11/56
Zjawisko fotoelektryczne Zjawisko fotoelektryczne pochłonięcie fotonu przez atom połączone z emisja elektronu o energii tego fotonu pomniejszoną o energie wiązania. 12/56
Anihilacja Anihilacja w procesie kaskadowym tworzone są pozytony, które mogą (z pewnym prawdopodobieństwem) anihilować co powoduje powstanie kwantu gamma. 13/56
Efekt Comptona Efekt Comptona rozpraszanie fotonu na quasi swobodnym elektronie. 14/56
Promieniowanie Czerenkowa promieniowanie elektromagnetyczne emitowane, gdy naładowana cząstka o wysokiej energii (np. elektron) porusza się w ośrodku materialnym z prędkością większą od prędkości fazowej światła w tym ośrodku. 15/56
Wielokrotne rozpraszanie kulombowskie Wielokrotne rozpraszanie kulombowskie w wyniku wielokrotnych zderzeń quasi elastycznych naładowanej cząstki (o dużej energii) z jądrami atomowymi, energia tej cząstki niewiele się zmienia. 16/56
Jonizacja ośrodka Jonizacja ośrodka szybkie elektrony i pozytony poprzez nieelastyczne zderzenia z atomami medium wytracają swoją energię (tzw. straty jonizacyjne). 17/56
Przykład pęki atmosferyczne (I) 18/56
Przykład pęki atmosferyczne (II) 19/56
Długość radiacyjna Charakterystyczna własność ośrodka, określająca oddziaływanie z nim wysokoenergetycznych cząstek. Otrzymywanie jednostki radiacyjnej. Przekroje czynne na kreację par i prom. hamowania można podzielić na dwie części część odnoszącą się do koncentracji atomów ośrodka (struktura materiału) część opisującą dynamikę procesu. 1 2 rad =4n Z Z r e {Li f Z } t0 mc 2 dq L = 1 F q 1 q 0 rad i 1 = [ cm ] t0 2 20/56
Długość radiacyjna Definicja empiryczna: [ ln [ 1194.15 Z 1 2 1 /3 =4n r e N 0 ln 184.15Z t0 Z 2/3 ] 6 1.008 Z 1.202 Z 1.0369 Z 1 Z 2 2 4 Definicja 1 => Definicja 2 1 1 = t0 1 t0 2 21/56 ]
Długość radiacyjna Znając jednostkę radiacyjną jesteśmy w stanie np. obliczyć średnią stratę energii elektronu na promieniowanie hamowania. de E = dx t0 x E x =E 0 exp E t =E 0 exp t t0 22/56
Długość radiacyjna 23/56
Energia krytyczna Definiuje się ją na bazie warunku, że energia stracona na promieniowanie hamowania jest równa energii strat jonizacyjnych. Można ją również zapisać jako energię traconą przez elektron po przebyciu odległości równej jednej jednostce radiacyjnej. de dx de dx b Z c =1 580 de = E c dt 0 ion 24/56
Fluktuacje Kaskady elektromagnetyczne mają charakter stochastyczny i badanie tego zjawiska, zarówno eksperymentalne, jak i opierające się na modelowaniu komputerowym, często zajmują się wyznaczaniem wartości średnich. 25/56
Szacowanie fluktuacji Odchylenie standardowe zdeponowanej energii. Histogramy depozycji energii o określonym progu. A = N E i A E A 2 i=0 N 1 26/56
Symulacja Do modelowania kaskad używa się programów: Geant4 EGSnrc 27/56
Kilka słów o EGSnrc (I) EGSnrc jest rozwinięciem kodu, EGS4 ze Stanford. Pozwala on na symulację kaskad inicjowanych przez cząstki o energii od paruset kev do kilkuset GeV, wewnątrz dowolnej mieszaniny pierwiastków o dowolnej geometrii. Kod ten stosuje się do uzyskiwania różnych parametrów, jak dawka czy tory lotu cząstek. 28/56
Kilka słów o EGSnrc (II) Kod EGSnrc uwzględnia następujące zjawiska fizyczne: Promieniowanie hamowania, Produkcja par, Anihilacja, Wielokrotne rozpraszanie kulombowskie cząstek naładowanych, Rozpraszanie Bhabha i Mőller, (rozpraszanie elektron-pozyton) Ciągła utrata energii cząstek naładowanych pomiędzy zdarzeniami punktowymi, Rozpraszanie Comptona, Rozpraszanie Rayleigha, Efekt fotoelektryczny, Relaksacja atomów wzbudzonych po wybiciu elektronu poprzez zjawisko Comptona 29/56
Kilka słów o EGSnrc (III) Kod EGSnrc napisany jest w języku Mortran3, będącym rozszerzoną wersją Fortran 77. Dane materiałowe generuje się za pomocą samodzielnego programu PEGS. W głównym kodzie użytkownik modyfikuje procedury: HATCH materiały HOWFAR i HOWNEAR geometria SHOWER inicjowanie kaskady AUSGAB - wypisanie wyników i stosowanie przybliżeń Dodatkowo modelowanie można kontrolować poprzez zmienne COMMON i zmiany makr. 30/56
Kilka słów o EGSnrc (IV) 31/56
Detektor Interesują nas interakcje cząstek z materiałem Detektorem w tym przypadku jest walec zrobiony z jednolitego materiału 32/56
Detektor 33/56
Przykładowe parametry Całkowita Szerokość jednej warstwy : 0.5 j.r. Ilość binów: 60 Całkowita długość: 30 j.r. szerokość: 15 j.r. Szerokość jednej warstwy : 0.25 j.r. Ilość binów: 60 Materiał: Xe+C2H4 r.l. = 4.055 cm 34/56
Materiał (Xe + C2H4) G4Element* Xe = new G4Element("Xe","Xe",54,131.29*g/mole); G4Element* H = new G4Element("H", "H",1,1.01*g/mole); G4Element* C = new G4Element("C","C",6, 12.01*g/mole); G4double temperature=253.65*kelvin, pressure=36.0*atmosphere; G4Material* LXe = new G4Material ("LXe",2.87*g/cm3,1,kStateLiquid, temperature, pressure); LXe -> AddElement(Xe, 1); G4Material* LEthylene = new G4Material ("LEthylene",0.5679 *g/cm3,2, kstateliquid,temperature,pressure); LEthylene -> AddElement(C,2); LEthylene -> AddElement(H,4); G4Material* XeC2H4 = new G4Material("XeC2H4", density=2.18*g/cm3, 2, kstateliquid,temperature,pressure); XeC2H4->AddMaterial(LXe, 0.95); XeC2H4->AddMaterial(LEthylene, 0.05); 35/56
Konstrukcja detektora G4double Radl=mat->GetRadlen(); dllength = dlradl*radl; drlength = drradl*radl; EcalLength = nltot*dllength; EcalRadius = nrtot*drlength; solidecal = new G4Tubs ("Ecal",0,EcalRadius,0.5*EcalLength,0,360*deg); logicecal = new G4LogicalVolume (solidecal, mat,"ecal",0,0,0); physiecal = new G4PVPlacement (0,G4ThreeVector(), logicecal,"ecal",0,false,0); 36/56
Konstrukcja procesów void PhysListEmStandard::ConstructProcess(){ theparticleiterator->reset(); while( (*theparticleiterator)() ){ G4ParticleDefinition* particle = theparticleiterator->value(); G4ProcessManager* pmanager = particle->getprocessmanager(); G4String particlename = particle->getparticlename(); if (particlename == "gamma") "gamma" {// gamma pmanager->adddiscreteprocess( new G4PhotoElectricEffect); pmanager->adddiscreteprocess( new G4ComptonScattering); pmanager->adddiscreteprocess( new G4GammaConversion); } 37/56
Zbieranie danych Jako wynik działania naszej symulacji otrzymujemy histogramy depozycji energii wzdłuż jak i wszerz zdefiniowanego detektora. W celu pozyskiwania danych tworzymy klasy odpowiadające na akcje uruchamiane przy poszczególnych zdarzeniach. 38/56
SteppingAction Klasa dziedziczy z: G4UserSteppingAction Wymaga metoda do przygotowania to: void UserSteppingAction(const G4Step*); 39/56
Depozycja energii void SteppingAction::UserSteppingAction(const G4Step* step) { G4ThreeVector prep, postp, pos; G4int SlideNb,RingNb; G4double radius, offset; G4double destep = step->gettotalenergydeposit(); if(destep==0.0) return; prep=step->getpresteppoint()->getposition(); postp=step->getpoststeppoint()>getposition(); pos=prep + G4UniformRand()*(postP - prep); radius = std::sqrt(pos.x()*pos.x() + pos.y()*pos.y()); offset = 0.5*detector->GetfullLength(); SlideNb = int((pos.z() + offset)/detector->getdllength()); RingNb = int(radius/detector->getdrlength()); Run->fillPerStep(dEStep,SlideNb,RingNb); //uzupełninie //histogramu } 40/56
Przykładowe parametry symulacji /emc/det/setlbin 60 0.50 /emc/det/setrbin 60 0.25 /emc/det/setmat XeC2H4 /emc/phys/addphysics standard /run/initalize /tracking/storetrajectory 1 /gun/particle gamma /emc/phys/setcuts 1 mm /gun/energy 3000 MeV /run/beamon 10000 41/56
Geant4 własne UI Geant4 umożliwia definiowanie własnych poleceń Klasa: G4UImessenger Metoda: void SetNewValue(G4UIcommand*, G4String); 42/56
Własne komendy G4UIdirectory *dir=new G4UIdirectory("/test/"); /test/ dir->setguidance("test"); G4UIcmdWithAString *str= new G4UIcmdWithAString("/test/napis",this); /test/napis str->setguidance("wypisuje tekst"); str->setparametername("tekst",false); str->availableforstates(g4state_preinit,g4state_idle); G4UIcmdWithADoubleAndUnit * gunen = new G4UIcmdWithADoubleAndUnit("/test/gunEn",this); /test/gunen gunen->setguidance("ustawia energię działa"); gunen->setparametername("en",false); gunen->setunitcategory("energy"); gunen->availableforstates(g4state_preinit,g4state_idle); gunen->setrange("en>0.0"); 43/56
Obsługa komend void SetNewValue(G4UIcommand *cmd, G4String val){ if(cmd==str){ cmd==str G4cout<<val<<G4endl; } if(cmd==gunen){ cmd==gunen G4double en=gunen->getnewdoublevalue(val); partgun->setparticleenergy(en); } } 44/56
Klasy komend G4UIdirectory G4UIcmdWithoutParameter G4UIcmdWithABool G4UIcmdWithAInteger G4UIcmdWithADouble G4UIcmdWithAString G4UIcmdWith3Vector G4UIcmdWithADoubleAndUnit G4UIcmdWithA3VectorAndUnit 45/56
Kaskada EM w detektorze 46/56
Rozwój kaskady w symulacji 47/56
Analiza danych Wygenerowaliśmy 10000 przypadków i dla każdego otrzymujemy histogram depozycji energii Podstawowym wynikiem jest stworzenie histogramu średniej depozycji energii 48/56
Histogram depozycji energii (śr.) W trakcie analizy chcemy, żeby każda z 10000 kaskad zaczynała się w binie zero. Przed obliczaniem histogramu depozycji energii musimy wyciąć zera. Po tej operacji możemy obliczyć histogram 49/56
Histogram depozycji energii 50/56
Wyznaczanie progów Teraz chcemy określić, w którym miejscu nastąpiła depozycja określonej części energii Zazwyczaj bierze się pod uwagę trzy progi: 50%, 70% oraz 90% 51/56
Określanie numeru bin u dla przyjętego progu 52/56
Depozycje dla pojedynczej kaskady Tworzymy histogram depozycji energii dla pojedynczej kaskady Określamy kanały, w których nastąpiła depozycja określonej części energii 53/56
Histogramy ilości wystąpień depozycji w kanale Chcąc przeanalizować jak wyglądają fluktuacje kaskad tworzymy histogram częstości (ilości wystąpień) zdeponowania określonej części energii w danym kanale. Jest to łatwe do sporządzenia ponieważ w poprzednim punkcie określiliśmy te kanały, pozostaje tylko to zebrać 54/56
Przykładowy histogram dla A=70% 55/56
Dziękuję za uwagę 56/56