Files
geant4/source/processes/optical/History
T
2016-12-09 12:35:28 +01:00

483 lines
21 KiB
Plaintext

-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
Category History file
---------------------
This file should be used by G4 developers and category coordinators
to briefly summarize all major modifications introduced in the code
and keep track of all category-tags.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
03 Oct 16: P. Gumplinger (op-V10-02-02)
- act on bug report 1888
07 Mar 16: P. Gumplinger (op-V10-02-01)
- add flag for InvokeSD method call in G4OpBoundaryProcess
16 Feb 16: P. Gumplinger (op-V10-02-00)
- addresses bug report #1826, thanks to Tetsuma Yaguchi
in DielectricLUT of G4OpBoundaryProcess
9 Oct 15: P. Gumplinger (op-V10-01-05)
- fix Coverity error in G4OpBoundaryProcess.cc
13 Aug 15: P. Gumplinger (op-V10-01-04)
- G4OpBoundaryProcess.cc, G4OpRayleigh.cc - checked while loops
3 July 2015 P. Gumplinger (op-V10-01-03)
- Allow for a real and imaginary part of the index of refraction
for Material1 in G4OpBoundaryProcess::GetReflectivity
Bug report: #1762
26 June 2015 P. Gumplinger (op-V10-01-02)
- Correct the reflectivity calculation with complex refractive index;
include the index of refraction of the PreStepPoint medium
Bug report: #1762
23 March 2015 P. Gumplinger (op-V10-01-01)
- change the calculation of NewPolarization in G4OpRayleigh.cc to avoid a
divided by zero when the NewMomentumDirection is perpendicular to the
OldPolarization. If the polarization is perpendicular to the scattering
plane, it will not change after the scattering.
11 March 2015 P. Gumplinger (op-V10-01-00)
- add aParticleChange.ProposeLocalEnergyDeposit(thePhotonMomentum);
to G4OpAbsorption
06 November 2014 P. Gumplinger (op-V10-00-10)
- fix Coverity error in G4OpWLS.cc
27 October 2014 A. Dotti (op-V10-00-09)
- Address problem #1675, this requires re engineering of
all UI commands related to optical processes and created
in G4OpticalPhysics.
- Co-working tags: xrays-V10-00-06, op-V10-00-09, phys-ctor-em-V10-00-17
17th October 2014 P. Gumplinger (op-V10-00-08)
- fix G4OpRayleigh.cc to actually set the temperature for materials other
than Water
- G4OpBoundaryProcess: Add a ConstProperty "SURFACEROUGHNESS". If set,
the reflectivity at dielectric_dielectric surface is angular dependent
and calculated from:
exp(-pow((4*pi*theSurfaceroughness*Rindex1*cost1/wavelength),2))
for Rindex1 > Rindex2. Thanks to M. van Dijk (Bristol University).
16th October 2014 P. Gumplinger (op-V10-00-07)
- previous tag was committed only to /include directory
10th October 2014 P. Gumplinger (op-V10-00-06)
- G4OpRayleigh Process: This version calculates the Rayleigh scattering
length for more materials than just Water (although the Water default
is kept). To do this the user would need to specify the
ISOTHERMAL_COMPRESSIBILITY as a material property and optionally an
RS_SCALE_LENGTH (useful for testing). Code comes from Philip Graham
(Queen Mary University of London).
9th October 2014 P. Gumplinger (op-V10-00-05)
- G4OpBoundaryProcess allow for a Transmittance, Reflectivity and
Absorption on dielectric_dielectric and dielectric_metal boundaries
10th June 2014 P. Gumplinger (op-V10-00-04)
- G4OpWLS always rebuild theIntegralTable in BuildPhysicsTable method
- G4OpRayleigh always rebuild thePhysicsTable in BuildPhysicsTable method
- remove the private method BuildThePhysicsTable
6th June 2014 P. Gumplinger (op-V10-00-03)
- implement the full UNIFIED reflectivity probabilities when a
dichroic surface reflects
23rd December 2013 M. Asai (op-V10-00-02)
- Additional protection.
22nd December 2013 M. Asai (op-V10-00-01)
- move construction of WLSTimeGeneratorProfile to the constructor of G4OpWLS.
18th December 2013 P. Gumplinger (op-V10-00-00)
- make WLSTimeGeneratorProfile and UseTimeProfile static in G4OpWLS
26th August 2013 P. Gumplinger (op-V09-06-06)
- move theStatus assignment for Dichroic where the decision is actually made
- made the necessary and required modifications for G4OpBoundaryProcess to
work in situations with parallel worlds
- G4OpBoundaryProcess will now invoke the ProcessHit method of the sensitive
detector associated with the PostStepPoint volume when optical photons are
detected at the entrance boundary
14th June 2013 P. Gumplinger (op-V09-06-05)
- fix coverity errors in G4OpBoundaryProcess
13th June 2013 P.Gumplinger (op-V09-06-04)
- G4OpWLS and G4OpRayleigh - added BuildPhysicsTable method which is doing
as before but at the moment when material list is fully defined.
6th June 2013 P.Gumplinger (op-V09-06-03)
- comment out G4cout in G4OpBoundaryProcess::DielectricDichroic()
5th June 2013 P.Gumplinger (op-V09-06-02)
- fix compilation error in G4OpWLS
5th June 2013 P.Gumplinger (op-V09-06-01)
- Require that WLS photons have a longer wavelength than the photon that
is being absorbed/shifted. Please, see bug report on the Forum:
http://hypernews.slac.stanford.edu/HyperNews/geant4/get/opticalphotons/509.html
Thanks to Ben Loer (FNAL)
- Add the capability of simulating the transmission of a dichroic filter;
In this first implementation, the photon is either reflected or transmitted
without changing direction. Surface->SetType(dielectric_dichroic);
You must also supply a 2D data file with the format:
4 #ofWavelength-bins #ofIncidentAngle-bins
List of Wavelength-bin values in nm (i)
List of IncidentAngle-bin values in deg (j) - angle from the normal
Transmittance[1,1],..,Transmittance[i,1],..,Transmittance[n,1]
.....................,Transmittance[i,j],.....................
Transmittance[1,m],..,Transmittance[i,m],..,Transmittance[n,m] in %
and: setenv G4DICHROICDATA dichroic.data
30th Apr.2013 P.Gumplinger (op-V09-06-00)
replace CLHEP::Rand*::shoot.. with G4Rand*::shoot...
in G4OpBoundaryProcess
19th Oct.2012 G.Cosmo (op-V09-05-12)
Corrected debug flag in G4OpBoundaryProcess.cc to be
G4OPTICAL_DEBUG, as the one defined in GNUmakefile...
17th Oct.2012 J.Apostolakis (op-V09-05-11)
Avoid the 'new' Event-abort exception, by 'protecting'
it with G4DEBUG_OPTICAL_PROC flag.
By default, the normal is now flipped instead
(as Geant4 9.5 and 9.5 patch 1 worked.)
5th Oct.2012 J.Apostolakis (op-V09-05-10)
G4OpBoundaryProcess now uses GlobalExitNormal()
( same code as op-V09-05-06 )
********* G4OpBoundaryProcess uses the *Global* Normal ****
5th Oct.2012 J.Apostolakis (op-V09-05-09)
Retagged to enable testing - same code as -07 below.
4th Oct.2012 J.Apostolakis (op-V09-05-07)
Added information in printout of Exception on direction of
momentum and exiting normal.
03rd Oct.2012 P.Gumplinger (op-V09-05-05a)
add G4Exception when theGlobalNormal points the
wrong direction in G4OpBoundaryProcess
10th Jul.2012 G.Cosmo (op-V09-05-05)
Explicitly use inclusion of headers for system of units and
physical constants, in plan to remove implicit inclusion from
globals.hh.
20th Jun 2012 P.Gumplinger (op-V09-05-04)
remove methods: SetModel/GetModel from G4OpBoundaryProcess class
7th Jun 2012 G.Cosmo (op-V09-05-03)
Fixed trivial cases of variable shadowing in G4OpMieHG.cc
and G4OpWLS.cc.
17th May 2012 P.Gumplinger (op-V09-05-02)
G4OpWLS.hh, G4OpRayleigh.hh, G4OpAbsorption.hh,
G4OpMieHG.hh and G4OpBoundaryProcess.hh -
more fixing Coverity warnings
16th May 2012 P.Gumplinger (op-V09-05-01)
G4OpBoundaryProcess.cc - trying to fix Coverity warnings
24th Jan 2012 P.Gumplinger (op-V09-05-00)
G4OpBoundaryProcess.cc - solves Problem #1275
call aParticleChange.ProposeVelocity(aTrack.GetVelocity())
at every invocation of DoIt; for FresnelRefraction calculate
finalVelocity locally from Material2->
GetMaterialPropertiesTable()->GetProperty("GROUPVEL")
28th Oct 2011 P.Gumplinger (op-V09-04-03)
add logic for ProposeVelocity to G4OpBoundaryProcess::PostStepDoIt
13th Oct 2011 P.Gumplinger (op-V09-04-02)
modify to work with materials-V09-04-14
6th Oct 2011 P.Gumplinger (op-V09-04-01)
update G4Exception syntax in G4OpWLS.cc and
G4OpBoundaryProcess.cc
14th Jun 2011 Peter Gumplinger (op-V09-04-00)
A dielectric_dielectric surface may now have a wavelength
dependent property "TRANSMITTANCE". If this is specified
for a surface it overwrites the Snell's law's probability.
This allows the simulation of anti-reflective coatings.
Thanks to Evgueni Goudzovski (CERN) for the idea.
29th Oct 2010 Peter Gumplinger (op-V09-03-06)
Fix minor Coverty Errors
22th Oct 2010 Peter Gumplinger (op-V09-03-05)
Add Mie Scattering of Optical Photons
Thanks to Xin Qian (Kellogg Radiation Lab of Caltech)
Based on work from Vlasios Vasileiou (University of Maryland)
Henyey-Greenstein phase functions
21th Oct 2010 Peter Gumplinger (op-V09-03-04)
Fix Bug 207; Thanks to Xin Qian (Kellogg Radiation Lab of Caltech)
14th Jun 2010 Peter Gumplinger (op-V09-03-03)
ProposeLocalEnergyDeposit(thePhotonMomentum) every time the
photon is fStopAndKill because of NoRINDEX. This will trigger
scoring when a photon encounters a volume not defined as an
optical medium (indirect user request):
http://hypernews.slac.stanford.edu/HyperNews/geant4/get/opticalphotons/335/1.html
18th May 2010 Peter Gumplinger (op-V09-03-02)
fix a bug reported at:
http://hypernews.slac.stanford.edu/HyperNews/geant4/get/opticalphotons/334/1/1.html
theFacetNormal was not sampled for polishedbackpainted
in DielectricDielectric method of G4OpBoundaryProcess
19th Apr 2010 Peter Gumplinger (op-V09-03-01)
fix Problem report #1114 in that for backpainted
surfaces theReflectivity is not applied twice.
While doing the fix I also completely refashioning the
code in the case of type == dielectric_dielect.
19th Jan 2010 Peter Gumplinger (op-V09-03-00)
assign PropertyPointers to NULL at the start of the
PostStepDoIt, addresses bug report #1094
19th Nov 2009 Peter Gumplinger (op-V09-02-06)
change the code such that the LUT are now read in and kept
by G4OpticalSurface and not G4OpBoundaryProcess, reordering
of enumeration and set theStatus in DielectricLUT.
11th Nov 2009 Peter Gumplinger (op-V09-02-05)
add capability of simulating surface reflections
with Look-Up-Tables (LUT) containing measured
optical reflectance for a variety of surface
treatments - Thanks to Martin Janecek and
William Moses (Lawrence Berkeley National Lab.)
9th Nov 2009 Peter Gumplinger (op-V09-02-04)
G4OpBoundary: initialze theReflectivity and theEfficiency
at the beginning of the PostStepDoIt; add method
BoundaryProcessVerbose which will now print the process
status for every call to PostStepDoIt.
5th Nov 2009 Peter Gumplinger (op-V09-02-03)
G4OpBoundary::PostStepDoIt - all dielectric_dielectric
surfaces may now have a reflectivity <1; not only
'frontpainted' as was the case in the past.
6th May 2009 Peter Gumplinger (op-V09-02-02)
G4OpBoundary::PostStepDoIt now throws an G4Exception
EventMustBeAborted when an invalid surface normal is returnd;
addresses bug report #1060
23th Mar 2009 Peter Gumplinger (op-V09-02-01)
for complex index of refraction: (1)resample the reflectivity
every time in the do-while of DielectricMetal, but don't
re-calculate theFacetNormal (which has already been chosen
in CalculateReflectivity), also (2) avoid an infinite loop by
resetting iTE and iTM inside the do-while of GetReflectivity;
both are bug-fixes.
14th Jan 2009 Peter Gumplinger (op-V09-02-00)
respond to bug report 1040 by fixing G4OpBoundaryProcess.cc
07th Nov 2008 Peter Gumplinger (op-V09-01-09)
use new global/HEPRandom's G4RandomTools.hh
24th Oct 2008 Peter Gumplinger (op-V09-01-08)
use local G4OpProcessSubType.hh
21st Oct 2008 Peter Gumplinger (op-V09-01-07)
add SetProcessSubType for G4OpAbsorption, G4OpBoundaryProcess,
G4OpRayleigh and G4OpWLS
18th Aug 2008 Peter Gumplinger (op-V09-01-06)
use signatures G4SwapPtr(T*& and G4SwapObj(T*
in G4OpBoundaryProcess - to work with global-V09-01-12
15th Aug 2008 Peter Gumplinger (op-V09-01-05)
replaced G4SwapPtr with G4SwapObj for Rindex
in G4OpBoundaryProcess - serious error since op-V09-01-00
(see also Problem Report 1020)
4th July 2008 Peter Gumplinger (op-V09-01-04)
In G4OpWLS now SetTouchableHandle(aTrack.GetTouchableHandle())
for the secondaries in the DoIt.
In G4OpBoundaryProcess.cc initialize the pointer:
G4LogicalSurface* Surface = NULL;
27th June 2008 Peter Gumplinger (op-V09-01-03)
In G4OpBoundaryProcess changed unsafe cast
(G4OpticalSurface*) to dynamic_cast<G4OpticalSurface*>
following suggestion in bug-report #1014
6th June 2008 Peter Gumplinger (op-V09-01-02)
G4OpRayleigh, G4OpWLS = trivial name changes:
momentum->energy, momenta->energies
5th June 2008 Peter Gumplinger (op-V09-01-00)
G4OpBoundaryProcess: Removed G4Swap methods - replaced by
G4SwapPtr. Removed G4IsotropicRand method - replaced by
G4RandomDirection. Add commented code to change absorption
at a dielectric/metal boundary into transmission.
29th Oct 2007 Peter Gumplinger (op-V09-00-01)
In G4OpWLS.cc allow for the MeanNumberOfPhotons to be
different from one, in case the constant property:
WLSMEANNUMBERPHOTONS is provided and, if it is, sample
NumPhotons with G4Poisson.
15th Oct 2007 Peter Gumplinger (op-V09-00-00)
Add capability of calculating the reflectivity off a metal
surface by way of a complex index of refraction.
Thanks to Sehwook Lee and John Hauptman
(Dept. of Physics - Iowa State Univ.)
11th May 2007 Gabriele Cosmo (op-V08-03-00)
Use call to G4GeometryTolerance instead of kCarTolerance in
G4OpBoundaryProcess.
Requires tag "global-V08-03-00" and related tag set.
11th May 2006 Peter Gumplinger (op-V08-00-01)
thanks to Andreia Trindade and Pedro Rodrigues, the WLS time
delay can now be a delta function or exponential. New classes:
G4VWLSTimeGeneratorProfile, G4WLSTimeGeneratorProfileDelta and
G4WLSTimeGeneratorProfileExponential
17th Feb 2006 Peter Gumplinger (op-V08-00-00)
fix default behaviour for unified model of dielectric_metal
28th July 2005 Peter Gumplinger (op-V07-01-00)
add G4ProcessType to all constructors
10th December 2004 Gabriele Cosmo (op-V06-02-06)
replaced M_PI with CLHEP's pi
02nd December 2004 Peter Gumplinger (op-V06-02-05)
migration to cmath
28th October 2004 Gabriele Cosmo (op-V06-02-04)
Added G4OPTICAL_DEBUG flag for debug printout.
18th October 2004 Peter Gumplinger (op-V06-02-03)
Fix bug in DielectricMetal only GetFacetNormal for
LobeReflection.
Migrate files to 7.0 ParticleChange method names:
G4OpBoundaryProcess.hh, G4OpBoundaryProcess.cc,
G4OpWLS.cc, G4OpRayleigh.cc, G4OpAbsorption.cc
27th September 2004 Peter Gumplinger (op-V06-02-02)
Fix bug in G4PlaneVectorRand and resample
theFacetNormal for LobeReflection in DielectricMetal
12th August 2004 Peter Gumplinger (op-V06-02-01)
In G4OpBoundaryProcess.cc: use GetMaterial from
G4StepPoint directly; apply/sample reflectivity and
Unified model reflection parameters only once even
for rough dielectric/metal surfaces - i.e. not again
even when reflected ray still points toward the
surface - fixes problem report 654.
05th August 2004 Peter Gumplinger (op-V06-02-00)
Allow for unified model reflectivity parameters
to also work in case of dielectric_metal surfaces;
addresses in part problem report 654.
26th April 2004 Peter Gumplinger (op-V06-01-01)
Protect against NULL pointers in G4OpRayleigh.
Do not overwrite Rayleigh scattering length
for the material named 'Water' if it has been
specified by the user through a call to
AddProperty("RAYLEIGH"
21st April 2004 Peter Gumplinger (op-V06-01-00)
Assign class members to defaults in DoIt.
17th March 2004 Peter Gumplinger (op-V06-00-03)
Assign all class members in constructor.
24th February 2004 Gabriele Cosmo (op-V06-00-02)
Added EOL at end of file in G4OpBoundaryProcess.cc to clear
compilation warning in Linux-g++.
19th February 2004 Peter Gumplinger (op-V06-00-01)
Add process status: NotAtBoundary, SameMaterial,
StepTooSmall, NoRINDEX
Allow for a skin-surface between mother and daughter
volumes, with the daughter skin taking precedence.
2nd February 2004 Peter Gumplinger (op-V06-00-00)
Set theStatus = Undefined at start of DoIt
Replace usage of 0 with NULL.
1st December 2003 Peter Gumplinger (op-V05-02-02)
G4OpBoundaryProcess.cc: modified to adopt G4SurfaceProperty.
Requires tag "materials-V05-02-00".
Replaced usage of NULL with 0.
4th October 2003 Gabriele Cosmo (op-V05-02-01)
Modified GNUmakefile: added dependency to new module
"geometry/navigation".
Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00".
23rd September 2003 Peter Gumplinger (op-V05-02-00)
Add WLS (wavelength shifting) process
15th March 2003 Peter Gumplinger (op-V05-00-01)
Change logic for assigning of Rindex2; bug report #444
4th February 2003 Peter Gumplinger (op-V05-00-00)
Fix calculation of polarization for perpendicular
incidence when Rindex1 > Rindex2; bug report #442
12th November 2002 Peter Gumplinger (op-V04-01-01)
Fix calculation of polarization on dielectric dielectric
interfaces; bug report #427
28th March 2002 Peter Gumplinger (op-V04-00-01)
Add public inline method GetStatus and make enum
G4OpBoundaryProcessStatus public in G4OpBoundaryProcess.hh
18th October 2001 Peter Gumplinger (op-V03-02-01)
Avoid warnings on Linux (gcc-2.95.2) compiler
- G4OpRayleigh.cc: remove unused variable 'aMaterial' in PostStepDoIt and
'no_unit' in RayleighAttenuationLengthGenerator
- G4OpBoundaryProcess.cc: moved definition of E2_perp, E2_parl, E2_total
outside IF-statement
31st August 2001 Peter Gumplinger (op-V03-02-00)
- G4OpRayleigh.hh, G4OpBoundary.hh and G4OpAbsorption.hh: changed processName
to 'OpRayleigh', 'OpBoundary' and 'OpAbsorption' respectively
30th January 2001 Peter Gumplinger (op-V03-00-05)
- G4OpRayleigh.cc: allow for positiv and negative CosTheta and force the
new momentum direction to be in the same plane as the
new and old polarization vectors
still bug report: 207
29th January 2001 Peter Gumplinger (op-V03-00-04)
- G4OpRayleigh.cc: fix calculation of SinTheta from CosTheta
bug report: 207
23rd January 2001 Peter Gumplinger (op-V03-00-02)
- G4OpRayleigh.cc: Allow for Rayleigh scattering length to be defined for
arbitrary material through the use of G4MaterialPropertyTable.
5th October 2000 Peter Gumplinger (op-V02-00-02)
- G4OpAbsorption.cc: Comment out warning - No Absorption length specified.
3rd August 2000 Gabriele Cosmo (op-V02-00-00r)
- G4OpBoundaryProcess.cc: changed RandGauss to G4RandGauss to fix problem
of events' reproducibility.
- Syncronized with HEAD (only CVS headers changes).
21th October 1999 Peter Gumplinger (op-V00-01-01)
- G4OpBoundaryProcess.hh and G4OpBoundaryProcess.cc have been modified
(Fill NewMomentum/NewPolarization in DoAbsorption. These members need
to be filled since DoIt calls aParticleChange.SetMomentumChange etc.
upon return (thanks to: Clark McGrew)