13.07.2015 Views

Optical Photon Processes in GEANT4 - Cern

Optical Photon Processes in GEANT4 - Cern

Optical Photon Processes in GEANT4 - Cern

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Cover Sheet<strong>Optical</strong> <strong>Photon</strong> <strong>Processes</strong> <strong>in</strong> <strong>GEANT4</strong>Peter Gumpl<strong>in</strong>ger, TRIUMF/<strong>GEANT4</strong>(Presented by John Apostolakis)Users’ Workshop at CERN, November 2002Abstract<strong>GEANT4</strong> can realistically model the optics of sc<strong>in</strong>tillation andCerenkov detectors. The simulation may commence with thepropagation of a charged particle and end with the detection ofthe ensu<strong>in</strong>g optical photons on photo sensitive areas, all with<strong>in</strong>the same event loop. The lecture will <strong>in</strong>troduce this functionalityand expla<strong>in</strong> how it can be employed by the user1


<strong>Optical</strong> <strong>Photon</strong> <strong>Processes</strong><strong>in</strong> <strong>GEANT4</strong>s Concept of “optical <strong>Photon</strong>” <strong>in</strong> G4? >> atomic spac<strong>in</strong>gs G4<strong>Optical</strong><strong>Photon</strong>: wave like nature of EMradiations G4<strong>Optical</strong><strong>Photon</strong> G4Gamma// optical photon(no smooth transition)G4<strong>Optical</strong><strong>Photon</strong>::<strong>Optical</strong><strong>Photon</strong>();s Def<strong>in</strong>e a (sp<strong>in</strong>) vector for the photon, addedas data member to the G4DynamicParticledescription class:aphoton->SetPolarization(ux,uy,uz); // unit vector!!!2


<strong>Optical</strong> photon production<strong>in</strong> Geant4<strong>in</strong> /processes/electromagnetic/xrays• Cerenkov Process• Sc<strong>in</strong>tillation Process• Transition RadiationGeant4 catalogue of <strong>Processes</strong>at optical Wavelengths<strong>in</strong> /processes/optical• Refraction and Reflection atmedium boundaries• Bulk Absorption• Rayleigh scatter<strong>in</strong>gExampleN06 at /examples/novice/N063


• The optical properties of the medium which are keyto the implementation of these types of processesare stored as entries <strong>in</strong> a properties table l<strong>in</strong>ked tothe material.• Properties are expressed as a function of thephoton’s momentum.// WaterG4double a = 1.01*g/mole;G4Element* elH = new G4Element(name=“Hydrogen”, symbol=“H”, z=1.,a);a = 16.00*g/mole;G4Element* elO = new G4Element(name=“Oxygen”,symbol=“O”,z=8.,a)density = 1.0*g/cm3;G4Material* Water = new G4Material(name=“Water”,density,nel=2);Water -> AddElement(elH,2);Water -> AddElement(elO,1);const G4<strong>in</strong>t NUMENTRIES = 32;G4double ppckov[NUMENTRIES] = { 2.034*eV, ……, 4.136*eV};G4double r<strong>in</strong>dex[NUMENTRIES] = 1.3435, ……., 1.3608};G4double absorption[NUMENTRIES] = 344.8*cm, ……., 1450.0*cm};G4MaterialPropertiesTable *MPT = new G4MaterialPropertiesTable();MPT -> AddProperty(“RINDEX”,ppckov,r<strong>in</strong>dex,NUMENTRIES};MPT -> AddProperty(“ABSLENGTH”,ppckov,absorption,NUMENTRIES};water -> SetMaterialPropertiesTable(MPT);4


Cerenkov Process• Cerenkov light occurs when a chargedparticle moves through a medium fasterthan the medium’s group velocity of light.• <strong>Photon</strong>s are emitted on the surface of acone, and as the particle slows down:(a) the cone angle decreases(b) the emitted photon frequency <strong>in</strong>creases(c) and their number decreases• Cerenkov photons have <strong>in</strong>herentpolarization perpendicular to the cone’ssurface.5


G4CerenkovImplementation Details• Cerenkov photon orig<strong>in</strong>s aredistributed rectil<strong>in</strong>ear over the stepeven <strong>in</strong> the presence of a magneticfield• Cerenkov photons are generatedonly <strong>in</strong> media where the user hasprovided an <strong>in</strong>dex of refraction• An average number of photon iscalculated for the wavelength<strong>in</strong>terval <strong>in</strong> which the <strong>in</strong>dex ofrefraction is given6


User Options• Suspend primary particle and trackCerenkov photons first• Set the average number of Cerenkovphotons per step (The actual number generated <strong>in</strong>any given step will be slightly different because of thestatistical nature of the process)<strong>in</strong> ExptPhysicsList:#<strong>in</strong>clude “G4Cerenkov.hh”G4Cerenkov* theCerenkovProcess = new G4Cerenkov(“Cerenkov”);theCerenkovProcess -> SetTrackSecondariesFirst(true);G4<strong>in</strong>t MaxNum<strong>Photon</strong>s = 300;theCerenkovProcess->SetMaxNum<strong>Photon</strong>sPerStep(MaxNum<strong>Photon</strong>s);7


Sc<strong>in</strong>tillation Process• Number of photons generatedproportional to the energy lostdur<strong>in</strong>g the step• Emission spectrum sampled fromempirical spectra• Isotropic emission• Uniform along the track segment• With random l<strong>in</strong>ear polarization• Emission time spectra with oneexponential decay time constant.8


<strong>in</strong> ExptPhysicsList:#<strong>in</strong>clude “G4Sc<strong>in</strong>tillation.hh”G4Sc<strong>in</strong>tillationImplementation Details• Sc<strong>in</strong>tillation material has a characteristiclight yield• The statistical yield fluctuation is eitherbroadened due to impurities for dopedcrystals or narrower as a result of theFano Factor• Suspend primary particle and tracksc<strong>in</strong>tillation photons firstNote: Material properties are attached to theprocess (and not the material). This means, atpresent, <strong>GEANT4</strong> can only accommodate onesc<strong>in</strong>tillation material <strong>in</strong> any given applicationG4Sc<strong>in</strong>tillation* theSc<strong>in</strong>tProcess = new G4Sc<strong>in</strong>tillation(“Sc<strong>in</strong>tillation”);theSc<strong>in</strong>tProcess -> SetTrackSecondariesFirst(true);theSc<strong>in</strong>tProcess -> SetSc<strong>in</strong>tillationYield(7500.0/MeV);theSc<strong>in</strong>tProcess -> SetResolutionScale(1.0);theSc<strong>in</strong>tProcess -> SetSc<strong>in</strong>tillationTime(45.*ns);9


#<strong>in</strong>clude “G4Material.hh// Liquid XenonG4Element* elementXe = new G4Element(“Xenon”,”Xe”,54.,131.29*g/mole);G4Material* LXe = new G4Material (“LXe”,3.02*g/cm3,1,kStateLiquid,173.15*kelv<strong>in</strong>,1.5*atmosphere);LXe -> AddElement(elementXe, 1);const G4<strong>in</strong>t NUMENTRIES = 9;G4double LXe_PP[NUMENTRIES] = {6.6*eV,6.7*eV,6.8*eV,6.9*eV,7.0*eV,7.1*eV,7.2*eV,7.3*eV,7.4*eV};G4double LXe_SCINT[NUMENTRIES] = {0.000134, 0.004432, 0.053991,0.241971, 0.398942, 0.000134, 0.004432, 0.053991,0.241971};G4double LXe_RIND[NUMENTRIES] = { 1.57, 1.57, 1.57, 1.57, 1.57, 1.57,1.57, 1.57, 1.57};G4double LXe_ABSL[NUMENTRIES] = { 35.*cm, 35.*cm, 35.*cm, 35.*cm,35.*cm, 35.*cm, 35.*cm, 35.*cm, 35*cm };G4MaterialPropertiesTable* LXe_MPT = new G4MaterialPropertiesTable();LXe_MPT -> AddProperty(“SCINTILLATION”,LXe_PP,LXe_SCINT,NUMENTRIES);LXe_MPT -> AddProperty(“RINDEX”, LXe_PP,LXe_RIND,NUMENTRIES);LXe_MPT -> AddProperty(“ABSLENGTH”,LXe_PP,LXe_ABSL,NUMENTRIES);LXe -> SetMaterialPropertiesTable(LXe_MPT);10


G4Absorption• Bulk Absorption - ‘kills’ the particleMPT->AddProperty(“ABSLENGTH”,ppckov,abslength,NUMENTRIES};Rayleigh Scatter<strong>in</strong>g• The cross section is proportional to cos2(a),where a is the angle between the <strong>in</strong>itial and f<strong>in</strong>alphoton polarization.• The scattered photon direction is perpendicularto the new photon’s polarization <strong>in</strong> such a waythat the f<strong>in</strong>al direction, <strong>in</strong>itial and f<strong>in</strong>alpolarization are all <strong>in</strong> one plane.• Rayleigh scatter<strong>in</strong>g attenuation coefficient iscalculated for water follow<strong>in</strong>g the E<strong>in</strong>ste<strong>in</strong>-Smoluchowski formula, but <strong>in</strong> all other cases itmust be provided by the user:MPT -> AddProperty(“RAYLEIGH”,ppckov,scatter<strong>in</strong>g,NUMENTRIES};11


Boundary Process• Dielectric - DielectricDepend<strong>in</strong>g on the photon’s wave length,angle of <strong>in</strong>cidence, (l<strong>in</strong>ear) polarization,and refractive <strong>in</strong>dex on both sides of theboundary:(a) total <strong>in</strong>ternal reflected(b) Fresnel refracted(c) Fresnel reflected• Dielectric - Metal(a) absorbed (detected)(b) reflected12


G4BoundaryProcessImplementation Details• A ‘discrete process’, called at the endof every step• never limits the step (done by thetransportation)• sets the ‘forced’ condition.• Logic such that:• preStepPo<strong>in</strong>t: is still <strong>in</strong> the old volumepostStepPo<strong>in</strong>t: is already <strong>in</strong> the new volumeso <strong>in</strong>formation is available from both13


Surface ConceptSplit <strong>in</strong>to two classes• Conceptual class: G4LogicalSurface (<strong>in</strong> thegeometry category) holds:(i) po<strong>in</strong>ters to the relevant physical or logicalvolumes(ii) po<strong>in</strong>ter to a G4<strong>Optical</strong>SurfaceThese classes are stored <strong>in</strong> a table and can beretrieved by specify<strong>in</strong>g:(i) an ordered pair of physical volumes touch<strong>in</strong>gat the surface [G4LogicalBorderSurface] - <strong>in</strong>pr<strong>in</strong>ciple allows for different propertiesdepend<strong>in</strong>g on which direction the photonarrives.(ii) a logical volume entirely surrounded by thissurface [G4LogicalSk<strong>in</strong>Surface] - usefulwhen the volume is coded by a reflector andplaced <strong>in</strong>to many volumes (limitation: onlyone and the same optical property for all theenclosed volume’s sides).(b) Physical class: G4<strong>Optical</strong>Surface (<strong>in</strong> thematerial category) keeps <strong>in</strong>formation about thephysical properties of the surface itself.14


G4<strong>Optical</strong>Surface• Set the simulation model used by the boundaryprocess:enum G4<strong>Optical</strong>SurfaceModel {glisur, unfied};GLISUR-Model: orig<strong>in</strong>al G3 modelUNIFIED-Model: adopted from• Set the type of <strong>in</strong>terface:DETECT (TRIUMF)enum G4<strong>Optical</strong>SurfaceType { dielectric_metal,dielectric_dielectric};• Set the surface f<strong>in</strong>ish:enum G4<strong>Optical</strong>SurfaceF<strong>in</strong>ish {polished, // smooth perfectly polished surfacepolishedfrontpa<strong>in</strong>ted, // polished top-layer pa<strong>in</strong>tpolishedbackpa<strong>in</strong>ted, // polished (back) pa<strong>in</strong>t/foilground, // rough surfacegroundfrontpa<strong>in</strong>ted, // rough top-layer pa<strong>in</strong>tgroundbackpa<strong>in</strong>ted }; // rough (back) pa<strong>in</strong>t/foil15


The assumption is that a roughsurface is a collection of ‘microfacets’16


Surface effectsPOLISHED: In the case where the surface between two bodies isperfectly polished, the normal used by the G4BoundaryProcess is thenormal to the surface def<strong>in</strong>ed by:(a) the daughter solid entered; or else(b) the solid be<strong>in</strong>g left beh<strong>in</strong>dGROUND: The <strong>in</strong>cidence of a photon upon a rough surface requireschoos<strong>in</strong>g the angle, a, between a ‘micro-facet’ normal and that of theaverage surface.The UNIFIED model assumes that the probability of micro-facetnormals populates the annulus of solid angle s<strong>in</strong>(a)da will beproportional to a gaussian of SigmaAlpha:theOpSurface -> SetSigmaAlpha(0.1);where sigma_alpha is <strong>in</strong> [rad]In the GLISUR model this is <strong>in</strong>dicated by the value of polish; when it is SetPolish(0.0);The ‘facet normal’ is accepted if the refracted wave is still<strong>in</strong>side the orig<strong>in</strong>al volume.17


In cases (b) and (c), multiple <strong>in</strong>teractionswith the boundary are possible with<strong>in</strong> theFProcessFitself and without the need forrelocation F by the G4Navigator.18


Csl: Reflection prob. about the normal of a micro facetCss: Reflection prob. about the average surface normalCdl: Prob. of <strong>in</strong>ternal Lambertian reflectionCbs: Prob. of reflection with<strong>in</strong> a deep grove with theultimate result of exact back scatter<strong>in</strong>g.19


The G4<strong>Optical</strong>Surface also has a po<strong>in</strong>ter to aG4MaterialPropertiesTableIn case the surface is pa<strong>in</strong>ted, wrapped, or has acladd<strong>in</strong>g, the table may <strong>in</strong>clude the th<strong>in</strong> layer’s<strong>in</strong>dex of refraction.This allows the simulation of boundary effects both at the<strong>in</strong>tersection between the medium and the surface layer, aswell as the far side of the th<strong>in</strong> layer, all with<strong>in</strong> the processitself and without <strong>in</strong>vok<strong>in</strong>g the G4Navigator; the th<strong>in</strong> layerdoes not have to be def<strong>in</strong>ed as a G4 track<strong>in</strong>g volume.20


ExampleG4LogicalVolume * volume_log;G4VPhysicalVolume * volume1;G4VPhysicalVolume * volume2;// SurfacesG4<strong>Optical</strong>Surface* OpWaterSurface = new G4<strong>Optical</strong>Surface(“WaterSurface”);OpWaterSurface -> SetModel(glisur);OpWaterSurface -> SetType(dielectric_metal);OpWaterSurface -> SetF<strong>in</strong>ish(polished);G4LogicalBorderSurface* WaterSurface = newG4LogicalBorderSurface(“WaterSurface”,volume1,volume2,OpWaterSurface);G4<strong>Optical</strong>Surface * OpAirSurface = new G4<strong>Optical</strong>Surface(“AirSurface”);OpAirSurface -> SetModel(unified);OpAirSurface -> SetType(dielectric_dielectric);OpAirSurface -> SetF<strong>in</strong>ish(ground);G4LogicalSk<strong>in</strong>Surface * AirSurface = new G4LogicalSk<strong>in</strong>Surface(“AirSurface”,volume_log,OpAirSurface);21


G4<strong>Optical</strong>Surface * OpWaterSurface = new G4<strong>Optical</strong>Surface(“WaterSurface”);OpWaterSurface -> SetModel(unified);OpWaterSurface -> SetType(dielectric_dielectric);OpWaterSurface -> SetF<strong>in</strong>ish(groundbackpa<strong>in</strong>ted);Const G4<strong>in</strong>t NUM = 2;G4double pp[NUM] = {2.038*eV, 4.144*eV};G4double specularlobe[NUM] = {0.3, 0.3};G4double specularspike[NUM] = {0.2, 0.2};G4double backscatter[NUM] = {0.1, 0.1};G4double r<strong>in</strong>dex[NUM] = {1.35, 1.40};G4double reflectivity[NUM] = {0.3, 0.5};G4double efficiency[NUM] = {0.8, 1.0};G4MaterialPropertiesTable *SMPT = new G4MaterialPropertiesTable();SMPT -> AddProperty(“RINDEX”, pp, r<strong>in</strong>dex, NUM);SMPT ->AddProperty(“SPECULARLOBECONSTANT”,pp,specularlobe,NUM);SMPT ->AddProperty(“SPECULARSPIKECONSTANT”,pp,specularspike,NUM);SMPT -> AddProperty(“BACKSCATTERCONSTANT”,pp,backscatter,NUM);SMPT -> AddProperty(“REFLECTIVITY”,pp,reflectivity,NUM);SMPT -> AddProperty(“EFFICIENCY”,pp,efficiency,NUM);OpWaterSurface -> SetMaterialPropertiesTable(SMPT);22


The logic <strong>in</strong> G4OpBoundaryProcess:PostStepDoIt is as follows:(1) Make sure:(a) the photon is at a boundary (StepStatus = fGeomBoundary)(b) the last step taken is not a very short step (StepLength>=kCarTolerance/2) as it can happen upon reflectionELSE do noth<strong>in</strong>g and RETURN(2) If the two media on either side are identical do noth<strong>in</strong>g andRETURN(3) If the orig<strong>in</strong>al medium had no G4MaterialPropertiesTabledef<strong>in</strong>ed kill the photon and RETURNELSE get the refractive <strong>in</strong>dex(4) Get the refractive <strong>in</strong>dex for the medium on the other side of theboundary, if there is one.(5) See, if a G4LogicalSurface is def<strong>in</strong>ed between the twovolumes, if so get the G4<strong>Optical</strong>Surface which conta<strong>in</strong>sphysical surface parameters.(6) Default to glisur model and polishedsurface(7) If the new medium had a refractive <strong>in</strong>dex, set the surface typeto ‘dielectric-dielectric’ELSEIF get the refractive <strong>in</strong>dex from the G4<strong>Optical</strong>SurfaceELSE kill the photon.(8) Use (as far as it has the <strong>in</strong>formation) G4<strong>Optical</strong>Surface tomodel the surface ELSE use Default.23


As a consequence:(1) For polished <strong>in</strong>terfaces between two media, no‘surface’ needs to be specified. All that is required isthat the two media have an <strong>in</strong>dex of refraction stored<strong>in</strong> their respective G4MaterialPropertiesTable.(2) The boundary process implementation is rigidabout what it expects the G4Navigator does uponreflection on a boundary.(3) G4BoundaryProcess with ‘surfaces’ is onlypossible for volumes that have been positioned byus<strong>in</strong>g placement rather than replica or parameterisedvolumes .24


ExampleN0625

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!