Index: trunk/examples/extended/optical/LXe/History
===================================================================
--- trunk/examples/extended/optical/LXe/History	(revision 1230)
+++ trunk/examples/extended/optical/LXe/History	(revision 1337)
@@ -1,3 +1,3 @@
-$Id: History,v 1.9 2007/09/30 22:33:42 gum Exp $
+$Id: History,v 1.14 2010/06/03 21:23:13 gum Exp $
 -------------------------------------------------------------------
 
@@ -15,4 +15,22 @@
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
+
+03 June 2010 Peter Gumplinger    (LXe-V09-03-00)
+-  modify LXeTrajectory class to compile without warnings against
+   tracking-V09-03-03 by implementing a DrawTrajectory() method.
+
+09 November 2009 Peter Gumplinger (LXe-V09-02-01)
+- exhibit the usage of a complex index of refraction for the photo cathode
+  show usage of G4OpticalPhysics builder/messenger (instead of LXeOpticalPhysics)
+
+30 October 2009 John Allison (LXe-V09-02-00)
+- Introduced G4UIExecutive.
+
+20 November 2008 Peter Gumplinger (LXe-V09-01-01)
+- update code in LXeOpticalPhysics.cc
+
+16 July 2008 Peter Gumplinger (LXe-V09-01-00)
+- add Birks Constant for the LXe scintillator, Polystyrene scintillator
+  modified: LXeDetectorConstruction.cc, LXeOpticalPhysics.cc
 
 30 Sept 2007 Peter Gumplinger (LXe-V09-00-00)
Index: trunk/examples/extended/optical/LXe/LXe.in
===================================================================
--- trunk/examples/extended/optical/LXe/LXe.in	(revision 1230)
+++ trunk/examples/extended/optical/LXe/LXe.in	(revision 1337)
@@ -8,3 +8,6 @@
 /LXe/eventVerbose 1
 #/tracking/verbose 1
+/run/initialize
+#/optics_engine/selectOpProcess OpBoundary
+#/optics_engine/setOpProcessVerbose 1
 /run/beamOn 3
Index: trunk/examples/extended/optical/LXe/LXe.out
===================================================================
--- trunk/examples/extended/optical/LXe/LXe.out	(revision 1230)
+++ trunk/examples/extended/optical/LXe/LXe.out	(revision 1337)
@@ -1,125 +1,203 @@
-**********************************************
- Geant4 version $Name:  $
-                                (12-December-2003)
-             Copyright : Geant4 Collaboration
-**********************************************
-Visualization Manager instantiating...
+
+        ############################################
+        !!! WARNING - FPE detection is activated !!!
+        ############################################
+
+*************************************************************
+ Geant4 version Name: geant4-09-03-ref-06    (25-June-2010)
+                      Copyright : Geant4 Collaboration
+                      Reference : NIM A 506 (2003), 250-303
+                            WWW : http://cern.ch/geant4
+*************************************************************
+
+Visualization Manager instantiating with verbosity "warnings (3)"...
 Visualization Manager initialising...
 Registering graphics systems...
 
-You have successfully chosen to use the following graphics systems.
+You have successfully registered the following graphics systems.
 Current available graphics systems are:
   ASCIITree (ATree)
   DAWNFILE (DAWNFILE)
-  GAGTree (GAGTree)
+  G4HepRep (HepRepXML)
   G4HepRepFile (HepRepFile)
-  G4HepRep (HepRepXML)
   RayTracer (RayTracer)
   VRML1FILE (VRML1FILE)
   VRML2FILE (VRML2FILE)
+  gMocrenFile (gMocrenFile)
+  OpenGLStoredX (OGL)
+  OpenGLImmediateX (OGLI)
+  OpenGLStoredX (OGLS)
   OpenGLImmediateX (OGLIX)
   OpenGLStoredX (OGLSX)
-  OpenGLImmediateXm (OGLIXm)
-  OpenGLStoredXm (OGLSXm)
-
-phot:  Total cross sections from Sandia parametrisation. 
-MuonMinusCaptureAtRest is created 
-
-compt:  Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. 
-       Scattered gamma energy according Klein-Nishina.
-        PhysicsTables from 1 keV to 100 GeV in 80 bins. 
-
-conv:  Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. 
-        e+e- energies according Bethe-Heitler
-        PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. 
-
-msc:  Model variant of multiple scattering for e-
-      Lambda tables from 100 eV to 100 TeV in 120 bins.
-      Boundary algorithm is active with facrange= 0.199
-
-eIoni:   tables are built for  e-
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1
-      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
-
-eBrem:   tables are built for  e-
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Total cross sections from a parametrisation based on the EEDL data library. 
-      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
-
-eIoni:   tables are built for  e+
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1
-      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
-
-eBrem:   tables are built for  e+
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Total cross sections from a parametrisation based on the EEDL data library. 
-      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
-
-annihil:  Total cross section from Heilter formula(annihilation into 2 photons).
-        gamma energies sampled according Heitler
-        PhysicsTables from 10 keV to 10 TeV in 100 bins. 
-
-msc:  Model variant of multiple scattering for mu+
-      Lambda tables from 100 eV to 100 TeV in 120 bins.
-      Boundary algorithm is active with facrange= 0.199
-
-MuIoni:   tables are built for  mu+
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0
-      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
-
-MuBrems:   tables are built for  mu+
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Parametrised model 
-
-MuPairProd:   tables are built for  mu+
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Parametrised model 
-### All dEdx and Range tables are built #####
-
-MuIoni:   tables are built for  mu-
-      dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
-      Lambda tables from threshold to 100 TeV in 120 bins.
-      Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0
-      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
-	Energy weighted position of hits in LXe : (5.18102,30.2388,-98.8831)
+
+Registering model factories...
+
+You have successfully registered the following model factories.
+Registered model factories:
+  generic
+  drawByCharge
+  drawByParticleID
+  drawByOriginVolume
+  drawByAttribute
+
+Registered filter factories:
+  chargeFilter
+  particleFilter
+  originVolumeFilter
+  attributeFilter
+
+G4Cerenkov::G4Cerenkov constructor
+NOTE: this is now a G4VProcess!
+Required change in UserPhysicsList: 
+change: pmanager->AddContinuousProcess(theCerenkovProcess);
+to:     pmanager->AddProcess(theCerenkovProcess);
+        pmanager->SetProcessOrdering(theCerenkovProcess,idxPostStep);
+
+phot:   for  gamma    SubType= 12
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+       PhotoElectric :     Emin=          0 eV         Emax=   10 TeV
+
+compt:   for  gamma    SubType= 13
+      Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+       Klein-Nishina :     Emin=          0 eV         Emax=   10 TeV
+
+conv:   for  gamma    SubType= 14
+      Lambda tables from 1.022 MeV to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+       Bethe-Heitler :     Emin=          0 eV         Emax=   10 TeV
+
+msc:   for e-    SubType= 10
+      Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
+      RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+          UrbanMsc93 :     Emin=          0 eV         Emax=   10 TeV
+
+eIoni:   for  e-    SubType= 2
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+        MollerBhabha :     Emin=          0 eV         Emax=   10 TeV
+
+eBrem:   for  e-    SubType= 3
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      LPM flag: 1 for E > 1 GeV
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+               eBrem :     Emin=          0 eV         Emax=   1 GeV
+            eBremRel :     Emin=          1 GeV        Emax=   10 TeV
+
+eIoni:   for  e+    SubType= 2
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+        MollerBhabha :     Emin=          0 eV         Emax=   10 TeV
+
+eBrem:   for  e+    SubType= 3
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      LPM flag: 1 for E > 1 GeV
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+               eBrem :     Emin=          0 eV         Emax=   1 GeV
+            eBremRel :     Emin=          1 GeV        Emax=   10 TeV
+
+annihil:   for  e+    SubType= 5
+      Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+            eplus2gg :     Emin=          0 eV         Emax=   10 TeV
+
+muMsc:   for mu+    SubType= 10
+      Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
+      RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 0
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+          UrbanMsc90 :     Emin=          0 eV         Emax=   10 TeV
+
+muIoni:   for  mu+    SubType= 2
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+               Bragg :     Emin=          0 eV         Emax=   200 keV
+          BetheBloch :     Emin=        200 keV        Emax=   1 GeV
+        MuBetheBloch :     Emin=          1 GeV        Emax=   10 TeV
+
+muBrems:   for  mu+    SubType= 3
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+              MuBrem :     Emin=          0 eV         Emax=   10 TeV
+
+muPairProd:   for  mu+    SubType= 4
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+          muPairProd :     Emin=          0 eV         Emax=   10 TeV
+
+muIoni:   for  mu-    SubType= 2
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+            ICRU73QO :     Emin=          0 eV         Emax=   200 keV
+          BetheBloch :     Emin=        200 keV        Emax=   1 GeV
+        MuBetheBloch :     Emin=          1 GeV        Emax=   10 TeV
+
+muBrems:   for  mu-    SubType= 3
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+              MuBrem :     Emin=          0 eV         Emax=   10 TeV
+
+muPairProd:   for  mu-    SubType= 4
+      dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
+      Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
+      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
+          muPairProd :     Emin=          0 eV         Emax=   10 TeV
+============================================================================================
+             HADRONIC PROCESSES SUMMARY (verbose level 1)
+
+                     Hadronic Processes for <mu->
+          muMinusCaptureAtRest
+============================================================================================
+### G4EmSaturation::FindBirksCoefficient Birks coefficient for LXe  0.126 mm/MeV
+	Energy weighted position of hits in LXe : (0.106357,-0.0981109,-103.428)
 	Total energy deposition in scintillator : 511 (keV)
-	Reconstructed position of hits in LXe : (3.87256,8.56373,-27.017)
-	Number of photons that hit PMTs in this event : 2160
+	Reconstructed position of hits in LXe : (4.05096,0.730982,-14.686)
+WARNING: G4VisManager::IsValidView(): Attempt to draw when no graphics system
+  has been instantiated.  Use "/vis/open" or "/vis/sceneHandler/create".
+  Alternatively, to avoid this message, suppress instantiation of vis
+  manager (G4VisExecutive), possibly by setting G4VIS_NONE, and ensure
+  drawing code is executed only if G4VVisManager::GetConcreteInstance()
+  is non-zero.
+	Number of photons that hit PMTs in this event : 1398
 	Number of PMTs above threshold(1) : 32
-	Number of photons produced by scintillation in this event : 6040
-	Number of photons produced by cerenkov in this event : 1
-	Number of photons absorbed (OpAbsorption) in this event : 3881
+	Number of photons produced by scintillation in this event : 5625
+	Number of photons produced by cerenkov in this event : 2
+	Number of photons absorbed (OpAbsorption) in this event : 4229
 	Number of photons absorbed at boundaries (OpBoundary) in this event : 0
 Unacounted for photons in this event : 0
-	Energy weighted position of hits in LXe : (-28.7618,-1.33268,-9.54847)
+	Energy weighted position of hits in LXe : (0.148663,0.0658336,-97.3519)
 	Total energy deposition in scintillator : 511 (keV)
-	Reconstructed position of hits in LXe : (-5.96696,-2.2751,-2.77019)
-	Number of photons that hit PMTs in this event : 2176
+	Reconstructed position of hits in LXe : (1.15832,-1.1588,-14.6319)
+	Number of photons that hit PMTs in this event : 1349
 	Number of PMTs above threshold(1) : 32
-	Number of photons produced by scintillation in this event : 6167
+	Number of photons produced by scintillation in this event : 5502
 	Number of photons produced by cerenkov in this event : 1
-	Number of photons absorbed (OpAbsorption) in this event : 3992
+	Number of photons absorbed (OpAbsorption) in this event : 4154
 	Number of photons absorbed at boundaries (OpBoundary) in this event : 0
 Unacounted for photons in this event : 0
-	Energy weighted position of hits in LXe : (1.6474,-12.2959,-71.5899)
+	Energy weighted position of hits in LXe : (-0.148027,0.14522,-99.4255)
 	Total energy deposition in scintillator : 511 (keV)
-	Reconstructed position of hits in LXe : (1.21798,-3.59905,-26.1855)
-	Number of photons that hit PMTs in this event : 2230
+	Reconstructed position of hits in LXe : (-1.74264,-1.85574,-16.0139)
+	Number of photons that hit PMTs in this event : 1484
 	Number of PMTs above threshold(1) : 32
-	Number of photons produced by scintillation in this event : 6217
+	Number of photons produced by scintillation in this event : 5629
 	Number of photons produced by cerenkov in this event : 1
-	Number of photons absorbed (OpAbsorption) in this event : 3988
+	Number of photons absorbed (OpAbsorption) in this event : 4146
 	Number of photons absorbed at boundaries (OpBoundary) in this event : 0
 Unacounted for photons in this event : 0
 Graphics systems deleted.
 Visualization Manager deleting...
+
Index: trunk/examples/extended/optical/LXe/WALKTHROUGH
===================================================================
--- trunk/examples/extended/optical/LXe/WALKTHROUGH	(revision 1230)
+++ trunk/examples/extended/optical/LXe/WALKTHROUGH	(revision 1337)
@@ -16,9 +16,12 @@
 #3) Run a basic event
 
-#3a)Turn on verbose output at end of event
+#3a) Run initialize - do this only once
+/run/initialize
+
+#3b)Turn on verbose output at end of event
 #   We'll leave it on for the rest of the events in the walkthrough too
 /LXe/eventVerbose 1
 
-#3b)Run
+#3c)Run
 /run/beamOn
 
Index: trunk/examples/extended/optical/LXe/include/LXeTrajectory.hh
===================================================================
--- trunk/examples/extended/optical/LXe/include/LXeTrajectory.hh	(revision 1230)
+++ trunk/examples/extended/optical/LXe/include/LXeTrajectory.hh	(revision 1337)
@@ -45,5 +45,6 @@
   LXeTrajectory(LXeTrajectory &);
   virtual ~LXeTrajectory();
-  
+ 
+  virtual void DrawTrajectory() const; 
   virtual void DrawTrajectory(G4int i_mode=0) const;
   
Index: trunk/examples/extended/optical/LXe/src/LXeTrajectory.cc
===================================================================
--- trunk/examples/extended/optical/LXe/src/LXeTrajectory.cc	(revision 1230)
+++ trunk/examples/extended/optical/LXe/src/LXeTrajectory.cc	(revision 1337)
@@ -64,4 +64,12 @@
 {
 
+}
+
+//_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+void LXeTrajectory::DrawTrajectory() const
+{
+  // Invoke the default implementation in G4VTrajectory...
+  G4VTrajectory::DrawTrajectory();
+  // ... or override with your own code here.
 }
 
