From 1789e842e50af779e4b38f3cd89d9dbbc3515289 Mon Sep 17 00:00:00 2001
From: Gabriele Cosmo <gabriele.cosmo@cern.ch>
Date: Thu, 9 Jun 2016 16:11:08 +0200
Subject: [PATCH] Import Geant4 9.2.4 source tree

---
 ReleaseNotes/Patch4.9.2-4.txt                 |    43 +
 .../g4py/source/gdml/pyG4GDMLParser.cc        |     2 +-
 .../source/materials/pyG4ElementVector.cc     |     2 +-
 .../g4py/source/materials/pymodG4materials.cc |     2 +-
 .../src/BrachyAnalysisManager.cc              |     2 +-
 .../brachytherapy/src/BrachyPhantomSD.cc      |     2 +-
 .../src/BrachyPrimaryGeneratorAction.cc       |     2 +-
 examples/advanced/microbeam/microbeam.out     |     2 +-
 examples/advanced/nanobeam/nanobeam.out       |     2 +-
 .../include/PurgMagAnalysisManager.hh         |     2 +-
 .../analysis/include/RadmonVAnalysisLayout.hh |     2 +-
 .../include/RadmonVDataAnalysisFactory.hh     |     2 +-
 .../include/RadmonVDataAnalysisFactory.icc    |     2 +-
 .../analysis/src/RadmonAnalysis.cc            |     2 +-
 .../analysis/src/RadmonDataAnalysisLayout.cc  |     2 +-
 .../include/RadmonApplicationMessenger.hh     |     2 +-
 .../application/src/RadmonApplication.cc      |     2 +-
 .../src/RadmonApplicationAnalysisSetup.cc     |     2 +-
 .../src/RadmonApplicationDetectorSetup.cc     |     2 +-
 .../src/RadmonApplicationMessenger.cc         |     2 +-
 .../src/RadmonApplicationPhysicsSetup.cc      |     2 +-
 ...monDetectorCarvedFlatVolumeConstructor.icc |     2 +-
 .../include/RadmonDetectorConstruction.hh     |     2 +-
 .../RadmonDetectorFlatVolumeComponent.icc     |     2 +-
 .../detector/include/RadmonDetectorLayout.hh  |     2 +-
 .../RadmonTDetectorCarvedVolumesDecorator.icc |     2 +-
 .../RadmonTDetectorLayerConstructor.icc       |     2 +-
 ...monTDetectorVolumesWithGroundDecorator.icc |     2 +-
 ...nTDetectorVolumesWithKeyMarksDecorator.icc |     2 +-
 ...admonTDetectorVolumesWithPadsDecorator.icc |     2 +-
 ...admonTDetectorVolumesWithPinsDecorator.icc |     2 +-
 ...monTDetectorVolumesWithTracksDecorator.icc |     2 +-
 .../src/RadmonDetectorConstruction.cc         |     2 +-
 .../src/RadmonDetectorFlatVolumeComponent.cc  |     2 +-
 ...ctorLabelledEntitiesConstructorsFactory.cc |     2 +-
 .../src/RadmonDetectorLayerVolumeItem.cc      |     2 +-
 .../detector/src/RadmonDetectorLayout.cc      |     2 +-
 .../detector/src/RadmonDetectorMessenger.cc   |     2 +-
 .../src/RadmonDetectorMultilayerLayout.cc     |     2 +-
 .../RadmonLayoutEntityWithAttributes.hh       |     2 +-
 .../include/RadmonTLabelledCollection.icc     |     4 +-
 .../include/RadmonVLayoutSubject.hh           |     2 +-
 .../generator/include/RadmonGunMessenger.hh   |     2 +-
 .../include/RadmonPrimaryGeneratorAction.hh   |     2 +-
 .../generator/src/RadmonGeneratorLayout.cc    |     2 +-
 .../generator/src/RadmonGunMessenger.cc       |     2 +-
 .../src/RadmonPrimaryGeneratorAction.cc       |     2 +-
 .../physics/include/RadmonPhysicsParticles.hh |     2 +-
 .../include/RadmonPhysicsParticles.icc        |     2 +-
 .../src/RadmonPhysicsNeutronBertini.cc        |     2 +-
 .../physics/src/RadmonPhysicsNeutronBinary.cc |     2 +-
 .../physics/src/RadmonPhysicsParticles.cc     |     2 +-
 .../src/RadmonSensitiveDetector.cc            |     2 +-
 .../userActions/src/RadmonEventAction.cc      |     2 +-
 examples/advanced/xray_fluorescence/History   |     2 +-
 .../AnaEx01/src/AnaEx01AnalysisManager.cc     |     2 +-
 examples/extended/biasing/B01/exampleB01.out  |     2 +-
 .../electromagnetic/TestEm0/TestEm0.out       |     2 +-
 .../electromagnetic/TestEm1/TestEm1.out       |     6 +-
 .../electromagnetic/TestEm10/TestEm10.out     |     4 +-
 .../electromagnetic/TestEm11/TestEm11.out     |     4 +-
 .../electromagnetic/TestEm12/TestEm12.out     |     4 +-
 .../electromagnetic/TestEm13/TestEm13.out     |     6 +-
 .../electromagnetic/TestEm14/TestEm14.out     |     4 +-
 .../electromagnetic/TestEm15/TestEm15.out     |     2 +-
 .../electromagnetic/TestEm16/TestEm16.out     |     4 +-
 .../electromagnetic/TestEm17/TestEm17.out     |     8 +-
 .../electromagnetic/TestEm18/TestEm18.out     |     4 +-
 .../electromagnetic/TestEm2/TestEm2.out       |     4 +-
 .../electromagnetic/TestEm3/TestEm3.out       |     4 +-
 .../electromagnetic/TestEm4/TestEm4.out       |     4 +-
 .../electromagnetic/TestEm5/TestEm5.out       |     4 +-
 .../electromagnetic/TestEm6/TestEm6.out       |     8 +-
 .../electromagnetic/TestEm7/TestEm7.out       |    12 +-
 .../electromagnetic/TestEm8/TestEm8.out       |     2 +-
 .../electromagnetic/TestEm9/TestEm9.out       |     4 +-
 examples/extended/field/field01/field01.out   |     2 +-
 examples/extended/field/field02/field02.out   |     4 +-
 examples/extended/field/field03/field03.out   |     8 +-
 examples/extended/field/field04/field04.cc    |     2 +-
 examples/extended/field/field04/field04.out   |     2 +-
 .../extended/g3tog4/clGeometry/clGeometry.out |   639 -
 examples/extended/g3tog4/cltog4/cltog4.out    |   352 -
 examples/extended/hadronic/Hadr01/hadr01.out  |     2 +-
 .../DicomNestedPhantomParameterisation.hh     |     2 +-
 .../src/DicomNestedPhantomParameterisation.cc |     2 +-
 .../DICOM/src/G4PSDoseDeposit_RegNav.cc       |     2 +-
 .../medical/GammaTherapy/GammaTherapy.out     |     4 +-
 .../medical/fanoCavity/fanoCavity.out         |     4 +-
 .../medical/fanoCavity2/fanoCavity2.out       |     4 +-
 examples/extended/optical/LXe/LXe.out         |     2 +-
 .../extended/persistency/gdml/G02/geotest.cc  |     2 +-
 .../gdml/G02/src/DetectorConstruction.cc      |     2 +-
 .../extended/polarisation/Pol01/pol01.out     |     4 +-
 examples/novice/N01/exampleN01.out            |     2 +-
 examples/novice/N02/exampleN02.out            |     2 +-
 examples/novice/N03/exampleN03.out            |     2 +-
 examples/novice/N04/exampleN04.out            |     4 +-
 examples/novice/N05/exampleN05.out            |     2 +-
 examples/novice/N06/exampleN06.out            |     4 +-
 examples/novice/N07/exampleN07.out            |    66 +-
 source/GNUmakefile                            |     6 +-
 .../detector/include/G4VReadOutGeometry.hh    |     2 +-
 source/digits_hits/scorer/src/G4PSCellFlux.cc |     2 +-
 .../scorer/src/G4PSCylinderSurfaceCurrent.cc  |     2 +-
 .../scorer/src/G4PSCylinderSurfaceFlux.cc     |     2 +-
 .../digits_hits/scorer/src/G4PSDoseDeposit.cc |     2 +-
 .../scorer/src/G4PSFlatSurfaceCurrent.cc      |     2 +-
 .../scorer/src/G4PSFlatSurfaceFlux.cc         |     2 +-
 .../scorer/src/G4PSPassageCellFlux.cc         |     2 +-
 .../scorer/src/G4PSSphereSurfaceCurrent.cc    |     2 +-
 .../scorer/src/G4PSSphereSurfaceFlux.cc       |     2 +-
 .../utils/src/G4ScoreLogColorMap.cc           |     2 +-
 .../digits_hits/utils/src/G4VScoreColorMap.cc |     2 +-
 .../src/G4ErrorMagFieldLimitProcess.cc        |     2 +-
 .../include/G4MagIntegratorStepper.hh         |     2 +-
 .../include/G4MagIntegratorStepper.icc        |     2 +-
 .../magneticfield/src/G4ChordFinder.cc        |     2 +-
 .../magneticfield/src/G4ClassicalRK4.cc       |     2 +-
 .../magneticfield/src/G4EqEMFieldWithSpin.cc  |     2 +-
 .../src/G4MagIntegratorDriver.cc              |     2 +-
 .../magneticfield/src/G4Mag_SpinEqRhs.cc      |     2 +-
 .../magneticfield/src/G4SimpleHeum.cc         |     2 +-
 .../management/include/G4LogicalSurface.hh    |     2 +-
 .../management/include/G4LogicalSurface.icc   |     2 +-
 .../management/include/G4VTouchable.icc       |     2 +-
 .../management/src/G4LogicalVolume.cc         |     2 +-
 .../management/src/G4SmartVoxelHeader.cc      |     2 +-
 .../geometry/management/src/G4VTouchable.cc   |     2 +-
 .../navigation/include/G4Navigator.hh         |     2 +-
 .../include/G4PhantomParameterisation.hh      |     2 +-
 .../navigation/include/G4PropagatorInField.hh |     2 +-
 .../include/G4PropagatorInField.icc           |     2 +-
 .../include/G4RegularNavigationHelper.hh      |     2 +-
 .../include/G4VIntersectionLocator.hh         |     2 +-
 .../geometry/navigation/src/G4BrentLocator.cc |     2 +-
 .../navigation/src/G4VIntersectionLocator.cc  |     2 +-
 source/geometry/solids/CSG/src/G4Cons.cc      |     2 +-
 source/geometry/solids/CSG/src/G4Orb.cc       |     2 +-
 source/geometry/solids/CSG/src/G4Sphere.cc    |     2 +-
 source/geometry/solids/CSG/src/G4Torus.cc     |     2 +-
 source/geometry/solids/CSG/src/G4Tubs.cc      |     2 +-
 .../solids/specific/src/G4Ellipsoid.cc        |     2 +-
 .../solids/specific/src/G4Paraboloid.cc       |     2 +-
 .../solids/specific/src/G4PolyconeSide.cc     |     2 +-
 .../solids/specific/src/G4TessellatedSolid.cc |     2 +-
 .../solids/specific/src/G4TwistTubsSide.cc    |     2 +-
 .../solids/specific/src/G4VCSGfaceted.cc      |     2 +-
 .../volumes/include/G4NavigationHistory.hh    |     2 +-
 .../volumes/include/G4NavigationHistory.icc   |     2 +-
 .../volumes/include/G4TouchableHistory.hh     |     2 +-
 .../volumes/include/G4TouchableHistory.icc    |     2 +-
 .../geometry/volumes/src/G4AssemblyVolume.cc  |     2 +-
 .../volumes/src/G4NavigationHistory.cc        |     2 +-
 .../geometry/volumes/src/G4NavigationLevel.cc |     2 +-
 .../geometry/volumes/src/G4PVParameterised.cc |     2 +-
 .../volumes/src/G4TouchableHistory.cc         |     2 +-
 source/global/History                         |     5 +-
 source/global/management/include/G4String.hh  |     2 +-
 source/global/management/include/G4String.icc |     2 +-
 source/global/management/include/G4Version.hh |    12 +-
 .../include/G4MaterialStoppingICRU73.hh       |     2 +-
 .../include/G4SimpleMaterialStoppingICRU73.hh |     2 +-
 .../materials/src/G4MaterialStoppingICRU73.cc |     2 +-
 .../src/G4SimpleMaterialStoppingICRU73.cc     |     2 +-
 source/particles/hadrons/ions/src/G4Alpha.cc  |     2 +-
 source/particles/hadrons/ions/src/G4He3.cc    |     2 +-
 source/particles/hadrons/ions/src/G4Triton.cc |     2 +-
 source/particles/management/src/G4IonTable.cc |     2 +-
 .../persistency/gdml/include/G4GDMLParser.hh  |     2 +-
 .../persistency/gdml/include/G4GDMLParser.icc |     2 +-
 source/persistency/gdml/include/G4GDMLRead.hh |     2 +-
 .../gdml/include/G4GDMLReadMaterials.hh       |     2 +-
 .../gdml/include/G4GDMLReadParamvol.hh        |     2 +-
 .../gdml/include/G4GDMLReadSetup.hh           |     2 +-
 .../gdml/include/G4GDMLReadSolids.hh          |     2 +-
 .../gdml/include/G4GDMLReadStructure.hh       |     2 +-
 .../persistency/gdml/include/G4GDMLWrite.hh   |     2 +-
 .../gdml/include/G4GDMLWriteDefine.hh         |     2 +-
 .../gdml/include/G4GDMLWriteMaterials.hh      |     2 +-
 .../gdml/include/G4GDMLWriteParamvol.hh       |     2 +-
 .../gdml/include/G4GDMLWriteSetup.hh          |     2 +-
 .../gdml/include/G4GDMLWriteSolids.hh         |     2 +-
 .../gdml/include/G4GDMLWriteStructure.hh      |     2 +-
 source/persistency/gdml/src/G4GDMLParser.cc   |     2 +-
 source/persistency/gdml/src/G4GDMLRead.cc     |     2 +-
 .../persistency/gdml/src/G4GDMLReadDefine.cc  |     2 +-
 .../gdml/src/G4GDMLReadParamvol.cc            |     2 +-
 .../persistency/gdml/src/G4GDMLReadSetup.cc   |     2 +-
 .../persistency/gdml/src/G4GDMLReadSolids.cc  |     2 +-
 .../gdml/src/G4GDMLReadStructure.cc           |     2 +-
 source/persistency/gdml/src/G4GDMLWrite.cc    |     2 +-
 .../persistency/gdml/src/G4GDMLWriteDefine.cc |     2 +-
 .../gdml/src/G4GDMLWriteMaterials.cc          |     2 +-
 .../gdml/src/G4GDMLWriteParamvol.cc           |     2 +-
 .../persistency/gdml/src/G4GDMLWriteSetup.cc  |     2 +-
 .../persistency/gdml/src/G4GDMLWriteSolids.cc |     2 +-
 .../gdml/src/G4GDMLWriteStructure.cc          |     2 +-
 .../include/G4BertiniNeutronBuilder.hh        |     2 +-
 .../builders/include/G4BertiniPiKBuilder.hh   |     2 +-
 .../include/G4BertiniProtonBuilder.hh         |     2 +-
 .../include/G4BinaryNeutronBuilder.hh         |     2 +-
 .../builders/include/G4BinaryPiKBuilder.hh    |     2 +-
 .../builders/include/G4BinaryProtonBuilder.hh |     2 +-
 .../include/G4FTFBinaryNeutronBuilder.hh      |     2 +-
 .../builders/include/G4FTFBinaryPiKBuilder.hh |     2 +-
 .../include/G4FTFBinaryProtonBuilder.hh       |     2 +-
 .../builders/include/G4FTFCNeutronBuilder.hh  |     2 +-
 .../builders/include/G4FTFCPiKBuilder.hh      |     2 +-
 .../builders/include/G4FTFCProtonBuilder.hh   |     2 +-
 .../builders/include/G4FTFPNeutronBuilder.hh  |     2 +-
 .../builders/include/G4FTFPPiKBuilder.hh      |     2 +-
 .../builders/include/G4FTFPProtonBuilder.hh   |     2 +-
 .../builders/include/G4MiscLHEPBuilder.hh     |     2 +-
 .../builders/include/G4PrecoNeutronBuilder.hh |     2 +-
 .../builders/include/G4PrecoProtonBuilder.hh  |     2 +-
 .../include/G4QGSBinaryNeutronBuilder.hh      |     2 +-
 .../builders/include/G4QGSBinaryPiKBuilder.hh |     2 +-
 .../include/G4QGSBinaryProtonBuilder.hh       |     2 +-
 .../include/G4QGSCEflowNeutronBuilder.hh      |     2 +-
 .../builders/include/G4QGSCEflowPiKBuilder.hh |     2 +-
 .../include/G4QGSCEflowProtonBuilder.hh       |     2 +-
 .../builders/include/G4QGSCNeutronBuilder.hh  |     2 +-
 .../builders/include/G4QGSCPiKBuilder.hh      |     2 +-
 .../builders/include/G4QGSCProtonBuilder.hh   |     2 +-
 .../builders/include/G4QGSPNeutronBuilder.hh  |     2 +-
 .../builders/include/G4QGSPPiKBuilder.hh      |     2 +-
 .../builders/include/G4QGSPProtonBuilder.hh   |     2 +-
 .../builders/include/G4VNeutronBuilder.hh     |     2 +-
 .../builders/include/G4VPiKBuilder.hh         |     2 +-
 .../builders/include/G4VProtonBuilder.hh      |     2 +-
 .../builders/src/G4BertiniNeutronBuilder.cc   |     2 +-
 .../builders/src/G4BertiniPiKBuilder.cc       |     2 +-
 .../builders/src/G4BertiniProtonBuilder.cc    |     2 +-
 .../builders/src/G4BinaryNeutronBuilder.cc    |     2 +-
 .../builders/src/G4BinaryPiKBuilder.cc        |     2 +-
 .../builders/src/G4BinaryProtonBuilder.cc     |     2 +-
 .../builders/src/G4FTFBinaryNeutronBuilder.cc |     2 +-
 .../builders/src/G4FTFBinaryPiKBuilder.cc     |     2 +-
 .../builders/src/G4FTFBinaryProtonBuilder.cc  |     2 +-
 .../builders/src/G4FTFCNeutronBuilder.cc      |     2 +-
 .../builders/src/G4FTFCPiKBuilder.cc          |     2 +-
 .../builders/src/G4FTFCProtonBuilder.cc       |     2 +-
 .../builders/src/G4FTFPNeutronBuilder.cc      |     2 +-
 .../builders/src/G4FTFPPiKBuilder.cc          |     2 +-
 .../builders/src/G4FTFPProtonBuilder.cc       |     2 +-
 .../builders/src/G4IonBinaryCascadePhysics.cc |     2 +-
 .../builders/src/G4MiscLHEPBuilder.cc         |     2 +-
 .../builders/src/G4PrecoNeutronBuilder.cc     |     2 +-
 .../builders/src/G4PrecoProtonBuilder.cc      |     2 +-
 .../builders/src/G4QGSBinaryNeutronBuilder.cc |     2 +-
 .../builders/src/G4QGSBinaryPiKBuilder.cc     |     2 +-
 .../builders/src/G4QGSBinaryProtonBuilder.cc  |     2 +-
 .../builders/src/G4QGSCEflowNeutronBuilder.cc |     2 +-
 .../builders/src/G4QGSCEflowPiKBuilder.cc     |     2 +-
 .../builders/src/G4QGSCEflowProtonBuilder.cc  |     2 +-
 .../builders/src/G4QGSCNeutronBuilder.cc      |     2 +-
 .../builders/src/G4QGSCPiKBuilder.cc          |     2 +-
 .../builders/src/G4QGSCProtonBuilder.cc       |     2 +-
 .../builders/src/G4QGSPNeutronBuilder.cc      |     2 +-
 .../builders/src/G4QGSPPiKBuilder.cc          |     2 +-
 .../builders/src/G4QGSPProtonBuilder.cc       |     2 +-
 .../builders/src/G4VNeutronBuilder.cc         |     2 +-
 .../builders/src/G4VPiKBuilder.cc             |     2 +-
 .../builders/src/G4VProtonBuilder.cc          |     2 +-
 .../lists/src/G4HadronInelasticQBBC.cc        |     2 +-
 .../lists/src/HadronPhysicsQGSC.cc            |     2 +-
 .../cuts/include/G4ProductionCutsTable.hh     |     2 +-
 .../cuts/include/G4RToEConvForElectron.hh     |     2 +-
 .../cuts/include/G4RToEConvForGamma.hh        |     2 +-
 .../cuts/include/G4RToEConvForPositron.hh     |     2 +-
 .../cuts/include/G4RToEConvForProton.hh       |     2 +-
 .../cuts/include/G4VRangeToEnergyConverter.hh |     2 +-
 .../cuts/src/G4ProductionCutsTable.cc         |     2 +-
 .../cuts/src/G4RToEConvForElectron.cc         |     2 +-
 .../processes/cuts/src/G4RToEConvForGamma.cc  |     2 +-
 .../cuts/src/G4RToEConvForPositron.cc         |     2 +-
 .../processes/cuts/src/G4RToEConvForProton.cc |     2 +-
 .../cuts/src/G4VRangeToEnergyConverter.cc     |     2 +-
 .../lowenergy/include/G4DNAProcess.icc        |     2 +-
 .../lowenergy/include/G4FinalStateProduct.hh  |     2 +-
 ...rossSectionExcitationMillerGreenPartial.cc |     2 +-
 .../G4CrossSectionIonisationBornPartial.cc    |     2 +-
 .../src/G4FinalStateChargeDecrease.cc         |     2 +-
 .../src/G4FinalStateChargeIncrease.cc         |     2 +-
 .../lowenergy/src/G4FinalStateProduct.cc      |     2 +-
 .../lowenergy/src/G4PenelopePhotoElectric.cc  |     2 +-
 .../src/G4PenelopePhotoElectricModel.cc       |     2 +-
 .../lowenergy/src/G4hLowEnergyLoss.cc         |     2 +-
 .../muons/src/G4MuPairProductionModel.cc      |     2 +-
 .../polarisation/src/G4PolarizationHelper.cc  |     2 +-
 .../src/G4PolarizedAnnihilationModel.cc       |     2 +-
 .../polarisation/src/G4StokesVector.cc        |     2 +-
 .../include/G4UniversalFluctuation.hh         |     2 +-
 .../standard/include/G4ionIonisation.hh       |     2 +-
 .../standard/src/G4UniversalFluctuation.cc    |     2 +-
 .../standard/src/G4ionIonisation.cc           |     2 +-
 .../utils/src/G4EmCorrections.cc              |     2 +-
 .../electromagnetic/utils/src/G4VEmProcess.cc |     2 +-
 .../utils/src/G4VEnergyLossProcess.cc         |     2 +-
 .../utils/src/G4ionEffectiveCharge.cc         |     2 +-
 .../include/G4CrossSectionDataSetRegistry.hh  |     2 +-
 .../include/G4CrossSectionDataStore.hh        |     2 +-
 .../include/G4VCrossSectionDataSet.hh         |     2 +-
 .../src/G4CrossSectionDataSetRegistry.cc      |     2 +-
 .../src/G4CrossSectionDataStore.cc            |     2 +-
 .../src/G4VCrossSectionDataSet.cc             |     2 +-
 .../include/G4HadronicProcessStore.hh         |     2 +-
 .../management/src/G4HadronicProcessStore.cc  |     2 +-
 .../processes/hadronic/models/cascade/History |     7 +
 .../cascade/cascade/src/G4CascadeInterface.cc |   165 +-
 .../chiral_inv_phase_space/body/History       |     8 +
 .../body/src/G4QEnvironment.cc                | 13468 ++++++++--------
 .../chiral_inv_phase_space/interface/History  |     7 +
 .../include/G4ElectroNuclearReaction.hh       |     2 +-
 .../src/G4ChiralInvariantPhaseSpace.cc        |   113 +-
 .../interface/src/G4QCaptureAtRest.cc         |     2 +-
 .../interface/src/G4QElasticCrossSection.cc   |     2 +-
 .../include/G4HadronElastic.hh                |     2 +-
 .../coherent_elastic/src/G4HadronElastic.cc   |     2 +-
 .../fission/src/G4FissionProbability.cc       |     2 +-
 .../G4CameronGilbertPairingCorrections.hh     |     2 +-
 .../G4CameronGilbertShellCorrections.hh       |     2 +-
 .../G4CameronShellPlusPairingCorrections.hh   |     2 +-
 .../G4CameronTruranHilfPairingCorrections.hh  |     2 +-
 .../G4CameronTruranHilfShellCorrections.hh    |     2 +-
 .../G4ConstantLevelDensityParameter.hh        |     2 +-
 .../util/include/G4CookPairingCorrections.hh  |     2 +-
 .../util/include/G4CookShellCorrections.hh    |     2 +-
 .../util/include/G4CoulombBarrier.hh          |     2 +-
 .../util/include/G4DeuteronCoulombBarrier.hh  |     2 +-
 .../G4EvaporationLevelDensityParameter.hh     |     2 +-
 .../util/include/G4He3CoulombBarrier.hh       |     2 +-
 .../util/include/G4NeutronCoulombBarrier.hh   |     2 +-
 .../util/include/G4PairingCorrection.hh       |     2 +-
 .../util/include/G4ProtonCoulombBarrier.hh    |     2 +-
 .../util/include/G4ShellCorrection.hh         |     2 +-
 .../util/include/G4TritonCoulombBarrier.hh    |     2 +-
 .../util/include/G4VCoulombBarrier.hh         |     2 +-
 .../util/include/G4VEmissionProbability.hh    |     2 +-
 .../util/include/G4VLevelDensityParameter.hh  |     2 +-
 .../src/G4CameronGilbertPairingCorrections.cc |     2 +-
 .../src/G4CameronGilbertShellCorrections.cc   |     2 +-
 .../G4CameronShellPlusPairingCorrections.cc   |     2 +-
 .../G4CameronTruranHilfPairingCorrections.cc  |     2 +-
 .../G4CameronTruranHilfShellCorrections.cc    |     2 +-
 .../util/src/G4CookPairingCorrections.cc      |     2 +-
 .../util/src/G4CookShellCorrections.cc        |     2 +-
 .../util/src/G4CoulombBarrier.cc              |     2 +-
 .../src/G4EvaporationLevelDensityParameter.cc |     2 +-
 .../util/src/G4PairingCorrection.cc           |     2 +-
 .../util/src/G4ShellCorrection.cc             |     2 +-
 .../util/src/G4VCoulombBarrier.cc             |     2 +-
 .../util/src/G4VEmissionProbability.cc        |     2 +-
 .../util/src/G4VLevelDensityParameter.cc      |     2 +-
 .../include/G4HadronicInteraction.hh          |     2 +-
 .../include/G4HadronicInteractionRegistry.hh  |     2 +-
 .../include/G4InelasticInteraction.hh         |     2 +-
 .../management/src/G4HadronicInteraction.cc   |     2 +-
 .../src/G4HadronicInteractionRegistry.cc      |     2 +-
 .../management/src/G4InelasticInteraction.cc  |     2 +-
 .../include/G4VLongitudinalStringDecay.hh     |     2 +-
 .../hadronization/src/G4HadronBuilder.cc      |     2 +-
 .../src/G4LundStringFragmentation.cc          |     2 +-
 .../src/G4VLongitudinalStringDecay.cc         |     2 +-
 .../src/G4MuNuclearInteraction.cc             |     2 +-
 .../include/G4PreCompoundEmission.icc         |     2 +-
 .../include/G4PreCompoundFragmentVector.hh    |     2 +-
 .../include/G4VPreCompoundFragment.hh         |     2 +-
 .../exciton_model/src/G4PreCompoundAlpha.cc   |     2 +-
 .../src/G4PreCompoundDeuteron.cc              |     2 +-
 .../src/G4PreCompoundEmission.cc              |     2 +-
 .../src/G4PreCompoundFragment.cc              |     2 +-
 .../src/G4PreCompoundFragmentVector.cc        |     2 +-
 .../exciton_model/src/G4PreCompoundHe3.cc     |     2 +-
 .../exciton_model/src/G4PreCompoundIon.cc     |     2 +-
 .../exciton_model/src/G4PreCompoundNeutron.cc |     2 +-
 .../exciton_model/src/G4PreCompoundNucleon.cc |     2 +-
 .../exciton_model/src/G4PreCompoundProton.cc  |     2 +-
 .../src/G4PreCompoundTransitions.cc           |     2 +-
 .../exciton_model/src/G4PreCompoundTriton.cc  |     2 +-
 .../src/G4VPreCompoundFragment.cc             |     2 +-
 .../models/rpg/include/G4RPGInelastic.hh      |     2 +-
 .../rpg/include/G4RPGNucleonInelastic.hh      |     2 +-
 .../models/rpg/include/G4RPGPionInelastic.hh  |     2 +-
 .../hadronic/models/rpg/src/G4RPGInelastic.cc |     2 +-
 .../models/rpg/src/G4RPGNucleonInelastic.cc   |     2 +-
 .../models/rpg/src/G4RPGPionInelastic.cc      |     2 +-
 .../include/G4ElectronNuclearProcess.hh       |     2 +-
 .../include/G4PhotoNuclearProcess.hh          |     2 +-
 .../processes/src/G4ElectronNuclearProcess.cc |     2 +-
 .../processes/src/G4PhotoNuclearProcess.cc    |     2 +-
 .../processes/src/G4PositronNuclearProcess.cc |     2 +-
 .../stopping/src/G4MuonMinusCaptureAtRest.cc  |     2 +-
 .../optical/include/G4OpBoundaryProcess.hh    |     2 +-
 source/tracking/History                       |     2 +-
 source/tracking/src/G4SteppingManager.cc      |     2 +-
 .../OpenGL/include/G4OpenGLQtViewer.hh        |     2 +-
 .../OpenGL/include/G4OpenGLViewer.hh          |     2 +-
 .../OpenGL/include/G4OpenGLXViewer.hh         |     2 +-
 .../OpenGL/src/G4OpenGLImmediateQt.cc         |     2 +-
 .../OpenGL/src/G4OpenGLImmediateQtViewer.cc   |     2 +-
 .../src/G4OpenGLImmediateWin32Viewer.cc       |     2 +-
 .../OpenGL/src/G4OpenGLImmediateXViewer.cc    |     2 +-
 .../OpenGL/src/G4OpenGLImmediateXmViewer.cc   |     2 +-
 .../OpenGL/src/G4OpenGLQtViewer.cc            |     2 +-
 .../OpenGL/src/G4OpenGLStoredQt.cc            |     2 +-
 .../OpenGL/src/G4OpenGLStoredQtViewer.cc      |     2 +-
 .../OpenGL/src/G4OpenGLStoredWin32Viewer.cc   |     2 +-
 .../OpenGL/src/G4OpenGLStoredXViewer.cc       |     2 +-
 .../OpenGL/src/G4OpenGLStoredXmViewer.cc      |     2 +-
 .../OpenGL/src/G4OpenGLViewer.cc              |     2 +-
 .../OpenGL/src/G4OpenGLWin32Viewer.cc         |     2 +-
 .../OpenGL/src/G4OpenGLXViewer.cc             |     2 +-
 .../OpenGL/src/G4OpenGLXmViewer.cc            |     2 +-
 .../src/G4OpenGLXmWindowHandlingCallbacks.cc  |     2 +-
 .../management/include/G4ViewParameters.hh    |     2 +-
 .../management/include/G4ViewParameters.icc   |     2 +-
 .../management/include/G4VisManager.hh        |     2 +-
 .../management/include/G4VisManager.icc       |     2 +-
 .../visualization/management/src/G4VViewer.cc |     2 +-
 .../management/src/G4ViewParameters.cc        |     2 +-
 .../management/src/G4VisCommandsViewer.cc     |     2 +-
 .../management/src/G4VisManager.cc            |     2 +-
 424 files changed, 7558 insertions(+), 8229 deletions(-)
 create mode 100644 ReleaseNotes/Patch4.9.2-4.txt

diff --git a/ReleaseNotes/Patch4.9.2-4.txt b/ReleaseNotes/Patch4.9.2-4.txt
new file mode 100644
index 0000000000..888d1642d3
--- /dev/null
+++ b/ReleaseNotes/Patch4.9.2-4.txt
@@ -0,0 +1,43 @@
+
+                 Geant4 9.2 - patch-04 Release Notes
+                 -----------------------------------
+
+                                                            16 September 2010
+
+List of fixes included in this public patch since the public release 9.2.p03:
+
+  o Hadronic Processes:
+    ------------------
+    + models/cascade:
+      o Fix for long-standing problem of energy non conservation in pion-nuclear
+        reaction on very light nuclei (in particular He) in G4CascadeInterface.
+        The workaround re-samples the interaction in the rare case when an
+        unphysical final state with baryon number violation is generated.
+    + models/CHIPS:
+      o Fix in G4QEnvironment for a rare problem of anomalous event with high
+        pT jet observed in ATLAS, identified in a Gamma+A -> X reaction with
+        gamma energy of 2 GeV, for which at least one of the secondaries was
+        created with too much kinetic energy (up to 90 GeV).
+        Addresses problem report #1126 and relates only to 9.2 release series.
+      o Fix in G4ChiralInvariantPhaseSpace to catch previously un-handled
+        exceptions produced when a 'chipolino' pseudo-particle is produced by
+        the model and thrown by Q4QEnvironment::Fragment; handles the case in
+        which Q4QEnvironment returns a 90000000 fragment, and converts it to
+        a gamma. Addressing problem report #1138.
+
+ ----------------------------------------------------------------------------
+
+                             Technical Notes
+                             --------------- 
+
+  o  This is a cumulative patch and can be applied on top of release 9.2,
+     9.2.p01, 9.2.p02 or 9.2.p03.
+  o  Technical notes distributed for release 9.2 are also applicable and
+     valid for this patch.
+
+The code and rebuilt binary libraries for release 9.2 are available
+through our "Download" Web page.
+
+Please refer to the Geant4 User Documentation:
+   http://cern.ch/geant4/support/userdocuments.shtml
+for further information about using Geant4.
diff --git a/environments/g4py/source/gdml/pyG4GDMLParser.cc b/environments/g4py/source/gdml/pyG4GDMLParser.cc
index 041f471bd3..34723a7b2d 100644
--- a/environments/g4py/source/gdml/pyG4GDMLParser.cc
+++ b/environments/g4py/source/gdml/pyG4GDMLParser.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: pyG4GDMLParser.cc,v 1.2.2.1 2009/08/11 15:48:46 gcosmo Exp $
-// $Name: geant4-09-02-patch-03 $
+// $Name: geant4-09-02-patch-04 $
 // ====================================================================
 //   pyG4GDMLParser.cc
 //
diff --git a/environments/g4py/source/materials/pyG4ElementVector.cc b/environments/g4py/source/materials/pyG4ElementVector.cc
index 6595794deb..b5f34e58e9 100644
--- a/environments/g4py/source/materials/pyG4ElementVector.cc
+++ b/environments/g4py/source/materials/pyG4ElementVector.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: pyG4ElementVector.cc,v 1.1.2.1 2009/08/11 15:48:46 gcosmo Exp $
-// $Name: geant4-09-02-patch-03 $
+// $Name: geant4-09-02-patch-04 $
 // ====================================================================
 //   pyG4ElementVector.cc
 //
diff --git a/environments/g4py/source/materials/pymodG4materials.cc b/environments/g4py/source/materials/pymodG4materials.cc
index 89f5f8c047..22f5f5d087 100644
--- a/environments/g4py/source/materials/pymodG4materials.cc
+++ b/environments/g4py/source/materials/pymodG4materials.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: pymodG4materials.cc,v 1.7.2.1 2009/08/11 15:48:46 gcosmo Exp $
-// $Name: geant4-09-02-patch-03 $
+// $Name: geant4-09-02-patch-04 $
 // ====================================================================
 //   pymodG4materials.cc [Geant4Py module]
 //
diff --git a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc
index 6c750d28f0..5cab76c66f 100644
--- a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc
+++ b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc
@@ -33,7 +33,7 @@
 //    *******************************
 //
 // $Id: BrachyAnalysisManager.cc,v 1.20.2.1 2009/03/03 11:54:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 #ifdef G4ANALYSIS_USE
 
diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc
index eff41348ac..27cdb1cffb 100644
--- a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc
+++ b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc
@@ -34,7 +34,7 @@
 //    ********************************
 //
 // $Id: BrachyPhantomSD.cc,v 1.13.4.1 2009/03/03 11:54:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 #include "BrachyPhantomSD.hh"
 #ifdef G4ANALYSIS_USE
diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc
index 38c5488fe0..058b1d087a 100644
--- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc
+++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc
@@ -38,7 +38,7 @@
 //    ********************************************
 //
 // $Id: BrachyPrimaryGeneratorAction.cc,v 1.18.4.1 2009/03/03 11:54:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 #include "globals.hh"
 #include "BrachyPrimaryGeneratorAction.hh"
diff --git a/examples/advanced/microbeam/microbeam.out b/examples/advanced/microbeam/microbeam.out
index 7a36e14af2..84d9aea24e 100644
--- a/examples/advanced/microbeam/microbeam.out
+++ b/examples/advanced/microbeam/microbeam.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/advanced/nanobeam/nanobeam.out b/examples/advanced/nanobeam/nanobeam.out
index 71b98a332a..8258e931a5 100644
--- a/examples/advanced/nanobeam/nanobeam.out
+++ b/examples/advanced/nanobeam/nanobeam.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh b/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh
index ee80c3ccf1..ef54449cf9 100644
--- a/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh
+++ b/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh
@@ -33,7 +33,7 @@
 //    ************************************
 //
 // $Id: PurgMagAnalysisManager.hh,v 1.3.4.1 2009/08/11 14:22:47 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #ifdef G4ANALYSIS_USE
diff --git a/examples/advanced/radiation_monitor/analysis/include/RadmonVAnalysisLayout.hh b/examples/advanced/radiation_monitor/analysis/include/RadmonVAnalysisLayout.hh
index 97b6dabf8c..860acdefdd 100644
--- a/examples/advanced/radiation_monitor/analysis/include/RadmonVAnalysisLayout.hh
+++ b/examples/advanced/radiation_monitor/analysis/include/RadmonVAnalysisLayout.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonVAnalysisLayout.hh,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Abstract class to keep track of the analysis options
 //
diff --git a/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.hh b/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.hh
index e79c8d0c75..6692279116 100644
--- a/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.hh
+++ b/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonVDataAnalysisFactory.hh,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Abstract class of a factory of analysis items
 //
diff --git a/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.icc b/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.icc
index a99d0682d7..27cccec8d9 100644
--- a/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.icc
+++ b/examples/advanced/radiation_monitor/analysis/include/RadmonVDataAnalysisFactory.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonVDataAnalysisFactory.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONVDATAANALYSISFACTORY_HH
diff --git a/examples/advanced/radiation_monitor/analysis/src/RadmonAnalysis.cc b/examples/advanced/radiation_monitor/analysis/src/RadmonAnalysis.cc
index 83556e3882..39f83dcc81 100644
--- a/examples/advanced/radiation_monitor/analysis/src/RadmonAnalysis.cc
+++ b/examples/advanced/radiation_monitor/analysis/src/RadmonAnalysis.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonAnalysis.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/analysis/src/RadmonDataAnalysisLayout.cc b/examples/advanced/radiation_monitor/analysis/src/RadmonDataAnalysisLayout.cc
index 511c8589e9..107b4bda05 100644
--- a/examples/advanced/radiation_monitor/analysis/src/RadmonDataAnalysisLayout.cc
+++ b/examples/advanced/radiation_monitor/analysis/src/RadmonDataAnalysisLayout.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDataAnalysisLayout.cc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/application/include/RadmonApplicationMessenger.hh b/examples/advanced/radiation_monitor/application/include/RadmonApplicationMessenger.hh
index 078737a127..e8e1edda71 100644
--- a/examples/advanced/radiation_monitor/application/include/RadmonApplicationMessenger.hh
+++ b/examples/advanced/radiation_monitor/application/include/RadmonApplicationMessenger.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonApplicationMessenger.hh,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   UI commands for managing application level options
 //
diff --git a/examples/advanced/radiation_monitor/application/src/RadmonApplication.cc b/examples/advanced/radiation_monitor/application/src/RadmonApplication.cc
index 8989059e47..828cc85c8a 100644
--- a/examples/advanced/radiation_monitor/application/src/RadmonApplication.cc
+++ b/examples/advanced/radiation_monitor/application/src/RadmonApplication.cc
@@ -30,7 +30,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonApplication.cc,v 1.12.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/application/src/RadmonApplicationAnalysisSetup.cc b/examples/advanced/radiation_monitor/application/src/RadmonApplicationAnalysisSetup.cc
index 92bd0982c3..4cd4cc57a2 100644
--- a/examples/advanced/radiation_monitor/application/src/RadmonApplicationAnalysisSetup.cc
+++ b/examples/advanced/radiation_monitor/application/src/RadmonApplicationAnalysisSetup.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonApplicationAnalysisSetup.cc,v 1.3.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/application/src/RadmonApplicationDetectorSetup.cc b/examples/advanced/radiation_monitor/application/src/RadmonApplicationDetectorSetup.cc
index 57c0d1ee1c..ae48ad4953 100644
--- a/examples/advanced/radiation_monitor/application/src/RadmonApplicationDetectorSetup.cc
+++ b/examples/advanced/radiation_monitor/application/src/RadmonApplicationDetectorSetup.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonApplicationDetectorSetup.cc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/application/src/RadmonApplicationMessenger.cc b/examples/advanced/radiation_monitor/application/src/RadmonApplicationMessenger.cc
index e169372d9e..51d2fe6a23 100644
--- a/examples/advanced/radiation_monitor/application/src/RadmonApplicationMessenger.cc
+++ b/examples/advanced/radiation_monitor/application/src/RadmonApplicationMessenger.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonApplicationMessenger.cc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Messenger commands path
diff --git a/examples/advanced/radiation_monitor/application/src/RadmonApplicationPhysicsSetup.cc b/examples/advanced/radiation_monitor/application/src/RadmonApplicationPhysicsSetup.cc
index 8015e0e671..2a5d78b516 100644
--- a/examples/advanced/radiation_monitor/application/src/RadmonApplicationPhysicsSetup.cc
+++ b/examples/advanced/radiation_monitor/application/src/RadmonApplicationPhysicsSetup.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonApplicationPhysicsSetup.cc,v 1.4.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorCarvedFlatVolumeConstructor.icc b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorCarvedFlatVolumeConstructor.icc
index 0c04ae7f8b..bd10e367a0 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorCarvedFlatVolumeConstructor.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorCarvedFlatVolumeConstructor.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorCarvedFlatVolumeConstructor.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONDETECTORCARVEDFLATVOLUMECONSTRUCTOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorConstruction.hh b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorConstruction.hh
index e190329e00..ac205cd7b9 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorConstruction.hh
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorConstruction.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorConstruction.hh,v 1.3.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Implementation of the G4VUserDetectorConstruction
 //
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorFlatVolumeComponent.icc b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorFlatVolumeComponent.icc
index e937362816..8977544632 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorFlatVolumeComponent.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorFlatVolumeComponent.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorFlatVolumeComponent.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONDETECTORFLATVOLUMECOMPONENT_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorLayout.hh b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorLayout.hh
index 1db4ab42e6..a4d03f2b01 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonDetectorLayout.hh
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonDetectorLayout.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorLayout.hh,v 1.4.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Class to keep track of the configured detector layout
 //
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorCarvedVolumesDecorator.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorCarvedVolumesDecorator.icc
index 93abd3d52b..af91359900 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorCarvedVolumesDecorator.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorCarvedVolumesDecorator.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorCarvedVolumesDecorator.icc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORCARVEDVOLUMESDECORATOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorLayerConstructor.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorLayerConstructor.icc
index 0c23211842..6ad70dd0e5 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorLayerConstructor.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorLayerConstructor.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorLayerConstructor.icc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORLAYERCONSTRUCTOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithGroundDecorator.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithGroundDecorator.icc
index f8a584b5d1..fbba803c08 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithGroundDecorator.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithGroundDecorator.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorVolumesWithGroundDecorator.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORVOLUMESWITHGROUNDDECORATOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithKeyMarksDecorator.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithKeyMarksDecorator.icc
index c65f40bfbe..d3c15ed5ac 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithKeyMarksDecorator.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithKeyMarksDecorator.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorVolumesWithKeyMarksDecorator.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORVOLUMESWITHKEYMARKSDECORATOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPadsDecorator.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPadsDecorator.icc
index dab8480719..a8df8edcff 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPadsDecorator.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPadsDecorator.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorVolumesWithPadsDecorator.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORVOLUMESWITHPADSDECORATOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPinsDecorator.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPinsDecorator.icc
index 3e3371879d..a698ae9134 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPinsDecorator.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithPinsDecorator.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorVolumesWithPinsDecorator.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORVOLUMESWITHPINSDECORATOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithTracksDecorator.icc b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithTracksDecorator.icc
index 8da475390a..fe584feeb3 100644
--- a/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithTracksDecorator.icc
+++ b/examples/advanced/radiation_monitor/detector/include/RadmonTDetectorVolumesWithTracksDecorator.icc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTDetectorVolumesWithTracksDecorator.icc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTDETECTORVOLUMESWITHTRACKSDECORATOR_HH
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorConstruction.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorConstruction.cc
index eb6a5deec5..cf42b566e5 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorConstruction.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorConstruction.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorConstruction.cc,v 1.4.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorFlatVolumeComponent.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorFlatVolumeComponent.cc
index 568b50e095..629dd57d48 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorFlatVolumeComponent.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorFlatVolumeComponent.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorFlatVolumeComponent.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLabelledEntitiesConstructorsFactory.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLabelledEntitiesConstructorsFactory.cc
index 7c80d2fbd2..4f4cc962ac 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLabelledEntitiesConstructorsFactory.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLabelledEntitiesConstructorsFactory.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorLabelledEntitiesConstructorsFactory.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayerVolumeItem.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayerVolumeItem.cc
index 9459b1d464..fc1b8f1889 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayerVolumeItem.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayerVolumeItem.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorLayerVolumeItem.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayout.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayout.cc
index 9e79651ed0..ec328e4877 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayout.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorLayout.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorLayout.cc,v 1.3.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMessenger.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMessenger.cc
index 795b6e2a77..65bc3a6c7b 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMessenger.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMessenger.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorMessenger.cc,v 1.3.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Messenger commands path
diff --git a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMultilayerLayout.cc b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMultilayerLayout.cc
index b3b21874ad..d573ed7e58 100644
--- a/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMultilayerLayout.cc
+++ b/examples/advanced/radiation_monitor/detector/src/RadmonDetectorMultilayerLayout.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonDetectorMultilayerLayout.cc,v 1.6.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/generalPurpose/include/RadmonLayoutEntityWithAttributes.hh b/examples/advanced/radiation_monitor/generalPurpose/include/RadmonLayoutEntityWithAttributes.hh
index 25a06033eb..262e06c709 100644
--- a/examples/advanced/radiation_monitor/generalPurpose/include/RadmonLayoutEntityWithAttributes.hh
+++ b/examples/advanced/radiation_monitor/generalPurpose/include/RadmonLayoutEntityWithAttributes.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonLayoutEntityWithAttributes.hh,v 1.3.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Provides attributes to other detector classes
 //
diff --git a/examples/advanced/radiation_monitor/generalPurpose/include/RadmonTLabelledCollection.icc b/examples/advanced/radiation_monitor/generalPurpose/include/RadmonTLabelledCollection.icc
index 5a6c248e89..a077f7d070 100644
--- a/examples/advanced/radiation_monitor/generalPurpose/include/RadmonTLabelledCollection.icc
+++ b/examples/advanced/radiation_monitor/generalPurpose/include/RadmonTLabelledCollection.icc
@@ -29,9 +29,9 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonTLabelledCollection.icc,v 1.6.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 // Id:            $Id: RadmonTLabelledCollection.icc,v 1.6.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONTLABELLEDCOLLECTION_HH
diff --git a/examples/advanced/radiation_monitor/generalPurpose/include/RadmonVLayoutSubject.hh b/examples/advanced/radiation_monitor/generalPurpose/include/RadmonVLayoutSubject.hh
index d2e84807a9..799c7edf8e 100644
--- a/examples/advanced/radiation_monitor/generalPurpose/include/RadmonVLayoutSubject.hh
+++ b/examples/advanced/radiation_monitor/generalPurpose/include/RadmonVLayoutSubject.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonVLayoutSubject.hh,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Subject class of the observer-subjectmodel for the detector
 //                layout
diff --git a/examples/advanced/radiation_monitor/generator/include/RadmonGunMessenger.hh b/examples/advanced/radiation_monitor/generator/include/RadmonGunMessenger.hh
index dfd3d70e8a..8bcce3b8c8 100644
--- a/examples/advanced/radiation_monitor/generator/include/RadmonGunMessenger.hh
+++ b/examples/advanced/radiation_monitor/generator/include/RadmonGunMessenger.hh
@@ -28,7 +28,7 @@
 //    ************************************************
 //
 // $Id: RadmonGunMessenger.hh,v 1.2.2.2 2009/08/11 14:20:35 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //Code developed by:  S.Guatelli, guatelli@ge.infn.it
 //
diff --git a/examples/advanced/radiation_monitor/generator/include/RadmonPrimaryGeneratorAction.hh b/examples/advanced/radiation_monitor/generator/include/RadmonPrimaryGeneratorAction.hh
index ce6f4e6b50..deb676e51f 100644
--- a/examples/advanced/radiation_monitor/generator/include/RadmonPrimaryGeneratorAction.hh
+++ b/examples/advanced/radiation_monitor/generator/include/RadmonPrimaryGeneratorAction.hh
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPrimaryGeneratorAction.hh,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Primary particles generator user action
 //
diff --git a/examples/advanced/radiation_monitor/generator/src/RadmonGeneratorLayout.cc b/examples/advanced/radiation_monitor/generator/src/RadmonGeneratorLayout.cc
index 8018bae236..1082c03477 100644
--- a/examples/advanced/radiation_monitor/generator/src/RadmonGeneratorLayout.cc
+++ b/examples/advanced/radiation_monitor/generator/src/RadmonGeneratorLayout.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonGeneratorLayout.cc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/generator/src/RadmonGunMessenger.cc b/examples/advanced/radiation_monitor/generator/src/RadmonGunMessenger.cc
index b7f023d77e..b8a3e72001 100644
--- a/examples/advanced/radiation_monitor/generator/src/RadmonGunMessenger.cc
+++ b/examples/advanced/radiation_monitor/generator/src/RadmonGunMessenger.cc
@@ -31,7 +31,7 @@
 //
 //
 // $Id: RadmonGunMessenger.cc,v 1.3.2.2 2009/08/11 14:20:35 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 
diff --git a/examples/advanced/radiation_monitor/generator/src/RadmonPrimaryGeneratorAction.cc b/examples/advanced/radiation_monitor/generator/src/RadmonPrimaryGeneratorAction.cc
index 500283a4eb..f8fa12db90 100644
--- a/examples/advanced/radiation_monitor/generator/src/RadmonPrimaryGeneratorAction.cc
+++ b/examples/advanced/radiation_monitor/generator/src/RadmonPrimaryGeneratorAction.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPrimaryGeneratorAction.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.hh b/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.hh
index 43f2d8ad3a..6395a2fc95 100644
--- a/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.hh
+++ b/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.hh
@@ -4,7 +4,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPhysicsParticles.hh,v 1.2.2.2 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 // Description:   Particles production cuts
 //
diff --git a/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.icc b/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.icc
index 7a5d6ee864..9def649dcf 100644
--- a/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.icc
+++ b/examples/advanced/radiation_monitor/physics/include/RadmonPhysicsParticles.icc
@@ -4,7 +4,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPhysicsParticles.icc,v 1.2.2.2 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #ifndef   RADMONPHYSICSPARTICLES_HH
diff --git a/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBertini.cc b/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBertini.cc
index c56de39a94..4b419e740b 100644
--- a/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBertini.cc
+++ b/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBertini.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPhysicsNeutronBertini.cc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #include "RadmonPhysicsNeutronBertini.hh"
diff --git a/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBinary.cc b/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBinary.cc
index a42dbb17c8..acd49f0cb3 100644
--- a/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBinary.cc
+++ b/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsNeutronBinary.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPhysicsNeutronBinary.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #include "RadmonPhysicsNeutronBinary.hh"
diff --git a/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsParticles.cc b/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsParticles.cc
index b92b0658eb..6e6e99fc81 100644
--- a/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsParticles.cc
+++ b/examples/advanced/radiation_monitor/physics/src/RadmonPhysicsParticles.cc
@@ -4,7 +4,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonPhysicsParticles.cc,v 1.3.2.2 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 #include "RadmonPhysicsParticles.hh"
diff --git a/examples/advanced/radiation_monitor/sensitivity/src/RadmonSensitiveDetector.cc b/examples/advanced/radiation_monitor/sensitivity/src/RadmonSensitiveDetector.cc
index f0b17fecb5..96def1bf8d 100644
--- a/examples/advanced/radiation_monitor/sensitivity/src/RadmonSensitiveDetector.cc
+++ b/examples/advanced/radiation_monitor/sensitivity/src/RadmonSensitiveDetector.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonSensitiveDetector.cc,v 1.2.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/radiation_monitor/userActions/src/RadmonEventAction.cc b/examples/advanced/radiation_monitor/userActions/src/RadmonEventAction.cc
index c32d338e46..23083f18af 100644
--- a/examples/advanced/radiation_monitor/userActions/src/RadmonEventAction.cc
+++ b/examples/advanced/radiation_monitor/userActions/src/RadmonEventAction.cc
@@ -29,7 +29,7 @@
 // Main author:   Riccardo Capra <capra@ge.infn.it>
 //
 // Id:            $Id: RadmonEventAction.cc,v 1.1.2.2.4.1 2009/08/11 14:20:35 gcosmo Exp $
-// Tag:           $Name: geant4-09-02-patch-03 $
+// Tag:           $Name: geant4-09-02-patch-04 $
 //
 
 // Include files
diff --git a/examples/advanced/xray_fluorescence/History b/examples/advanced/xray_fluorescence/History
index 2e3cd03e0b..6aef2e7ecd 100644
--- a/examples/advanced/xray_fluorescence/History
+++ b/examples/advanced/xray_fluorescence/History
@@ -1,6 +1,6 @@
 # $Id: History,v 1.6.4.1 2009/08/11 14:05:47 gcosmo Exp $
 # -------------------------------------------------------------------
-# GEANT4 tag $Name: geant4-09-02-patch-03 $
+# GEANT4 tag $Name: geant4-09-02-patch-04 $
 # -------------------------------------------------------------------
 
      =========================================================
diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc
index e3bbf673ee..abcda34b98 100644
--- a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc
+++ b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: AnaEx01AnalysisManager.cc,v 1.16.4.1 2009/08/11 09:50:10 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Guy Barrand 14th Septembre 2000.
diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out
index dff35c7b99..95f45637a8 100644
--- a/examples/extended/biasing/B01/exampleB01.out
+++ b/examples/extended/biasing/B01/exampleB01.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/electromagnetic/TestEm0/TestEm0.out b/examples/extended/electromagnetic/TestEm0/TestEm0.out
index a693c68da9..1a5dd04f87 100644
--- a/examples/extended/electromagnetic/TestEm0/TestEm0.out
+++ b/examples/extended/electromagnetic/TestEm0/TestEm0.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out
index 1d68cd1eae..4dc825628f 100644
--- a/examples/extended/electromagnetic/TestEm1/TestEm1.out
+++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -368,7 +368,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 2000
-  User=7.6s Real=7.65s Sys=0.05s
+  User=7.8s Real=7.87s Sys=0.06s
 
  ======================== run summary ======================
 
@@ -436,7 +436,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 2000
-  User=14.01s Real=14.04s Sys=0.04s
+  User=14.03s Real=14.07s Sys=0.05s
 
  ======================== run summary ======================
 
diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out
index b5a474b48e..8f61d84d94 100644
--- a/examples/extended/electromagnetic/TestEm10/TestEm10.out
+++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -375,7 +375,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 1000
-  User=0.97s Real=0.97s Sys=0s
+  User=0.84s Real=0.84s Sys=0s
  ================== run summary =====================
  end of Run TotNbofEvents = 1000
     mean charged track length   in absorber=44.1863 +- 0.603438  mm  
diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.out b/examples/extended/electromagnetic/TestEm11/TestEm11.out
index 97e020959f..d8136564ac 100644
--- a/examples/extended/electromagnetic/TestEm11/TestEm11.out
+++ b/examples/extended/electromagnetic/TestEm11/TestEm11.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -403,7 +403,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 20000
-  User=12.39s Real=12.85s Sys=0.46s
+  User=12.61s Real=13.1s Sys=0.47s
 
  ======================== run summary ======================
 
diff --git a/examples/extended/electromagnetic/TestEm12/TestEm12.out b/examples/extended/electromagnetic/TestEm12/TestEm12.out
index a8402a4dd9..cf9b1d2494 100644
--- a/examples/extended/electromagnetic/TestEm12/TestEm12.out
+++ b/examples/extended/electromagnetic/TestEm12/TestEm12.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -405,7 +405,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=39.87s Real=40.12s Sys=0.25s
+  User=40.31s Real=40.52s Sys=0.23s
 
  ======================== run summary ======================
 
diff --git a/examples/extended/electromagnetic/TestEm13/TestEm13.out b/examples/extended/electromagnetic/TestEm13/TestEm13.out
index 6d6b10bafd..30fb08cf20 100644
--- a/examples/extended/electromagnetic/TestEm13/TestEm13.out
+++ b/examples/extended/electromagnetic/TestEm13/TestEm13.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -291,7 +291,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=0.91s Real=0.92s Sys=0s
+  User=0.94s Real=0.93s Sys=0s
 
  The run consists of 100000 gamma of 100 keV through 1 cm  of Water (density: 1 g/cm3 )
 
@@ -360,7 +360,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=0.91s Real=0.9s Sys=0s
+  User=1.02s Real=1.03s Sys=0s
 
  The run consists of 100000 e- of 100 MeV through 1 cm  of Water (density: 1 g/cm3 )
 
diff --git a/examples/extended/electromagnetic/TestEm14/TestEm14.out b/examples/extended/electromagnetic/TestEm14/TestEm14.out
index 3d34d49a50..851485f93e 100644
--- a/examples/extended/electromagnetic/TestEm14/TestEm14.out
+++ b/examples/extended/electromagnetic/TestEm14/TestEm14.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -363,7 +363,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=1.1s Real=1.1s Sys=0s
+  User=1.2s Real=1.2s Sys=0s
 
  The run consists of 100000 e- of 100 MeV through 100 m   of Water (density: 1 g/cm3 )
 
diff --git a/examples/extended/electromagnetic/TestEm15/TestEm15.out b/examples/extended/electromagnetic/TestEm15/TestEm15.out
index 30ddd21c77..b76e2bfd22 100644
--- a/examples/extended/electromagnetic/TestEm15/TestEm15.out
+++ b/examples/extended/electromagnetic/TestEm15/TestEm15.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/electromagnetic/TestEm16/TestEm16.out b/examples/extended/electromagnetic/TestEm16/TestEm16.out
index 11c4451e97..98cde2fcfc 100644
--- a/examples/extended/electromagnetic/TestEm16/TestEm16.out
+++ b/examples/extended/electromagnetic/TestEm16/TestEm16.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -246,7 +246,7 @@ G4SynchrotronRadiation::GetRandomEnergySR :
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.58s Real=0.58s Sys=0.01s
+  User=0.68s Real=0.68s Sys=0s
 Summary for synchrotron radiation :
   Number of photons = 64554
   Emean             = 20.24 +/- 0.1449 keV
diff --git a/examples/extended/electromagnetic/TestEm17/TestEm17.out b/examples/extended/electromagnetic/TestEm17/TestEm17.out
index e67e598798..101021b9ec 100644
--- a/examples/extended/electromagnetic/TestEm17/TestEm17.out
+++ b/examples/extended/electromagnetic/TestEm17/TestEm17.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -253,7 +253,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=4.25s Real=4.49s Sys=0.24s
+  User=4.51s Real=4.8s Sys=0.28s
 
  The run consists of 10000 mu+ of 10 TeV through 1 m   of Iron (density: 7.9 g/cm3 )
 
@@ -317,7 +317,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=4.02s Real=4.25s Sys=0.23s
+  User=4.21s Real=4.45s Sys=0.25s
 
  The run consists of 10000 pi+ of 10 TeV through 1 m   of Iron (density: 7.9 g/cm3 )
 
@@ -380,7 +380,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=3.63s Real=3.85s Sys=0.22s
+  User=4.11s Real=4.36s Sys=0.22s
 
  The run consists of 10000 proton of 10 TeV through 1 m   of Iron (density: 7.9 g/cm3 )
 
diff --git a/examples/extended/electromagnetic/TestEm18/TestEm18.out b/examples/extended/electromagnetic/TestEm18/TestEm18.out
index 2e589b6658..6f67b4efe1 100644
--- a/examples/extended/electromagnetic/TestEm18/TestEm18.out
+++ b/examples/extended/electromagnetic/TestEm18/TestEm18.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -289,7 +289,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=1.91s Real=1.92s Sys=0s
+  User=1.9s Real=1.91s Sys=0s
 
  ======================== run summary ======================
 
diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out
index d05293335f..cdf217937d 100644
--- a/examples/extended/electromagnetic/TestEm2/TestEm2.out
+++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -321,7 +321,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=6.94s Real=6.94s Sys=0s
+  User=7.03s Real=7.03s Sys=0.01s
 
  SUMMARY 
 
diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out
index fa1fbd06a4..6ae215228a 100644
--- a/examples/extended/electromagnetic/TestEm3/TestEm3.out
+++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -352,7 +352,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=4.96s Real=4.97s Sys=0.01s
+  User=5.08s Real=5.09s Sys=0s
 
 ------------------------------------------------------------
       material   Edep       RMS         sqrt(E0(GeV))*rmsE/Emean     total tracklen 
diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out
index 8ab72516da..330340adac 100644
--- a/examples/extended/electromagnetic/TestEm4/TestEm4.out
+++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -125,7 +125,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=3.36s Real=5.59s Sys=2.23s
+  User=3.38s Real=5.59s Sys=2.23s
 
 --------- Ranecu engine status ---------
  Initial seed (index) = 0
diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out
index 17e981ad34..d8e69f4132 100644
--- a/examples/extended/electromagnetic/TestEm5/TestEm5.out
+++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -342,7 +342,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=4.22s Real=6.46s Sys=2.23s
+  User=4.32s Real=6.62s Sys=2.29s
 
  ======================== run summary ======================
 
diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out
index 4de0d86fd2..88adee1c34 100644
--- a/examples/extended/electromagnetic/TestEm6/TestEm6.out
+++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -48915,7 +48915,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 5
-  User=0.73s Real=1.55s Sys=0.05s
+  User=0.74s Real=1.47s Sys=0.05s
 
 --------- Ranecu engine status ---------
  Initial seed (index) = 0
@@ -50030,7 +50030,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 5
-  User=0.02s Real=0.05s Sys=0s
+  User=0.03s Real=0.06s Sys=0s
 
 --------- Ranecu engine status ---------
  Initial seed (index) = 0
@@ -50196,7 +50196,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 2
-  User=0.01s Real=0.01s Sys=0s
+  User=0s Real=0.01s Sys=0s
 
 --------- Ranecu engine status ---------
  Initial seed (index) = 0
diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out
index 48b6ab2c80..380f37f165 100644
--- a/examples/extended/electromagnetic/TestEm7/TestEm7.out
+++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -337,7 +337,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=13.98s Real=14.24s Sys=0.24s
+  User=14.25s Real=14.49s Sys=0.25s
 
  The run consists of 10000 proton of 160 MeV through 20 cm  of G4_WATER (density: 1 g/cm3 )
 
@@ -396,7 +396,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 1000
-  User=4.96s Real=4.99s Sys=0.02s
+  User=5.06s Real=5.09s Sys=0.02s
 
  The run consists of 1000 C12[0.0] of 3.5 GeV through 20 cm  of G4_WATER (density: 1 g/cm3 )
 
@@ -725,7 +725,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 1000
-  User=17.63s Real=17.64s Sys=0.03s
+  User=17.65s Real=17.69s Sys=0.05s
 
  The run consists of 1000 kaon+ of 100 MeV through 20 cm  of G4_Cu (density: 8.96 g/cm3 )
 
@@ -1059,7 +1059,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.01s Real=0s Sys=0s
+  User=0s Real=0s Sys=0s
 
  The run consists of 100 alpha of 265 eV  through 20 cm  of TechVacuum (density: 0.01 kg/m3 )
 
@@ -1393,7 +1393,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.03s Real=0.03s Sys=0s
+  User=0.02s Real=0.03s Sys=0.01s
 
  The run consists of 100 alpha of 100 MeV through 20 cm  of G4_WATER (density: 1 g/cm3 )
 
diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out
index d2cd8551e7..6624c94523 100644
--- a/examples/extended/electromagnetic/TestEm8/TestEm8.out
+++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.out b/examples/extended/electromagnetic/TestEm9/TestEm9.out
index fe3eaba01e..8ae6c58482 100644
--- a/examples/extended/electromagnetic/TestEm9/TestEm9.out
+++ b/examples/extended/electromagnetic/TestEm9/TestEm9.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -326,7 +326,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=2.23s Real=2.23s Sys=0s
+  User=2.27s Real=2.27s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 =================================================================
diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out
index c3a21c9131..b5e3f6343b 100644
--- a/examples/extended/field/field01/field01.out
+++ b/examples/extended/field/field01/field01.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out
index 9ffadcb317..12f2f6451b 100644
--- a/examples/extended/field/field02/field02.out
+++ b/examples/extended/field/field02/field02.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -8421,7 +8421,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng  Ne
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.11s Real=0.12s Sys=0.01s
+  User=0.1s Real=0.11s Sys=0.01s
 ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer.
 Graphics systems deleted.
 Visualization Manager deleting...
diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out
index 0aeb2f6390..9a577da8bb 100644
--- a/examples/extended/field/field03/field03.out
+++ b/examples/extended/field/field03/field03.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -294,7 +294,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 1
-  User=0s Real=0.01s Sys=0s
+  User=0s Real=0s Sys=0s
 ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer.
 
 ========= Table of registered couples ==============================
@@ -319,7 +319,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.02s Real=0.02s Sys=0s
+  User=0.03s Real=0.02s Sys=0s
 ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer.
 Set field value to (0,0,1000) Gauss 
 
@@ -343,7 +343,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=0s Real=0s Sys=0s
+  User=0.01s Real=0.01s Sys=0s
 ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer.
 Graphics systems deleted.
 Visualization Manager deleting...
diff --git a/examples/extended/field/field04/field04.cc b/examples/extended/field/field04/field04.cc
index 275b116b52..2f75949058 100644
--- a/examples/extended/field/field04/field04.cc
+++ b/examples/extended/field/field04/field04.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: field04.cc,v 1.8.2.1 2009/08/11 09:47:40 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/examples/extended/field/field04/field04.out b/examples/extended/field/field04/field04.out
index c79914d361..fe53752cfb 100644
--- a/examples/extended/field/field04/field04.out
+++ b/examples/extended/field/field04/field04.out
@@ -9,7 +9,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out
index 9f49b0c188..e69de29bb2 100644
--- a/examples/extended/g3tog4/clGeometry/clGeometry.out
+++ b/examples/extended/g3tog4/clGeometry/clGeometry.out
@@ -1,639 +0,0 @@
-
-        ############################################
-        !!! WARNING - FPE detection is activated !!!
-        ############################################
-
-*************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
-                      Copyright : Geant4 Collaboration
-                      Reference : NIM A 506 (2003), 250-303
-                            WWW : http://cern.ch/geant4
-*************************************************************
-
-Instantiated G3toG4DetectorConstruction using call list file "../data/testmodel.dat"
-G4VUserPhysicsList::SetVerboseLevel  : Verbose level is set to 2
-Visualization Manager instantiating...
-Visualization Manager initialising...
-Registering graphics systems...
-
-You have successfully registered the following graphics systems.
-Current available graphics systems are:
-  ASCIITree (ATree)
-  DAWNFILE (DAWNFILE)
-  G4HepRep (HepRepXML)
-  G4HepRepFile (HepRepFile)
-  RayTracer (RayTracer)
-  VRML1FILE (VRML1FILE)
-  VRML2FILE (VRML2FILE)
-  OpenGLImmediateX (OGLIX)
-  OpenGLStoredX (OGLSX)
-
-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
-
-/run/verbose 1
-/tracking/verbose 1
-/tracking/storeTrajectory 1
-/run/initialize
-Instantiated unit rotation matrix irot=0
-Reading the call List file ../data/testmodel.dat...
-G4ggclos: setting top-level VolTableEntry
-Dump of VTD - 26 entries:
-Instantiated 26 volume table entries 
-                      15 positions.
-G3VolTable element   0 name BOX1 has 1 daughters
-G3VolTable element   1 name BOX1_1 has 1 daughters
-G3VolTable element   2 name BOX1_2 has 1 daughters
-G3VolTable element   3 name BOX1_3 has 1 daughters
-G3VolTable element   4 name BOX1_4 has 1 daughters
-G3VolTable element   5 name BOX2 has 1 daughters
-G3VolTable element   6 name BOX2_1 has 1 daughters
-G3VolTable element   7 name BOX2_2 has 1 daughters
-G3VolTable element   8 name BOX2_3 has 1 daughters
-G3VolTable element   9 name BOX2_4 has 1 daughters
-G3VolTable element  10 name BOX2_5 has 1 daughters
-G3VolTable element  11 name BXD1 has 0 daughters
-G3VolTable element  12 name BXD1_1 has 0 daughters
-G3VolTable element  13 name BXD1_2 has 0 daughters
-G3VolTable element  14 name BXD1_2_ENV has 1 daughters
-G3VolTable element  15 name BXD1_3 has 0 daughters
-G3VolTable element  16 name BXD1_3_ENV has 1 daughters
-G3VolTable element  17 name BXD1_4 has 0 daughters
-G3VolTable element  18 name BXD1_4_ENV has 1 daughters
-G3VolTable element  19 name BXD1_5 has 0 daughters
-G3VolTable element  20 name BXD1_5_ENV has 1 daughters
-G3VolTable element  21 name HALL has 6 daughters
-G3VolTable element  22 name TBD1 has 0 daughters
-G3VolTable element  23 name TBD2 has 0 daughters
-G3VolTable element  24 name TUB1 has 1 daughters
-G3VolTable element  25 name TUB2 has 1 daughters
-Call List file read completed. Build geometry
-G3toG4 top level volume is HALL
-Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1)
-  linestyle: solid, line width: 1
-  drawing style: not forced, auxiliary edge visibility: not forced
-  line segments per circle: not forced.
-  time range: (-1.79769e+308,1.79769e+308)
-  G4AttValue pointer is zero, G4AttDef pointer is zero
-Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1)
-  linestyle: solid, line width: 1
-  drawing style: not forced, auxiliary edge visibility: not forced
-  line segments per circle: not forced.
-  time range: (-1.79769e+308,1.79769e+308)
-  G4AttValue pointer is zero, G4AttDef pointer is zero
-G4VUserPhysicsList::Construct()
-Construct processes 
-G3toG4PhysicsList::SetCuts:CutLength : 2 mm 
-/control/execute clGeometry.in
-/run/verbose 2
-/process/eLoss/verbose 1
-/gun/position 0. -1.5 0. mm
-/gun/direction 0. 1. 0.
-/gun/energy 1 GeV
-/gun/particle mu-
-/run/beamOn 1
-
-phot:   for  gamma    SubType= 12
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-       PhotoElectric :     Emin=          0 eV         Emax=   100 TeV
-
-compt:   for  gamma    SubType= 13
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-       Klein-Nishina :     Emin=          0 eV         Emax=   100 TeV
-
-conv:   for  gamma    SubType= 14
-      Lambda tables from 1.022 MeV to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-       Bethe-Heitler :     Emin=          0 eV         Emax=   100 TeV
-
-msc:   for e-    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-eIoni:   for  e-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-eBrem:   for  e-    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-eIoni:   for  e+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-eBrem:   for  e+    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-annihil:   for  e+    SubType= 5
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-            eplus2gg :     Emin=          0 eV         Emax=   100 TeV
-
-msc:   for proton    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-hIoni:   for  proton    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   2 MeV
-          BetheBloch :     Emin=          2 MeV        Emax=   100 TeV
-
-hIoni:   for  anti_proton    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   2 MeV
-          BetheBloch :     Emin=          2 MeV        Emax=   100 TeV
-
-hIoni:   for  kaon+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   1.05231 MeV
-          BetheBloch :     Emin=    1.05231 MeV        Emax=   100 TeV
-
-hIoni:   for  kaon-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   1.05231 MeV
-          BetheBloch :     Emin=    1.05231 MeV        Emax=   100 TeV
-
-msc:   for mu+    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-muIoni:   for  mu+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-muBrems:   for  mu+    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-              MuBrem :     Emin=          0 eV         Emax=   100 TeV
-
-muPairProd:   for  mu+    SubType= 4
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-          muPairProd :     Emin=          0 eV         Emax=   100 TeV
-
-muIoni:   for  mu-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-muBrems:   for  mu-    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-              MuBrem :     Emin=          0 eV         Emax=   100 TeV
-
-muPairProd:   for  mu-    SubType= 4
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-          muPairProd :     Emin=          0 eV         Emax=   100 TeV
-
-hIoni:   for  pi+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   297.504 keV
-          BetheBloch :     Emin=    297.504 keV        Emax=   100 TeV
-
-msc:   for pi-    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-hIoni:   for  pi-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   297.504 keV
-          BetheBloch :     Emin=    297.504 keV        Emax=   100 TeV
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-Start closing geometry.
-G4GeometryManager::ReportVoxelStats -- Voxel Statistics
-
-    Total memory consumed for geometry optimisation:   5 kByte
-    Total CPU time elapsed for geometry optimisation: 0 seconds
-
-    Voxelisation: top CPU users:
-    Percent   Total CPU    System CPU       Memory  Volume
-    -------   ----------   ----------     --------  ----------
-       0.00         0.00         0.00            1k HALL
-       0.00         0.00         0.00            3k TUB1
-       0.00         0.00         0.00            0k TUB2
-       0.00         0.00         0.00            0k BXD1_2_ENV
-       0.00         0.00         0.00            0k BXD1_3_ENV
-       0.00         0.00         0.00            0k BXD1_4_ENV
-       0.00         0.00         0.00            0k BXD1_5_ENV
-
-    Voxelisation: top memory users:
-    Percent     Memory      Heads    Nodes   Pointers    Total CPU    Volume
-    -------   --------     ------   ------   --------   ----------    ----------
-      60.85          3k         1       60         60         0.00    TUB1
-      11.91          0k         2        8         18         0.00    HALL
-       6.24          0k         1        5          5         0.00    TUB2
-       5.25          0k         1        4          4         0.00    BXD1_2_ENV
-       5.25          0k         1        4          4         0.00    BXD1_3_ENV
-       5.25          0k         1        4          4         0.00    BXD1_4_ENV
-       5.25          0k         1        4          4         0.00    BXD1_5_ENV
-### Run 0 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = mu-,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0     -1.5        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03 1.12e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-G4VisManager: Using G4TrajectoryDrawByCharge as default trajectory model.
-See commands in /vis/modeling/trajectories/ for other options.
-Trajectory drawing configuration will be based on imode value of 50
-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.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/particle mu+
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 1 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = mu+,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0     -1.5        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03 1.12e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/particle e-
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 2 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = e-,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0     -1.5        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03 1.75e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/particle e+
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 3 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = e+,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0     -1.5        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03 1.75e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/position 0. 1.5 0. mm
-/gun/direction 1. 0. 0.
-/gun/energy 1 GeV
-/gun/particle mu-
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 4 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (1,0,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = mu-,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      1.5        0     1e+03        0        0         0        HALL initStep
-    1    4e+03      1.5        0     1e+03 1.12e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/particle mu+
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 5 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (1,0,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = mu+,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      1.5        0     1e+03        0        0         0        HALL initStep
-    1    4e+03      1.5        0     1e+03 1.12e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/particle e-
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 6 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (1,0,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = e-,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      1.5        0     1e+03        0        0         0        HALL initStep
-    1    4e+03      1.5        0     1e+03 1.75e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-/gun/particle e+
-/run/beamOn 1
-
-Region <DefaultRegionForTheWorld> -- appears in <HALL> world volume
- Root logical volume(s) : HALL 
- Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
- Materials : VACUUM               
- Production cuts :  gamma 2 mm     e- 2 mm     e+ 2 mm 
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 7 start.
-/vis~/clear/view
-/vis~/draw/current
-Start Run processing.
->>>>>>>> Primary direction: (1,0,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = e+,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      1.5        0     1e+03        0        0         0        HALL initStep
-    1    4e+03      1.5        0     1e+03 1.75e-22    4e+03     4e+03  OutOfWorld Transportation
->>> Event 0
-    1 trajectories stored in this event.
-Run terminated.
-Run Summary
-  Number of events processed : 1
-  User=0s Real=0s Sys=0s
-Graphics systems deleted.
-Visualization Manager deleting...
-UserDetectorConstruction deleted.
-UserPhysicsList deleted.
-UserRunAction deleted.
-UserPrimaryGenerator deleted.
-G4 kernel has come to Quit state.
-EventManager deleted.
-UImanager deleted.
-Units table cleared.
-StateManager deleted.
-RunManagerKernel is deleted.
-RunManager is deleting.
-
diff --git a/examples/extended/g3tog4/cltog4/cltog4.out b/examples/extended/g3tog4/cltog4/cltog4.out
index d1b33f1f34..e69de29bb2 100644
--- a/examples/extended/g3tog4/cltog4/cltog4.out
+++ b/examples/extended/g3tog4/cltog4/cltog4.out
@@ -1,352 +0,0 @@
-
-        ############################################
-        !!! WARNING - FPE detection is activated !!!
-        ############################################
-
-*************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
-                      Copyright : Geant4 Collaboration
-                      Reference : NIM A 506 (2003), 250-303
-                            WWW : http://cern.ch/geant4
-*************************************************************
-
-Instantiated G3toG4DetectorConstruction using call list file "../data/testmodel.dat"
-/run/verbose 1
-/tracking/verbose 1
-/tracking/storeTrajectory 1
-/run/initialize
-Instantiated unit rotation matrix irot=0
-Reading the call List file ../data/testmodel.dat...
-G4ggclos: setting top-level VolTableEntry
-Dump of VTD - 26 entries:
-Instantiated 26 volume table entries 
-                      15 positions.
-G3VolTable element   0 name BOX1 has 1 daughters
-G3VolTable element   1 name BOX1_1 has 1 daughters
-G3VolTable element   2 name BOX1_2 has 1 daughters
-G3VolTable element   3 name BOX1_3 has 1 daughters
-G3VolTable element   4 name BOX1_4 has 1 daughters
-G3VolTable element   5 name BOX2 has 1 daughters
-G3VolTable element   6 name BOX2_1 has 1 daughters
-G3VolTable element   7 name BOX2_2 has 1 daughters
-G3VolTable element   8 name BOX2_3 has 1 daughters
-G3VolTable element   9 name BOX2_4 has 1 daughters
-G3VolTable element  10 name BOX2_5 has 1 daughters
-G3VolTable element  11 name BXD1 has 0 daughters
-G3VolTable element  12 name BXD1_1 has 0 daughters
-G3VolTable element  13 name BXD1_2 has 0 daughters
-G3VolTable element  14 name BXD1_2_ENV has 1 daughters
-G3VolTable element  15 name BXD1_3 has 0 daughters
-G3VolTable element  16 name BXD1_3_ENV has 1 daughters
-G3VolTable element  17 name BXD1_4 has 0 daughters
-G3VolTable element  18 name BXD1_4_ENV has 1 daughters
-G3VolTable element  19 name BXD1_5 has 0 daughters
-G3VolTable element  20 name BXD1_5_ENV has 1 daughters
-G3VolTable element  21 name HALL has 6 daughters
-G3VolTable element  22 name TBD1 has 0 daughters
-G3VolTable element  23 name TBD2 has 0 daughters
-G3VolTable element  24 name TUB1 has 1 daughters
-G3VolTable element  25 name TUB2 has 1 daughters
-Call List file read completed. Build geometry
-G3toG4 top level volume is HALL
-Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1)
-  linestyle: solid, line width: 1
-  drawing style: not forced, auxiliary edge visibility: not forced
-  line segments per circle: not forced.
-  time range: (-1.79769e+308,1.79769e+308)
-  G4AttValue pointer is zero, G4AttDef pointer is zero
-Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1)
-  linestyle: solid, line width: 1
-  drawing style: not forced, auxiliary edge visibility: not forced
-  line segments per circle: not forced.
-  time range: (-1.79769e+308,1.79769e+308)
-  G4AttValue pointer is zero, G4AttDef pointer is zero
-G3toG4PhysicsList::SetCuts:CutLength : 2 mm 
-/control/execute cltog4.in
-/control/verbose 1
-/tracking/verbose 1
-/run/initialize
-/gun/position 0. -1.5 0.
-/gun/direction 0. 1. 0.
-/gun/energy 1 GeV
-/gun/particle chargedgeantino
-/run/beamOn 10
-
-phot:   for  gamma    SubType= 12
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-       PhotoElectric :     Emin=          0 eV         Emax=   100 TeV
-
-compt:   for  gamma    SubType= 13
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-       Klein-Nishina :     Emin=          0 eV         Emax=   100 TeV
-
-conv:   for  gamma    SubType= 14
-      Lambda tables from 1.022 MeV to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-       Bethe-Heitler :     Emin=          0 eV         Emax=   100 TeV
-
-msc:   for e-    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-eIoni:   for  e-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-eBrem:   for  e-    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-eIoni:   for  e+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-eBrem:   for  e+    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-annihil:   for  e+    SubType= 5
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-            eplus2gg :     Emin=          0 eV         Emax=   100 TeV
-
-msc:   for proton    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-hIoni:   for  proton    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   2 MeV
-          BetheBloch :     Emin=          2 MeV        Emax=   100 TeV
-
-hIoni:   for  anti_proton    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   2 MeV
-          BetheBloch :     Emin=          2 MeV        Emax=   100 TeV
-
-hIoni:   for  kaon+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   1.05231 MeV
-          BetheBloch :     Emin=    1.05231 MeV        Emax=   100 TeV
-
-hIoni:   for  kaon-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   1.05231 MeV
-          BetheBloch :     Emin=    1.05231 MeV        Emax=   100 TeV
-
-msc:   for mu+    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-muIoni:   for  mu+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-muBrems:   for  mu+    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-              MuBrem :     Emin=          0 eV         Emax=   100 TeV
-
-muPairProd:   for  mu+    SubType= 4
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-          muPairProd :     Emin=          0 eV         Emax=   100 TeV
-
-muIoni:   for  mu-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 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=   100 TeV
-
-muBrems:   for  mu-    SubType= 3
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-              MuBrem :     Emin=          0 eV         Emax=   100 TeV
-
-muPairProd:   for  mu-    SubType= 4
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-          muPairProd :     Emin=          0 eV         Emax=   100 TeV
-
-hIoni:   for  pi+    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   297.504 keV
-          BetheBloch :     Emin=    297.504 keV        Emax=   100 TeV
-
-msc:   for pi-    SubType= 10
-      Lambda tables from 100 eV  to 100 TeV in 84 bins, spline: 1
-      RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-         UrbanMscUni :     Emin=          0 eV         Emax=   100 TeV
-
-hIoni:   for  pi-    SubType= 2
-      dE/dx and range tables from 100 eV  to 100 TeV in 84 bins
-      Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
-      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
-      NuclearStopping= 0
-      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
-               Bragg :     Emin=          0 eV         Emax=   297.504 keV
-          BetheBloch :     Emin=    297.504 keV        Emax=   100 TeV
-
-========= Table of registered couples ==============================
-
-Index : 0     used in the geometry : Yes     recalculation needed : No 
- Material : VACUUM              
- Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
- Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
- Region(s) which use this couple : 
-    DefaultRegionForTheWorld
-
-====================================================================
-
-### Run 0 start.
-Start Run processing.
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
->>>>>>>> Primary direction: (0,1,0)
-
-*********************************************************************************************************
-* G4Track Information:   Particle = chargedgeantino,   Track ID = 1,   Parent ID = 0
-*********************************************************************************************************
-
-Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
-    0        0      -15        0     1e+03        0        0         0        HALL initStep
-    1        0    4e+03        0     1e+03        0 4.02e+03  4.02e+03  OutOfWorld Transportation
-Run terminated.
-Run Summary
-  Number of events processed : 10
-  User=0s Real=0s Sys=0s
-G4 kernel has come to Quit state.
-
diff --git a/examples/extended/hadronic/Hadr01/hadr01.out b/examples/extended/hadronic/Hadr01/hadr01.out
index 0138f5d46a..4a4a2b9cdf 100644
--- a/examples/extended/hadronic/Hadr01/hadr01.out
+++ b/examples/extended/hadronic/Hadr01/hadr01.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh b/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh
index 218889b38c..9f7c1e6a3e 100644
--- a/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh
+++ b/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: DicomNestedPhantomParameterisation.hh,v 1.2.4.1 2009/03/03 13:43:58 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // --------------------------------------------------------------------
 #ifndef DICOMNESTEDPARAMETERISATION_HH
diff --git a/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc b/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc
index 3637a134ac..787d7ee44c 100644
--- a/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc
+++ b/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: DicomNestedPhantomParameterisation.cc,v 1.4.2.1 2009/03/03 13:43:58 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // --------------------------------------------------------------------
 #include "DicomNestedPhantomParameterisation.hh"
diff --git a/examples/extended/medical/DICOM/src/G4PSDoseDeposit_RegNav.cc b/examples/extended/medical/DICOM/src/G4PSDoseDeposit_RegNav.cc
index a8ad60fbf1..f8c2df3a44 100644
--- a/examples/extended/medical/DICOM/src/G4PSDoseDeposit_RegNav.cc
+++ b/examples/extended/medical/DICOM/src/G4PSDoseDeposit_RegNav.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSDoseDeposit_RegNav.cc,v 1.1.2.1 2009/03/03 13:43:58 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSDoseDeposit_RegNav
 #include "G4PSDoseDeposit_RegNav.hh"
diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.out b/examples/extended/medical/GammaTherapy/GammaTherapy.out
index 2e42f8212a..c566780ab5 100644
--- a/examples/extended/medical/GammaTherapy/GammaTherapy.out
+++ b/examples/extended/medical/GammaTherapy/GammaTherapy.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -181,7 +181,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=8.03s Real=8.03s Sys=0s
+  User=8.26s Real=8.27s Sys=0s
 RunAction: End of run actions are started
 Histo: End of run actions are started
 ========================================================
diff --git a/examples/extended/medical/fanoCavity/fanoCavity.out b/examples/extended/medical/fanoCavity/fanoCavity.out
index 66acfb613f..0827e10346 100644
--- a/examples/extended/medical/fanoCavity/fanoCavity.out
+++ b/examples/extended/medical/fanoCavity/fanoCavity.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -155,7 +155,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 4000
-  User=29.05s Real=29.05s Sys=0s
+  User=30.31s Real=30.32s Sys=0s
 
  ======================== run summary ======================
 
diff --git a/examples/extended/medical/fanoCavity2/fanoCavity2.out b/examples/extended/medical/fanoCavity2/fanoCavity2.out
index 66739ef294..9cb8988100 100644
--- a/examples/extended/medical/fanoCavity2/fanoCavity2.out
+++ b/examples/extended/medical/fanoCavity2/fanoCavity2.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -166,7 +166,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 40000
-  User=8.6s Real=8.6s Sys=0s
+  User=8.5s Real=8.5s Sys=0.01s
 
  Process calls frequency --->  msc= 540054  eIoni= 617707  Transportation= 22373
 
diff --git a/examples/extended/optical/LXe/LXe.out b/examples/extended/optical/LXe/LXe.out
index bf6e540d46..a963d842ab 100644
--- a/examples/extended/optical/LXe/LXe.out
+++ b/examples/extended/optical/LXe/LXe.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/extended/persistency/gdml/G02/geotest.cc b/examples/extended/persistency/gdml/G02/geotest.cc
index 7273ac61c5..9e39f004e1 100644
--- a/examples/extended/persistency/gdml/G02/geotest.cc
+++ b/examples/extended/persistency/gdml/G02/geotest.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: geotest.cc,v 1.1.2.1 2009/03/03 13:50:54 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/examples/extended/persistency/gdml/G02/src/DetectorConstruction.cc b/examples/extended/persistency/gdml/G02/src/DetectorConstruction.cc
index 6cf21d05f1..cf12ababc9 100644
--- a/examples/extended/persistency/gdml/G02/src/DetectorConstruction.cc
+++ b/examples/extended/persistency/gdml/G02/src/DetectorConstruction.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: DetectorConstruction.cc,v 1.4.2.1 2009/03/03 13:50:54 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Class DetectorConstruction implementation
 //
diff --git a/examples/extended/polarisation/Pol01/pol01.out b/examples/extended/polarisation/Pol01/pol01.out
index 3505080cf8..2c387f513f 100644
--- a/examples/extended/polarisation/Pol01/pol01.out
+++ b/examples/extended/polarisation/Pol01/pol01.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -151,7 +151,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=0.23s Real=0.23s Sys=0s
+  User=0.27s Real=0.26s Sys=0s
 
  The run consists of 10000 gamma of 10 MeV through 1.75 mm  of G4_Fe (density: 7.874 g/cm3 )
 
diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out
index 6539c5f014..278e8cfc9c 100644
--- a/examples/novice/N01/exampleN01.out
+++ b/examples/novice/N01/exampleN01.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out
index 5b006947dd..71038cce49 100644
--- a/examples/novice/N02/exampleN02.out
+++ b/examples/novice/N02/exampleN02.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out
index ca53cd4ae7..558d89273e 100644
--- a/examples/novice/N03/exampleN03.out
+++ b/examples/novice/N03/exampleN03.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out
index 323ef065fb..3f4fbeeffd 100644
--- a/examples/novice/N04/exampleN04.out
+++ b/examples/novice/N04/exampleN04.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -366,6 +366,6 @@ Stage 1->2 : 1 isolated muon found.
 Run terminated.
 Run Summary
   Number of events processed : 3
-  User=2.57s Real=2.59s Sys=0s
+  User=2.49s Real=2.5s Sys=0s
 G4 kernel has come to Quit state.
 
diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out
index e9ad3eb432..5bf9b2f57a 100644
--- a/examples/novice/N05/exampleN05.out
+++ b/examples/novice/N05/exampleN05.out
@@ -5,7 +5,7 @@ RunManager construction starting....
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out
index 200f7b2513..b554b39e6f 100644
--- a/examples/novice/N06/exampleN06.out
+++ b/examples/novice/N06/exampleN06.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -1364,7 +1364,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
     1     -5 m   -2.38 m   -4.99 m     511 keV     0 eV   7.46 m    7.46 m          Tank  Transportation
     2    -10 m   -4.77 m   -9.99 m     511 keV     0 eV   7.46 m    14.9 m    OutOfWorld  Transportation
 Number of optical photons produces in this event : 12
-number of event = 1 User=0s Real=0s Sys=0s
+number of event = 1 User=0s Real=0.01s Sys=0s
 Graphics systems deleted.
 Visualization Manager deleting...
 
diff --git a/examples/novice/N07/exampleN07.out b/examples/novice/N07/exampleN07.out
index d57793f99e..f3d63d1bfc 100644
--- a/examples/novice/N07/exampleN07.out
+++ b/examples/novice/N07/exampleN07.out
@@ -4,7 +4,7 @@
         ############################################
 
 *************************************************************
- Geant4 version Name: geant4-09-02-patch-03-ref    (29-January-2010)
+ Geant4 version Name: geant4-09-02-patch-04-ref    (16-September-2010)
                       Copyright : Geant4 Collaboration
                       Reference : NIM A 506 (2003), 250-303
                             WWW : http://cern.ch/geant4
@@ -391,7 +391,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=3.88s Real=4.16s Sys=0.26s
+  User=3.77s Real=4.03s Sys=0.26s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -518,22 +518,22 @@ layer   eDep/evt  nGamma/evt nElec/evt  nPosi/evt  stpLen/evt nStep/evt
       18          0          0          0          0          0          0
       19          0          0          0          0          0          0
 ############################################################
-CPU Time spent by each region0x2a98fc0188
+CPU Time spent by each region0x2a98fbf188
 Region <DefaultRegionForTheWorld>
  All particles : User=0  Real=0  Sys=0
  e+ / e-       : User=0  Real=0  Sys=0
 
 Region <Calor-A>
- All particles : User=0.48  Real=0.54  Sys=0.01
- e+ / e-       : User=0.37  Real=0.34  Sys=0.02
+ All particles : User=0.52  Real=0.52  Sys=0.03
+ e+ / e-       : User=0.37  Real=0.36  Sys=0
 
 Region <Calor-B>
- All particles : User=0.99  Real=1.03  Sys=0.06
- e+ / e-       : User=0.65  Real=0.72  Sys=0.05
+ All particles : User=0.99  Real=1.1  Sys=0.08
+ e+ / e-       : User=0.66  Real=0.81  Sys=0.06
 
 Region <Calor-C>
- All particles : User=1.45  Real=1.45  Sys=0.07
- e+ / e-       : User=1.06  Real=1.08  Sys=0.08
+ All particles : User=1.38  Real=1.31  Sys=0.08
+ e+ / e-       : User=0.93  Real=0.95  Sys=0.02
 
 /run/dumpCouples
 
@@ -849,7 +849,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=3.8s Real=4.06s Sys=0.27s
+  User=3.81s Real=4.07s Sys=0.27s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -976,22 +976,22 @@ layer   eDep/evt  nGamma/evt nElec/evt  nPosi/evt  stpLen/evt nStep/evt
       18          0          0          0          0          0          0
       19          0          0          0          0          0          0
 ############################################################
-CPU Time spent by each region0x2a98fc0188
+CPU Time spent by each region0x2a98fbf188
 Region <DefaultRegionForTheWorld>
  All particles : User=0  Real=0  Sys=0
  e+ / e-       : User=0  Real=0  Sys=0
 
 Region <Calor-A>
- All particles : User=0.79  Real=0.91  Sys=0.05
- e+ / e-       : User=0.58  Real=0.65  Sys=0.03
+ All particles : User=0.87  Real=0.88  Sys=0.03
+ e+ / e-       : User=0.6  Real=0.63  Sys=0.05
 
 Region <Calor-B>
- All particles : User=1.56  Real=1.74  Sys=0.06
- e+ / e-       : User=1.13  Real=1.3  Sys=0.05
+ All particles : User=1.59  Real=1.7  Sys=0.05
+ e+ / e-       : User=1.19  Real=1.29  Sys=0.07
 
 Region <Calor-C>
- All particles : User=0.39  Real=0.33  Sys=0.04
- e+ / e-       : User=0.23  Real=0.22  Sys=0.02
+ All particles : User=0.4  Real=0.3  Sys=0.02
+ e+ / e-       : User=0.3  Real=0.16  Sys=0.01
 
 /run/dumpCouples
 
@@ -1336,7 +1336,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=0.8s Real=0.86s Sys=0.06s
+  User=0.81s Real=0.87s Sys=0.05s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -1463,22 +1463,22 @@ layer   eDep/evt  nGamma/evt nElec/evt  nPosi/evt  stpLen/evt nStep/evt
       18 0.018885274          0        0.6          0 0.012085263        0.7
       19 0.040120888          0        0.7          0 0.027643107        0.8
 ############################################################
-CPU Time spent by each region0x2a98fc0188
+CPU Time spent by each region0x2a98fbf188
 Region <DefaultRegionForTheWorld>
  All particles : User=0  Real=0  Sys=0
  e+ / e-       : User=0  Real=0  Sys=0
 
 Region <Calor-A>
- All particles : User=0.29  Real=0.29  Sys=0.02
- e+ / e-       : User=0.15  Real=0.16  Sys=0.01
+ All particles : User=0.3  Real=0.26  Sys=0
+ e+ / e-       : User=0.19  Real=0.15  Sys=0
 
 Region <Calor-B>
- All particles : User=0.23  Real=0.29  Sys=0.02
- e+ / e-       : User=0.14  Real=0.14  Sys=0.01
+ All particles : User=0.31  Real=0.29  Sys=0.01
+ e+ / e-       : User=0.18  Real=0.16  Sys=0.02
 
 Region <Calor-C>
- All particles : User=0.1  Real=0.07  Sys=0
- e+ / e-       : User=0.04  Real=0.01  Sys=0
+ All particles : User=0.06  Real=0.08  Sys=0.01
+ e+ / e-       : User=0.02  Real=0.02  Sys=0
 
 /run/dumpCouples
 
@@ -1854,7 +1854,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=1.22s Real=1.3s Sys=0.08s
+  User=1.21s Real=1.3s Sys=0.08s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -1981,22 +1981,22 @@ layer   eDep/evt  nGamma/evt nElec/evt  nPosi/evt  stpLen/evt nStep/evt
       18 0.0030694876          0        0.1          0 0.0017974437        0.2
       19 0.0003989646          0        0.1          0 5.1594466e-05        0.1
 ############################################################
-CPU Time spent by each region0x2a98fc0188
+CPU Time spent by each region0x2a98fbf188
 Region <DefaultRegionForTheWorld>
  All particles : User=0  Real=0  Sys=0
  e+ / e-       : User=0  Real=0  Sys=0
 
 Region <Calor-A>
- All particles : User=0.54  Real=0.53  Sys=0
- e+ / e-       : User=0.29  Real=0.34  Sys=0.01
+ All particles : User=0.55  Real=0.6  Sys=0.02
+ e+ / e-       : User=0.34  Real=0.39  Sys=0.04
 
 Region <Calor-B>
- All particles : User=0.21  Real=0.19  Sys=0.02
- e+ / e-       : User=0.1  Real=0.08  Sys=0.01
+ All particles : User=0.23  Real=0.17  Sys=0
+ e+ / e-       : User=0.17  Real=0.09  Sys=0
 
 Region <Calor-C>
- All particles : User=0.1  Real=0.17  Sys=0.02
- e+ / e-       : User=0.04  Real=0.06  Sys=0.02
+ All particles : User=0.14  Real=0.14  Sys=0.01
+ e+ / e-       : User=0.1  Real=0.06  Sys=0.01
 
 /run/dumpCouples
 
diff --git a/source/GNUmakefile b/source/GNUmakefile
index b45f679a84..b3a5f8825e 100644
--- a/source/GNUmakefile
+++ b/source/GNUmakefile
@@ -1,4 +1,4 @@
-# $Id: GNUmakefile,v 1.89.2.1 2009/03/03 11:14:40 gcosmo Exp $
+# $Id: GNUmakefile,v 1.89.2.2 2010/09/23 15:13:33 gcosmo Exp $
 # -----------------------------------------------------------------
 # "gmake" makes default libraries for each subdomain.
 # "gmake global" makes global libraries for each subdomain.
@@ -149,8 +149,8 @@ endif
 
 banner:
 	@$(ECHO) "*************************************************************"
-	@$(ECHO) " Installation Geant4 version $$Name: geant4-09-02-patch-03 $ "
-	@$(ECHO) " Copyright (C) 1994-2009 Geant4 Collaboration                            "
+	@$(ECHO) " Installation Geant4 version $$Name: geant4-09-02-patch-04 $ "
+	@$(ECHO) " Copyright (C) 1994-2010 Geant4 Collaboration                            "
 	@$(ECHO) "*************************************************************"
 
 clean_libs::
diff --git a/source/digits_hits/detector/include/G4VReadOutGeometry.hh b/source/digits_hits/detector/include/G4VReadOutGeometry.hh
index 4e928aeccd..322504fa5a 100644
--- a/source/digits_hits/detector/include/G4VReadOutGeometry.hh
+++ b/source/digits_hits/detector/include/G4VReadOutGeometry.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VReadOutGeometry.hh,v 1.2.4.1 2010/01/25 10:14:16 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // ------------------------------------------------------------
 
diff --git a/source/digits_hits/scorer/src/G4PSCellFlux.cc b/source/digits_hits/scorer/src/G4PSCellFlux.cc
index 31ba157d6b..5846aa4580 100644
--- a/source/digits_hits/scorer/src/G4PSCellFlux.cc
+++ b/source/digits_hits/scorer/src/G4PSCellFlux.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSCellFlux.cc,v 1.1.4.1 2009/03/03 14:03:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSCellFlux
 #include "G4PSCellFlux.hh"
diff --git a/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc b/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc
index 1dae45cbfc..8fdddd1134 100644
--- a/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc
+++ b/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSCylinderSurfaceCurrent.cc,v 1.1.4.2 2010/01/25 10:14:16 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSCylinderSurfaceCurrent
 #include "G4PSCylinderSurfaceCurrent.hh"
diff --git a/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc b/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc
index eddce57644..6d274d44e3 100644
--- a/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc
+++ b/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSCylinderSurfaceFlux.cc,v 1.2.2.2 2010/01/25 10:14:16 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // // G4PSCylinderSurfaceFlux
 #include "G4PSCylinderSurfaceFlux.hh"
diff --git a/source/digits_hits/scorer/src/G4PSDoseDeposit.cc b/source/digits_hits/scorer/src/G4PSDoseDeposit.cc
index 25bac29c00..250c0be130 100644
--- a/source/digits_hits/scorer/src/G4PSDoseDeposit.cc
+++ b/source/digits_hits/scorer/src/G4PSDoseDeposit.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSDoseDeposit.cc,v 1.1.4.1 2009/03/03 14:03:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSDoseDeposit
 #include "G4PSDoseDeposit.hh"
diff --git a/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc b/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc
index 627b057c7d..e55900543b 100644
--- a/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc
+++ b/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSFlatSurfaceCurrent.cc,v 1.2.4.1 2009/03/03 14:03:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSFlatSurfaceCurrent
 #include "G4PSFlatSurfaceCurrent.hh"
diff --git a/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc b/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc
index f2b3913d84..11f384b59f 100644
--- a/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc
+++ b/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSFlatSurfaceFlux.cc,v 1.1.4.1 2009/03/03 14:03:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSFlatSurfaceFlux
 #include "G4PSFlatSurfaceFlux.hh"
diff --git a/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc b/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc
index b294211c97..15c53feeb8 100644
--- a/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc
+++ b/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSPassageCellFlux.cc,v 1.1.4.1 2009/03/03 14:03:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSPassageCellFlux
 #include "G4PSPassageCellFlux.hh"
diff --git a/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc b/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc
index d7963b1e52..6654585236 100644
--- a/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc
+++ b/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSSphereSurfaceCurrent.cc,v 1.2.4.2 2010/01/25 10:14:16 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSSphereSurfaceCurrent
 #include "G4PSSphereSurfaceCurrent.hh"
diff --git a/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc b/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc
index 258151ab7a..414d039cf1 100644
--- a/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc
+++ b/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PSSphereSurfaceFlux.cc,v 1.1.4.2 2010/01/25 10:14:16 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // G4PSSphereSurfaceFlux
 #include "G4PSSphereSurfaceFlux.hh"
diff --git a/source/digits_hits/utils/src/G4ScoreLogColorMap.cc b/source/digits_hits/utils/src/G4ScoreLogColorMap.cc
index f834e1aaf9..37e25f287e 100644
--- a/source/digits_hits/utils/src/G4ScoreLogColorMap.cc
+++ b/source/digits_hits/utils/src/G4ScoreLogColorMap.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ScoreLogColorMap.cc,v 1.2.2.1 2009/08/11 13:47:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #include "G4ScoreLogColorMap.hh"
diff --git a/source/digits_hits/utils/src/G4VScoreColorMap.cc b/source/digits_hits/utils/src/G4VScoreColorMap.cc
index 8d1727de81..1f3d03ca59 100644
--- a/source/digits_hits/utils/src/G4VScoreColorMap.cc
+++ b/source/digits_hits/utils/src/G4VScoreColorMap.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VScoreColorMap.cc,v 1.3.2.1 2009/08/11 13:47:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #include "G4VScoreColorMap.hh"
diff --git a/source/error_propagation/src/G4ErrorMagFieldLimitProcess.cc b/source/error_propagation/src/G4ErrorMagFieldLimitProcess.cc
index 39b139734b..51158f9b68 100644
--- a/source/error_propagation/src/G4ErrorMagFieldLimitProcess.cc
+++ b/source/error_propagation/src/G4ErrorMagFieldLimitProcess.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4ErrorMagFieldLimitProcess.cc,v 1.2.4.1 2010/01/25 10:22:27 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // ------------------------------------------------------------
 //      GEANT 4 class implementation file 
diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh
index 1799f441e6..d485cdaedf 100644
--- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh
+++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4MagIntegratorStepper.hh,v 1.12.6.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4MagIntegratorStepper
diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc
index 7140366ee4..4087c8cf3d 100644
--- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc
+++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4MagIntegratorStepper.icc,v 1.10.6.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 inline
diff --git a/source/geometry/magneticfield/src/G4ChordFinder.cc b/source/geometry/magneticfield/src/G4ChordFinder.cc
index 0af8fbdb1e..a6447db37b 100644
--- a/source/geometry/magneticfield/src/G4ChordFinder.cc
+++ b/source/geometry/magneticfield/src/G4ChordFinder.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ChordFinder.cc,v 1.51.2.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // 25.02.97 - John Apostolakis - Design and implementation 
diff --git a/source/geometry/magneticfield/src/G4ClassicalRK4.cc b/source/geometry/magneticfield/src/G4ClassicalRK4.cc
index 0ee6762fdb..05d666e28d 100644
--- a/source/geometry/magneticfield/src/G4ClassicalRK4.cc
+++ b/source/geometry/magneticfield/src/G4ClassicalRK4.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ClassicalRK4.cc,v 1.12.6.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 
diff --git a/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc b/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc
index 27be56a1ef..694102b23b 100644
--- a/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc
+++ b/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4EqEMFieldWithSpin.cc,v 1.4.2.2 2010/01/25 11:30:34 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 //  This is the standard right-hand side for equation of motion.
diff --git a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc
index 0f68b404a2..e59a1f5215 100644
--- a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc
+++ b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4MagIntegratorDriver.cc,v 1.49.4.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 //
diff --git a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc
index 5fca0fdc97..3cbd313244 100644
--- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc
+++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Mag_SpinEqRhs.cc,v 1.13.2.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // This is the standard right-hand side for equation of motion.
 // This version of the right-hand side includes the three components
diff --git a/source/geometry/magneticfield/src/G4SimpleHeum.cc b/source/geometry/magneticfield/src/G4SimpleHeum.cc
index e4fe641ee8..6958b2e733 100644
--- a/source/geometry/magneticfield/src/G4SimpleHeum.cc
+++ b/source/geometry/magneticfield/src/G4SimpleHeum.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4SimpleHeum.cc,v 1.8.6.1 2009/08/11 13:44:36 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //  Simple Heum:
 //        x_1 = x_0 + h *
diff --git a/source/geometry/management/include/G4LogicalSurface.hh b/source/geometry/management/include/G4LogicalSurface.hh
index 9ee51d6ed9..ac0c06b362 100644
--- a/source/geometry/management/include/G4LogicalSurface.hh
+++ b/source/geometry/management/include/G4LogicalSurface.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4LogicalSurface.hh,v 1.10.6.1 2009/08/11 13:36:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 ////////////////////////////////////////////////////////////////////////
 // Class G4LogicalSurface
diff --git a/source/geometry/management/include/G4LogicalSurface.icc b/source/geometry/management/include/G4LogicalSurface.icc
index 693578301b..823f0feda1 100644
--- a/source/geometry/management/include/G4LogicalSurface.icc
+++ b/source/geometry/management/include/G4LogicalSurface.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4LogicalSurface.icc,v 1.9.6.1 2009/08/11 13:36:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 ////////////////////////////////////////////////////////////////////////
 // Surface Class Inline Methods
diff --git a/source/geometry/management/include/G4VTouchable.icc b/source/geometry/management/include/G4VTouchable.icc
index de3bb5c326..8386879120 100644
--- a/source/geometry/management/include/G4VTouchable.icc
+++ b/source/geometry/management/include/G4VTouchable.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VTouchable.icc,v 1.9.6.1 2010/01/26 08:19:41 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4VTouchable Inline implementation
diff --git a/source/geometry/management/src/G4LogicalVolume.cc b/source/geometry/management/src/G4LogicalVolume.cc
index 1232d1f5af..b0f3e3a79c 100644
--- a/source/geometry/management/src/G4LogicalVolume.cc
+++ b/source/geometry/management/src/G4LogicalVolume.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4LogicalVolume.cc,v 1.33.2.1 2010/01/26 08:19:41 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4LogicalVolume Implementation
diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc
index e911971b7f..d5ed9d31fa 100644
--- a/source/geometry/management/src/G4SmartVoxelHeader.cc
+++ b/source/geometry/management/src/G4SmartVoxelHeader.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4SmartVoxelHeader.cc,v 1.31.2.2 2010/01/26 08:19:41 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4SmartVoxelHeader
diff --git a/source/geometry/management/src/G4VTouchable.cc b/source/geometry/management/src/G4VTouchable.cc
index a09b8e494b..a47a3cbd90 100644
--- a/source/geometry/management/src/G4VTouchable.cc
+++ b/source/geometry/management/src/G4VTouchable.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VTouchable.cc,v 1.1.2.2 2010/01/26 08:19:41 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4VTouchable implementation
diff --git a/source/geometry/navigation/include/G4Navigator.hh b/source/geometry/navigation/include/G4Navigator.hh
index e7f2fa82d2..14e6d20ed1 100644
--- a/source/geometry/navigation/include/G4Navigator.hh
+++ b/source/geometry/navigation/include/G4Navigator.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Navigator.hh,v 1.27.2.2 2010/01/26 09:10:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4Navigator
diff --git a/source/geometry/navigation/include/G4PhantomParameterisation.hh b/source/geometry/navigation/include/G4PhantomParameterisation.hh
index 0528ef7506..ed28ba6b6a 100755
--- a/source/geometry/navigation/include/G4PhantomParameterisation.hh
+++ b/source/geometry/navigation/include/G4PhantomParameterisation.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PhantomParameterisation.hh,v 1.4.4.1 2009/08/11 13:31:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4PhantomParameterisation
diff --git a/source/geometry/navigation/include/G4PropagatorInField.hh b/source/geometry/navigation/include/G4PropagatorInField.hh
index 7f02f35207..63c7318b67 100644
--- a/source/geometry/navigation/include/G4PropagatorInField.hh
+++ b/source/geometry/navigation/include/G4PropagatorInField.hh
@@ -25,7 +25,7 @@
 //
 // 
 // $Id: G4PropagatorInField.hh,v 1.17.2.1 2010/01/26 09:10:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // Class G4PropagatorInField 
diff --git a/source/geometry/navigation/include/G4PropagatorInField.icc b/source/geometry/navigation/include/G4PropagatorInField.icc
index ab5de5c8ad..bf307ba0a5 100644
--- a/source/geometry/navigation/include/G4PropagatorInField.icc
+++ b/source/geometry/navigation/include/G4PropagatorInField.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PropagatorInField.icc,v 1.13.2.2 2010/01/26 09:10:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // ------------------------------------------------------------------------
diff --git a/source/geometry/navigation/include/G4RegularNavigationHelper.hh b/source/geometry/navigation/include/G4RegularNavigationHelper.hh
index 4993549502..9c21b5ee33 100644
--- a/source/geometry/navigation/include/G4RegularNavigationHelper.hh
+++ b/source/geometry/navigation/include/G4RegularNavigationHelper.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RegularNavigationHelper.hh,v 1.1.2.2 2009/03/03 11:21:17 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // --------------------------------------------------------------------
 // GEANT 4 class header file
diff --git a/source/geometry/navigation/include/G4VIntersectionLocator.hh b/source/geometry/navigation/include/G4VIntersectionLocator.hh
index 8b5ec437bc..8da93f8efe 100644
--- a/source/geometry/navigation/include/G4VIntersectionLocator.hh
+++ b/source/geometry/navigation/include/G4VIntersectionLocator.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VIntersectionLocator.hh,v 1.4.2.1 2010/01/26 09:10:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // Class G4VIntersectionLocator 
diff --git a/source/geometry/navigation/src/G4BrentLocator.cc b/source/geometry/navigation/src/G4BrentLocator.cc
index e1782916c1..d92c538e80 100644
--- a/source/geometry/navigation/src/G4BrentLocator.cc
+++ b/source/geometry/navigation/src/G4BrentLocator.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BrentLocator.cc,v 1.5.2.2 2009/08/11 13:31:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Class G4BrentLocator implementation
 //
diff --git a/source/geometry/navigation/src/G4VIntersectionLocator.cc b/source/geometry/navigation/src/G4VIntersectionLocator.cc
index 5fb01954c7..2f3a657ee4 100644
--- a/source/geometry/navigation/src/G4VIntersectionLocator.cc
+++ b/source/geometry/navigation/src/G4VIntersectionLocator.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VIntersectionLocator.cc,v 1.4.2.2 2010/01/26 09:10:09 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Class G4VIntersectionLocator implementation
 //
diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc
index c383844750..46e2e336ea 100644
--- a/source/geometry/solids/CSG/src/G4Cons.cc
+++ b/source/geometry/solids/CSG/src/G4Cons.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Cons.cc,v 1.60.2.2 2010/01/26 09:31:23 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4Cons
diff --git a/source/geometry/solids/CSG/src/G4Orb.cc b/source/geometry/solids/CSG/src/G4Orb.cc
index 2772b758d0..941ce4396c 100644
--- a/source/geometry/solids/CSG/src/G4Orb.cc
+++ b/source/geometry/solids/CSG/src/G4Orb.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4Orb.cc,v 1.24.4.3 2010/01/26 16:20:31 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4Orb
 //
diff --git a/source/geometry/solids/CSG/src/G4Sphere.cc b/source/geometry/solids/CSG/src/G4Sphere.cc
index d2939d7a08..d2bde26381 100644
--- a/source/geometry/solids/CSG/src/G4Sphere.cc
+++ b/source/geometry/solids/CSG/src/G4Sphere.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Sphere.cc,v 1.68.2.1 2009/08/18 15:46:31 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4Sphere
 //
diff --git a/source/geometry/solids/CSG/src/G4Torus.cc b/source/geometry/solids/CSG/src/G4Torus.cc
index 9382f92da1..e14b44a86a 100644
--- a/source/geometry/solids/CSG/src/G4Torus.cc
+++ b/source/geometry/solids/CSG/src/G4Torus.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Torus.cc,v 1.63.6.1 2010/01/26 09:31:23 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4Torus
diff --git a/source/geometry/solids/CSG/src/G4Tubs.cc b/source/geometry/solids/CSG/src/G4Tubs.cc
index fd16c29493..c86c19ea7a 100644
--- a/source/geometry/solids/CSG/src/G4Tubs.cc
+++ b/source/geometry/solids/CSG/src/G4Tubs.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Tubs.cc,v 1.74.2.1 2009/08/18 15:46:31 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4Tubs
diff --git a/source/geometry/solids/specific/src/G4Ellipsoid.cc b/source/geometry/solids/specific/src/G4Ellipsoid.cc
index 229bd60ac9..25b387c441 100644
--- a/source/geometry/solids/specific/src/G4Ellipsoid.cc
+++ b/source/geometry/solids/specific/src/G4Ellipsoid.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4Ellipsoid.cc,v 1.14.8.2 2010/01/26 11:33:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4Ellipsoid
 //
diff --git a/source/geometry/solids/specific/src/G4Paraboloid.cc b/source/geometry/solids/specific/src/G4Paraboloid.cc
index 29bed3d4e2..feabf1dbd3 100644
--- a/source/geometry/solids/specific/src/G4Paraboloid.cc
+++ b/source/geometry/solids/specific/src/G4Paraboloid.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4Paraboloid.cc,v 1.8.2.1 2009/03/03 11:00:50 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4Paraboloid
 //
diff --git a/source/geometry/solids/specific/src/G4PolyconeSide.cc b/source/geometry/solids/specific/src/G4PolyconeSide.cc
index 444fc5c557..6c0c3ff867 100644
--- a/source/geometry/solids/specific/src/G4PolyconeSide.cc
+++ b/source/geometry/solids/specific/src/G4PolyconeSide.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PolyconeSide.cc,v 1.19.2.2 2010/01/26 11:33:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // --------------------------------------------------------------------
diff --git a/source/geometry/solids/specific/src/G4TessellatedSolid.cc b/source/geometry/solids/specific/src/G4TessellatedSolid.cc
index 615fc08006..ab488fe934 100644
--- a/source/geometry/solids/specific/src/G4TessellatedSolid.cc
+++ b/source/geometry/solids/specific/src/G4TessellatedSolid.cc
@@ -25,7 +25,7 @@
 // ********************************************************************
 //
 // $Id: G4TessellatedSolid.cc,v 1.18.2.1 2009/08/11 09:20:32 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 //
diff --git a/source/geometry/solids/specific/src/G4TwistTubsSide.cc b/source/geometry/solids/specific/src/G4TwistTubsSide.cc
index 3f5d746ecf..a32bb91f62 100644
--- a/source/geometry/solids/specific/src/G4TwistTubsSide.cc
+++ b/source/geometry/solids/specific/src/G4TwistTubsSide.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4TwistTubsSide.cc,v 1.5.10.1 2010/01/26 11:33:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // --------------------------------------------------------------------
diff --git a/source/geometry/solids/specific/src/G4VCSGfaceted.cc b/source/geometry/solids/specific/src/G4VCSGfaceted.cc
index e89e76b659..4a62e57ae2 100644
--- a/source/geometry/solids/specific/src/G4VCSGfaceted.cc
+++ b/source/geometry/solids/specific/src/G4VCSGfaceted.cc
@@ -30,7 +30,7 @@
 // and all its terms.
 //
 // $Id: G4VCSGfaceted.cc,v 1.25.2.1 2009/08/11 09:20:32 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // --------------------------------------------------------------------
diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh
index 99eb810aad..9fa6d68b9f 100644
--- a/source/geometry/volumes/include/G4NavigationHistory.hh
+++ b/source/geometry/volumes/include/G4NavigationHistory.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4NavigationHistory.hh,v 1.13.4.1 2010/01/26 13:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4NavigationHistory
 //
diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc
index 4766b2435e..c048c93247 100644
--- a/source/geometry/volumes/include/G4NavigationHistory.icc
+++ b/source/geometry/volumes/include/G4NavigationHistory.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4NavigationHistory.icc,v 1.12.4.1 2009/08/11 09:24:31 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4NavigationHistory Inline implementation
diff --git a/source/geometry/volumes/include/G4TouchableHistory.hh b/source/geometry/volumes/include/G4TouchableHistory.hh
index c33f908265..8da2a83f6b 100644
--- a/source/geometry/volumes/include/G4TouchableHistory.hh
+++ b/source/geometry/volumes/include/G4TouchableHistory.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4TouchableHistory.hh,v 1.8.4.1 2010/01/26 13:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4TouchableHistory
diff --git a/source/geometry/volumes/include/G4TouchableHistory.icc b/source/geometry/volumes/include/G4TouchableHistory.icc
index b1b0aadd73..9897d65875 100644
--- a/source/geometry/volumes/include/G4TouchableHistory.icc
+++ b/source/geometry/volumes/include/G4TouchableHistory.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4TouchableHistory.icc,v 1.10.4.1 2010/01/26 13:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4TouchableHistory inline implementation
diff --git a/source/geometry/volumes/src/G4AssemblyVolume.cc b/source/geometry/volumes/src/G4AssemblyVolume.cc
index 757574fb98..cef5a7c807 100644
--- a/source/geometry/volumes/src/G4AssemblyVolume.cc
+++ b/source/geometry/volumes/src/G4AssemblyVolume.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4AssemblyVolume.cc,v 1.11.4.1 2010/01/26 13:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Class G4AssemblyVolume - implementation
diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc
index 994e40e5f6..30786b849e 100644
--- a/source/geometry/volumes/src/G4NavigationHistory.cc
+++ b/source/geometry/volumes/src/G4NavigationHistory.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4NavigationHistory.cc,v 1.10.4.1 2009/08/11 09:24:31 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // G4NavigationHistory Implementation
diff --git a/source/geometry/volumes/src/G4NavigationLevel.cc b/source/geometry/volumes/src/G4NavigationLevel.cc
index ed214b566c..8e13d70cd3 100644
--- a/source/geometry/volumes/src/G4NavigationLevel.cc
+++ b/source/geometry/volumes/src/G4NavigationLevel.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4NavigationLevel.cc,v 1.4.4.1 2009/08/11 09:24:31 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 30.09.97 J.Apostolakis Initial version. 
 //                    
diff --git a/source/geometry/volumes/src/G4PVParameterised.cc b/source/geometry/volumes/src/G4PVParameterised.cc
index 7eb0a8cf06..fd84a61900 100644
--- a/source/geometry/volumes/src/G4PVParameterised.cc
+++ b/source/geometry/volumes/src/G4PVParameterised.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PVParameterised.cc,v 1.10.4.1 2010/01/26 13:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4PVParameterised
diff --git a/source/geometry/volumes/src/G4TouchableHistory.cc b/source/geometry/volumes/src/G4TouchableHistory.cc
index 7d318a1b86..25205772e8 100644
--- a/source/geometry/volumes/src/G4TouchableHistory.cc
+++ b/source/geometry/volumes/src/G4TouchableHistory.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4TouchableHistory.cc,v 1.12.4.1 2010/01/26 13:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // class G4TouchableHistory Implementation
diff --git a/source/global/History b/source/global/History
index 2446cec223..c3ca70c4e0 100644
--- a/source/global/History
+++ b/source/global/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.216.2.3 2010/01/26 15:57:14 gcosmo Exp $
+$Id: History,v 1.216.2.4 2010/09/23 15:03:58 gcosmo Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -17,6 +17,9 @@ committal in the CVS repository !
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+September 16, 2010  G.Cosmo (global-V09-01-22)
+- Changed date for release 9.2.p04.
+
 January 26, 2010  G.Cosmo (global-V09-01-21)
 - Changed date for release 9.2.p03.
 
diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh
index 039c0347e0..5139e9973b 100644
--- a/source/global/management/include/G4String.hh
+++ b/source/global/management/include/G4String.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4String.hh,v 1.10.2.1 2009/08/11 15:41:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 //---------------------------------------------------------------
diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc
index 95c217a677..6e0ac0fb90 100644
--- a/source/global/management/include/G4String.icc
+++ b/source/global/management/include/G4String.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4String.icc,v 1.11.2.1 2009/08/11 15:41:53 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 //---------------------------------------------------------------
diff --git a/source/global/management/include/G4Version.hh b/source/global/management/include/G4Version.hh
index 46484df10f..055b7f7fb1 100644
--- a/source/global/management/include/G4Version.hh
+++ b/source/global/management/include/G4Version.hh
@@ -24,8 +24,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4Version.hh,v 1.17.2.3 2010/01/26 15:57:14 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// $Id: G4Version.hh,v 1.17.2.5 2010/09/23 15:13:33 gcosmo Exp $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Version information
 //
@@ -46,18 +46,18 @@
 //     |--> patch number
 
 #ifndef G4VERSION_NUMBER
-#define G4VERSION_NUMBER  923
+#define G4VERSION_NUMBER  924
 #endif
 
 #ifndef G4VERSION_TAG
-#define G4VERSION_TAG "$Name: geant4-09-02-patch-03 $"
+#define G4VERSION_TAG "$Name: geant4-09-02-patch-04 $"
 #endif
 
 // as variables
 
 #include "G4String.hh"
 
-static const G4String G4Version = "$Name: geant4-09-02-patch-03 $";
-static const G4String G4Date    = "(29-January-2010)";
+static const G4String G4Version = "$Name: geant4-09-02-patch-04 $";
+static const G4String G4Date    = "(16-September-2010)";
 
 #endif
diff --git a/source/materials/include/G4MaterialStoppingICRU73.hh b/source/materials/include/G4MaterialStoppingICRU73.hh
index 114556a94c..ac662876e6 100644
--- a/source/materials/include/G4MaterialStoppingICRU73.hh
+++ b/source/materials/include/G4MaterialStoppingICRU73.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4MaterialStoppingICRU73.hh,v 1.3.2.1 2009/03/03 13:30:34 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 #ifndef G4MaterialStoppingICRU73_h
 #define G4MaterialStoppingICRU73_h 1
diff --git a/source/materials/include/G4SimpleMaterialStoppingICRU73.hh b/source/materials/include/G4SimpleMaterialStoppingICRU73.hh
index 897dd8d68e..662fca7b1b 100644
--- a/source/materials/include/G4SimpleMaterialStoppingICRU73.hh
+++ b/source/materials/include/G4SimpleMaterialStoppingICRU73.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4SimpleMaterialStoppingICRU73.hh,v 1.3.2.1 2009/03/03 13:30:34 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 #ifndef G4SimpleMaterialStoppingICRU73_h
 #define G4SimpleMaterialStoppingICRU73_h 1
diff --git a/source/materials/src/G4MaterialStoppingICRU73.cc b/source/materials/src/G4MaterialStoppingICRU73.cc
index c14cb171cb..df63a5c78a 100644
--- a/source/materials/src/G4MaterialStoppingICRU73.cc
+++ b/source/materials/src/G4MaterialStoppingICRU73.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4MaterialStoppingICRU73.cc,v 1.3.2.1 2009/03/03 13:30:34 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 //---------------------------------------------------------------------------
 //
diff --git a/source/materials/src/G4SimpleMaterialStoppingICRU73.cc b/source/materials/src/G4SimpleMaterialStoppingICRU73.cc
index 1ffdfcb77e..e5d6546be8 100644
--- a/source/materials/src/G4SimpleMaterialStoppingICRU73.cc
+++ b/source/materials/src/G4SimpleMaterialStoppingICRU73.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4SimpleMaterialStoppingICRU73.cc,v 1.3.2.1 2009/03/03 13:30:34 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 //---------------------------------------------------------------------------
 //
diff --git a/source/particles/hadrons/ions/src/G4Alpha.cc b/source/particles/hadrons/ions/src/G4Alpha.cc
index 082c67e650..71674e06c3 100644
--- a/source/particles/hadrons/ions/src/G4Alpha.cc
+++ b/source/particles/hadrons/ions/src/G4Alpha.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Alpha.cc,v 1.14.4.1 2009/03/04 15:16:02 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // ----------------------------------------------------------------------
diff --git a/source/particles/hadrons/ions/src/G4He3.cc b/source/particles/hadrons/ions/src/G4He3.cc
index 01ef5bc00f..5e6bc94db4 100644
--- a/source/particles/hadrons/ions/src/G4He3.cc
+++ b/source/particles/hadrons/ions/src/G4He3.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4He3.cc,v 1.14.4.1 2009/03/04 15:16:02 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // ----------------------------------------------------------------------
diff --git a/source/particles/hadrons/ions/src/G4Triton.cc b/source/particles/hadrons/ions/src/G4Triton.cc
index c3a2088e5a..eb0a81403a 100644
--- a/source/particles/hadrons/ions/src/G4Triton.cc
+++ b/source/particles/hadrons/ions/src/G4Triton.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4Triton.cc,v 1.14.4.1 2009/03/04 15:16:02 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // ----------------------------------------------------------------------
diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc
index c3b71a79a6..0ff6b8c8d1 100644
--- a/source/particles/management/src/G4IonTable.cc
+++ b/source/particles/management/src/G4IonTable.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4IonTable.cc,v 1.53.2.1 2009/03/03 13:52:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // --------------------------------------------------------------
diff --git a/source/persistency/gdml/include/G4GDMLParser.hh b/source/persistency/gdml/include/G4GDMLParser.hh
index 43205d8064..c760164791 100644
--- a/source/persistency/gdml/include/G4GDMLParser.hh
+++ b/source/persistency/gdml/include/G4GDMLParser.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLParser.hh,v 1.56.2.2 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLParser
diff --git a/source/persistency/gdml/include/G4GDMLParser.icc b/source/persistency/gdml/include/G4GDMLParser.icc
index e312ca59ed..2ecaab6ca0 100644
--- a/source/persistency/gdml/include/G4GDMLParser.icc
+++ b/source/persistency/gdml/include/G4GDMLParser.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLParser.icc,v 1.7.2.1 2009/03/03 10:55:46 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLParser inline methods
diff --git a/source/persistency/gdml/include/G4GDMLRead.hh b/source/persistency/gdml/include/G4GDMLRead.hh
index 3ecfefd154..6bae6080b0 100644
--- a/source/persistency/gdml/include/G4GDMLRead.hh
+++ b/source/persistency/gdml/include/G4GDMLRead.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLRead.hh,v 1.26.2.1 2009/03/03 10:55:46 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLRead
 //
diff --git a/source/persistency/gdml/include/G4GDMLReadMaterials.hh b/source/persistency/gdml/include/G4GDMLReadMaterials.hh
index 20ecd144c2..c26e8ec54e 100644
--- a/source/persistency/gdml/include/G4GDMLReadMaterials.hh
+++ b/source/persistency/gdml/include/G4GDMLReadMaterials.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLReadMaterials.hh,v 1.9.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLReadMaterials
diff --git a/source/persistency/gdml/include/G4GDMLReadParamvol.hh b/source/persistency/gdml/include/G4GDMLReadParamvol.hh
index de0ef22056..0a373f2a5c 100644
--- a/source/persistency/gdml/include/G4GDMLReadParamvol.hh
+++ b/source/persistency/gdml/include/G4GDMLReadParamvol.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLReadParamvol.hh,v 1.6.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLReadParamvol
diff --git a/source/persistency/gdml/include/G4GDMLReadSetup.hh b/source/persistency/gdml/include/G4GDMLReadSetup.hh
index cbac43f597..1f2ea23435 100644
--- a/source/persistency/gdml/include/G4GDMLReadSetup.hh
+++ b/source/persistency/gdml/include/G4GDMLReadSetup.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLReadSetup.hh,v 1.5.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLReadSetup
diff --git a/source/persistency/gdml/include/G4GDMLReadSolids.hh b/source/persistency/gdml/include/G4GDMLReadSolids.hh
index 8fa2674de6..4725c48bf9 100644
--- a/source/persistency/gdml/include/G4GDMLReadSolids.hh
+++ b/source/persistency/gdml/include/G4GDMLReadSolids.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLReadSolids.hh,v 1.12.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLReadSolids
diff --git a/source/persistency/gdml/include/G4GDMLReadStructure.hh b/source/persistency/gdml/include/G4GDMLReadStructure.hh
index ecedfafff1..624f4f83f6 100644
--- a/source/persistency/gdml/include/G4GDMLReadStructure.hh
+++ b/source/persistency/gdml/include/G4GDMLReadStructure.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLReadStructure.hh,v 1.22.2.2 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLReadStructure
diff --git a/source/persistency/gdml/include/G4GDMLWrite.hh b/source/persistency/gdml/include/G4GDMLWrite.hh
index d88f64e233..1b7392931d 100644
--- a/source/persistency/gdml/include/G4GDMLWrite.hh
+++ b/source/persistency/gdml/include/G4GDMLWrite.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWrite.hh,v 1.37.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWrite
diff --git a/source/persistency/gdml/include/G4GDMLWriteDefine.hh b/source/persistency/gdml/include/G4GDMLWriteDefine.hh
index fee4a211a2..7a96853b9e 100644
--- a/source/persistency/gdml/include/G4GDMLWriteDefine.hh
+++ b/source/persistency/gdml/include/G4GDMLWriteDefine.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteDefine.hh,v 1.11.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWriteDefine
diff --git a/source/persistency/gdml/include/G4GDMLWriteMaterials.hh b/source/persistency/gdml/include/G4GDMLWriteMaterials.hh
index 39c448fae7..6bb4ab4dc4 100644
--- a/source/persistency/gdml/include/G4GDMLWriteMaterials.hh
+++ b/source/persistency/gdml/include/G4GDMLWriteMaterials.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteMaterials.hh,v 1.12.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWriteMaterials
diff --git a/source/persistency/gdml/include/G4GDMLWriteParamvol.hh b/source/persistency/gdml/include/G4GDMLWriteParamvol.hh
index b3c4ffaaf8..dab7f60c7a 100644
--- a/source/persistency/gdml/include/G4GDMLWriteParamvol.hh
+++ b/source/persistency/gdml/include/G4GDMLWriteParamvol.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteParamvol.hh,v 1.10.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWriteParamvol
diff --git a/source/persistency/gdml/include/G4GDMLWriteSetup.hh b/source/persistency/gdml/include/G4GDMLWriteSetup.hh
index 5c5c0732a4..1e8fa43e57 100644
--- a/source/persistency/gdml/include/G4GDMLWriteSetup.hh
+++ b/source/persistency/gdml/include/G4GDMLWriteSetup.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteSetup.hh,v 1.7.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWriteSetup
diff --git a/source/persistency/gdml/include/G4GDMLWriteSolids.hh b/source/persistency/gdml/include/G4GDMLWriteSolids.hh
index 82981de4b0..e99386e06d 100644
--- a/source/persistency/gdml/include/G4GDMLWriteSolids.hh
+++ b/source/persistency/gdml/include/G4GDMLWriteSolids.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteSolids.hh,v 1.32.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWriteSolids
diff --git a/source/persistency/gdml/include/G4GDMLWriteStructure.hh b/source/persistency/gdml/include/G4GDMLWriteStructure.hh
index 0536726c34..6cfafc22ce 100644
--- a/source/persistency/gdml/include/G4GDMLWriteStructure.hh
+++ b/source/persistency/gdml/include/G4GDMLWriteStructure.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteStructure.hh,v 1.34.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLWriteStructure
diff --git a/source/persistency/gdml/src/G4GDMLParser.cc b/source/persistency/gdml/src/G4GDMLParser.cc
index c6d3273764..b41b0c3d03 100644
--- a/source/persistency/gdml/src/G4GDMLParser.cc
+++ b/source/persistency/gdml/src/G4GDMLParser.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLParser.cc,v 1.13.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // class G4GDMLParser Implementation
diff --git a/source/persistency/gdml/src/G4GDMLRead.cc b/source/persistency/gdml/src/G4GDMLRead.cc
index 616f0deb97..94c961b4d3 100644
--- a/source/persistency/gdml/src/G4GDMLRead.cc
+++ b/source/persistency/gdml/src/G4GDMLRead.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4GDMLRead.cc,v 1.40.2.2 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLRead Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLReadDefine.cc b/source/persistency/gdml/src/G4GDMLReadDefine.cc
index 148de4c0d3..5a24521510 100644
--- a/source/persistency/gdml/src/G4GDMLReadDefine.cc
+++ b/source/persistency/gdml/src/G4GDMLReadDefine.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4GDMLReadDefine.cc,v 1.20.2.2 2010/01/26 13:39:58 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLReadDefine Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLReadParamvol.cc b/source/persistency/gdml/src/G4GDMLReadParamvol.cc
index 0cd65a9f93..38938cb9d1 100644
--- a/source/persistency/gdml/src/G4GDMLReadParamvol.cc
+++ b/source/persistency/gdml/src/G4GDMLReadParamvol.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4GDMLReadParamvol.cc,v 1.10.2.2 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLReadParamvol Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLReadSetup.cc b/source/persistency/gdml/src/G4GDMLReadSetup.cc
index ae2812511e..a65d87c28e 100644
--- a/source/persistency/gdml/src/G4GDMLReadSetup.cc
+++ b/source/persistency/gdml/src/G4GDMLReadSetup.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4GDMLReadSetup.cc,v 1.9.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLReadSetup Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLReadSolids.cc b/source/persistency/gdml/src/G4GDMLReadSolids.cc
index 67251deb08..04294d8e6f 100644
--- a/source/persistency/gdml/src/G4GDMLReadSolids.cc
+++ b/source/persistency/gdml/src/G4GDMLReadSolids.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4GDMLReadSolids.cc,v 1.22.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLReadSolids Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLReadStructure.cc b/source/persistency/gdml/src/G4GDMLReadStructure.cc
index 434b830947..e86e016ffa 100644
--- a/source/persistency/gdml/src/G4GDMLReadStructure.cc
+++ b/source/persistency/gdml/src/G4GDMLReadStructure.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4GDMLReadStructure.cc,v 1.52.2.2 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLReadStructure Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWrite.cc b/source/persistency/gdml/src/G4GDMLWrite.cc
index f83915c331..fa06a085bc 100644
--- a/source/persistency/gdml/src/G4GDMLWrite.cc
+++ b/source/persistency/gdml/src/G4GDMLWrite.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWrite.cc,v 1.50.2.2 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLWrite Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWriteDefine.cc b/source/persistency/gdml/src/G4GDMLWriteDefine.cc
index 03aacbe1e7..96a0ef0206 100644
--- a/source/persistency/gdml/src/G4GDMLWriteDefine.cc
+++ b/source/persistency/gdml/src/G4GDMLWriteDefine.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteDefine.cc,v 1.18.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLWriteDefine Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWriteMaterials.cc b/source/persistency/gdml/src/G4GDMLWriteMaterials.cc
index 9b1318987f..96a0c78598 100644
--- a/source/persistency/gdml/src/G4GDMLWriteMaterials.cc
+++ b/source/persistency/gdml/src/G4GDMLWriteMaterials.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteMaterials.cc,v 1.20.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLWriteMaterials Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWriteParamvol.cc b/source/persistency/gdml/src/G4GDMLWriteParamvol.cc
index 32835d0a14..2d665b8993 100644
--- a/source/persistency/gdml/src/G4GDMLWriteParamvol.cc
+++ b/source/persistency/gdml/src/G4GDMLWriteParamvol.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteParamvol.cc,v 1.23.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLParamVol Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWriteSetup.cc b/source/persistency/gdml/src/G4GDMLWriteSetup.cc
index 92c257d698..60bf6c6eed 100644
--- a/source/persistency/gdml/src/G4GDMLWriteSetup.cc
+++ b/source/persistency/gdml/src/G4GDMLWriteSetup.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteSetup.cc,v 1.11.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLWriteSetup Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWriteSolids.cc b/source/persistency/gdml/src/G4GDMLWriteSolids.cc
index 983095a4b7..c79d98648f 100644
--- a/source/persistency/gdml/src/G4GDMLWriteSolids.cc
+++ b/source/persistency/gdml/src/G4GDMLWriteSolids.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteSolids.cc,v 1.59.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLWriteSolids Implementation
 //
diff --git a/source/persistency/gdml/src/G4GDMLWriteStructure.cc b/source/persistency/gdml/src/G4GDMLWriteStructure.cc
index 429222f510..1f4a9d05eb 100644
--- a/source/persistency/gdml/src/G4GDMLWriteStructure.cc
+++ b/source/persistency/gdml/src/G4GDMLWriteStructure.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4GDMLWriteStructure.cc,v 1.74.2.1 2009/08/11 08:27:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // class G4GDMLWriteStructure Implementation
 //
diff --git a/source/physics_lists/builders/include/G4BertiniNeutronBuilder.hh b/source/physics_lists/builders/include/G4BertiniNeutronBuilder.hh
index 6dad1a2471..138381f18e 100644
--- a/source/physics_lists/builders/include/G4BertiniNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4BertiniNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BertiniNeutronBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4BertiniPiKBuilder.hh b/source/physics_lists/builders/include/G4BertiniPiKBuilder.hh
index 535cb2fa0f..e4aecf9477 100644
--- a/source/physics_lists/builders/include/G4BertiniPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4BertiniPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BertiniPiKBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4BertiniProtonBuilder.hh b/source/physics_lists/builders/include/G4BertiniProtonBuilder.hh
index 3bfa2e9a2d..ba5fb1cd28 100644
--- a/source/physics_lists/builders/include/G4BertiniProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4BertiniProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BertiniProtonBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4BinaryNeutronBuilder.hh b/source/physics_lists/builders/include/G4BinaryNeutronBuilder.hh
index 29b70652b2..fcb49a4868 100644
--- a/source/physics_lists/builders/include/G4BinaryNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4BinaryNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BinaryNeutronBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4BinaryPiKBuilder.hh b/source/physics_lists/builders/include/G4BinaryPiKBuilder.hh
index 0620cdb93d..a09566d4a3 100644
--- a/source/physics_lists/builders/include/G4BinaryPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4BinaryPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BinaryPiKBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4BinaryProtonBuilder.hh b/source/physics_lists/builders/include/G4BinaryProtonBuilder.hh
index 3e03aba8a7..6730bf17cc 100644
--- a/source/physics_lists/builders/include/G4BinaryProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4BinaryProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BinaryProtonBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFBinaryNeutronBuilder.hh b/source/physics_lists/builders/include/G4FTFBinaryNeutronBuilder.hh
index b60f97e0ba..ac40bfb261 100644
--- a/source/physics_lists/builders/include/G4FTFBinaryNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFBinaryNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFBinaryNeutronBuilder.hh,v 1.2.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFBinaryPiKBuilder.hh b/source/physics_lists/builders/include/G4FTFBinaryPiKBuilder.hh
index 9e8fe01e43..5accf479c8 100644
--- a/source/physics_lists/builders/include/G4FTFBinaryPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFBinaryPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFBinaryPiKBuilder.hh,v 1.1.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFBinaryProtonBuilder.hh b/source/physics_lists/builders/include/G4FTFBinaryProtonBuilder.hh
index 1324209a6d..6d909f511b 100644
--- a/source/physics_lists/builders/include/G4FTFBinaryProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFBinaryProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFBinaryProtonBuilder.hh,v 1.1.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFCNeutronBuilder.hh b/source/physics_lists/builders/include/G4FTFCNeutronBuilder.hh
index c029ea107b..3f040fbb21 100644
--- a/source/physics_lists/builders/include/G4FTFCNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFCNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFCNeutronBuilder.hh,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFCPiKBuilder.hh b/source/physics_lists/builders/include/G4FTFCPiKBuilder.hh
index 338e1805f0..6bb46b3511 100644
--- a/source/physics_lists/builders/include/G4FTFCPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFCPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFCPiKBuilder.hh,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFCProtonBuilder.hh b/source/physics_lists/builders/include/G4FTFCProtonBuilder.hh
index 125ed24788..338aaae9dc 100644
--- a/source/physics_lists/builders/include/G4FTFCProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFCProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFCProtonBuilder.hh,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFPNeutronBuilder.hh b/source/physics_lists/builders/include/G4FTFPNeutronBuilder.hh
index 43778f0772..6fbfe21a9e 100644
--- a/source/physics_lists/builders/include/G4FTFPNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFPNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFPNeutronBuilder.hh,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFPPiKBuilder.hh b/source/physics_lists/builders/include/G4FTFPPiKBuilder.hh
index 78feb75f95..86694f2e1d 100644
--- a/source/physics_lists/builders/include/G4FTFPPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFPPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFPPiKBuilder.hh,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4FTFPProtonBuilder.hh b/source/physics_lists/builders/include/G4FTFPProtonBuilder.hh
index 460bb48bc1..9c98734195 100644
--- a/source/physics_lists/builders/include/G4FTFPProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4FTFPProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFPProtonBuilder.hh,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4MiscLHEPBuilder.hh b/source/physics_lists/builders/include/G4MiscLHEPBuilder.hh
index b7cc362407..c7aec26e3f 100644
--- a/source/physics_lists/builders/include/G4MiscLHEPBuilder.hh
+++ b/source/physics_lists/builders/include/G4MiscLHEPBuilder.hh
@@ -23,7 +23,7 @@
 // * acceptance of all terms of the Geant4 Software license.          *
 // ********************************************************************
 //
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4PrecoNeutronBuilder.hh b/source/physics_lists/builders/include/G4PrecoNeutronBuilder.hh
index 1c33e51eb9..50fe24e2e8 100644
--- a/source/physics_lists/builders/include/G4PrecoNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4PrecoNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PrecoNeutronBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4PrecoProtonBuilder.hh b/source/physics_lists/builders/include/G4PrecoProtonBuilder.hh
index f14f8e816e..46ad35a0a7 100644
--- a/source/physics_lists/builders/include/G4PrecoProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4PrecoProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PrecoProtonBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSBinaryNeutronBuilder.hh b/source/physics_lists/builders/include/G4QGSBinaryNeutronBuilder.hh
index 039d513264..d721468476 100644
--- a/source/physics_lists/builders/include/G4QGSBinaryNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSBinaryNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSBinaryNeutronBuilder.hh,v 1.1.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSBinaryPiKBuilder.hh b/source/physics_lists/builders/include/G4QGSBinaryPiKBuilder.hh
index dd2d53724e..297674c059 100644
--- a/source/physics_lists/builders/include/G4QGSBinaryPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSBinaryPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSBinaryPiKBuilder.hh,v 1.1.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSBinaryProtonBuilder.hh b/source/physics_lists/builders/include/G4QGSBinaryProtonBuilder.hh
index c335447e7b..f934607056 100644
--- a/source/physics_lists/builders/include/G4QGSBinaryProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSBinaryProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSBinaryProtonBuilder.hh,v 1.1.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSCEflowNeutronBuilder.hh b/source/physics_lists/builders/include/G4QGSCEflowNeutronBuilder.hh
index b88b0f045b..d5c2ad7b8f 100644
--- a/source/physics_lists/builders/include/G4QGSCEflowNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSCEflowNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCEflowNeutronBuilder.hh,v 1.2.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSCEflowPiKBuilder.hh b/source/physics_lists/builders/include/G4QGSCEflowPiKBuilder.hh
index bde4871535..52d138e9db 100644
--- a/source/physics_lists/builders/include/G4QGSCEflowPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSCEflowPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCEflowPiKBuilder.hh,v 1.2.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSCEflowProtonBuilder.hh b/source/physics_lists/builders/include/G4QGSCEflowProtonBuilder.hh
index f386fadce3..c4587481c1 100644
--- a/source/physics_lists/builders/include/G4QGSCEflowProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSCEflowProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCEflowProtonBuilder.hh,v 1.2.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSCNeutronBuilder.hh b/source/physics_lists/builders/include/G4QGSCNeutronBuilder.hh
index 35b74b14f8..251f4580de 100644
--- a/source/physics_lists/builders/include/G4QGSCNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSCNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCNeutronBuilder.hh,v 1.3.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSCPiKBuilder.hh b/source/physics_lists/builders/include/G4QGSCPiKBuilder.hh
index a57248759a..65a0d19d66 100644
--- a/source/physics_lists/builders/include/G4QGSCPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSCPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCPiKBuilder.hh,v 1.3.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSCProtonBuilder.hh b/source/physics_lists/builders/include/G4QGSCProtonBuilder.hh
index 2b4a4f2381..9150e93322 100644
--- a/source/physics_lists/builders/include/G4QGSCProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSCProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCProtonBuilder.hh,v 1.3.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSPNeutronBuilder.hh b/source/physics_lists/builders/include/G4QGSPNeutronBuilder.hh
index 6d4e0045c6..c5dde7f354 100644
--- a/source/physics_lists/builders/include/G4QGSPNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSPNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSPNeutronBuilder.hh,v 1.3.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSPPiKBuilder.hh b/source/physics_lists/builders/include/G4QGSPPiKBuilder.hh
index 3a13f2fba0..c25ce74e8d 100644
--- a/source/physics_lists/builders/include/G4QGSPPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSPPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSPPiKBuilder.hh,v 1.3.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4QGSPProtonBuilder.hh b/source/physics_lists/builders/include/G4QGSPProtonBuilder.hh
index bd3fa28dcb..3b24a4b453 100644
--- a/source/physics_lists/builders/include/G4QGSPProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4QGSPProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSPProtonBuilder.hh,v 1.4.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4VNeutronBuilder.hh b/source/physics_lists/builders/include/G4VNeutronBuilder.hh
index 590d5d3e6a..a03627e095 100644
--- a/source/physics_lists/builders/include/G4VNeutronBuilder.hh
+++ b/source/physics_lists/builders/include/G4VNeutronBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VNeutronBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4VPiKBuilder.hh b/source/physics_lists/builders/include/G4VPiKBuilder.hh
index 31fa4a74eb..7a45a1e0c3 100644
--- a/source/physics_lists/builders/include/G4VPiKBuilder.hh
+++ b/source/physics_lists/builders/include/G4VPiKBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VPiKBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/include/G4VProtonBuilder.hh b/source/physics_lists/builders/include/G4VProtonBuilder.hh
index 4012a3404f..e4dbed6982 100644
--- a/source/physics_lists/builders/include/G4VProtonBuilder.hh
+++ b/source/physics_lists/builders/include/G4VProtonBuilder.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VProtonBuilder.hh,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4BertiniNeutronBuilder.cc b/source/physics_lists/builders/src/G4BertiniNeutronBuilder.cc
index 3e2e3ad7dd..679bc27f25 100644
--- a/source/physics_lists/builders/src/G4BertiniNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4BertiniNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BertiniNeutronBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4BertiniPiKBuilder.cc b/source/physics_lists/builders/src/G4BertiniPiKBuilder.cc
index 6657dc3ac0..ee73b9b5e4 100644
--- a/source/physics_lists/builders/src/G4BertiniPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4BertiniPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BertiniPiKBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4BertiniProtonBuilder.cc b/source/physics_lists/builders/src/G4BertiniProtonBuilder.cc
index 39665fce33..eb0cb237e0 100644
--- a/source/physics_lists/builders/src/G4BertiniProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4BertiniProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BertiniProtonBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4BinaryNeutronBuilder.cc b/source/physics_lists/builders/src/G4BinaryNeutronBuilder.cc
index 89e982176e..0153dc7c57 100644
--- a/source/physics_lists/builders/src/G4BinaryNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4BinaryNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BinaryNeutronBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4BinaryPiKBuilder.cc b/source/physics_lists/builders/src/G4BinaryPiKBuilder.cc
index ebbc6ad3e9..045e3d4334 100644
--- a/source/physics_lists/builders/src/G4BinaryPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4BinaryPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BinaryPiKBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4BinaryProtonBuilder.cc b/source/physics_lists/builders/src/G4BinaryProtonBuilder.cc
index 5143cd88a7..abb72f6418 100644
--- a/source/physics_lists/builders/src/G4BinaryProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4BinaryProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4BinaryProtonBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFBinaryNeutronBuilder.cc b/source/physics_lists/builders/src/G4FTFBinaryNeutronBuilder.cc
index 21630bec8e..07e91d4022 100644
--- a/source/physics_lists/builders/src/G4FTFBinaryNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFBinaryNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFBinaryNeutronBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFBinaryPiKBuilder.cc b/source/physics_lists/builders/src/G4FTFBinaryPiKBuilder.cc
index 8631deb686..75b17cdc0b 100644
--- a/source/physics_lists/builders/src/G4FTFBinaryPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFBinaryPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFBinaryPiKBuilder.cc,v 1.2.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFBinaryProtonBuilder.cc b/source/physics_lists/builders/src/G4FTFBinaryProtonBuilder.cc
index 2b1c2cbc92..b5cf69855b 100644
--- a/source/physics_lists/builders/src/G4FTFBinaryProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFBinaryProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFBinaryProtonBuilder.cc,v 1.2.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFCNeutronBuilder.cc b/source/physics_lists/builders/src/G4FTFCNeutronBuilder.cc
index ed9bff8a91..18844236da 100644
--- a/source/physics_lists/builders/src/G4FTFCNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFCNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFCNeutronBuilder.cc,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFCPiKBuilder.cc b/source/physics_lists/builders/src/G4FTFCPiKBuilder.cc
index c3409271af..d9847086cb 100644
--- a/source/physics_lists/builders/src/G4FTFCPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFCPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFCPiKBuilder.cc,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFCProtonBuilder.cc b/source/physics_lists/builders/src/G4FTFCProtonBuilder.cc
index cdc241d59a..55030196b7 100644
--- a/source/physics_lists/builders/src/G4FTFCProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFCProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFCProtonBuilder.cc,v 1.2.4.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFPNeutronBuilder.cc b/source/physics_lists/builders/src/G4FTFPNeutronBuilder.cc
index 09114603d0..36a0ec4835 100644
--- a/source/physics_lists/builders/src/G4FTFPNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFPNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFPNeutronBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFPPiKBuilder.cc b/source/physics_lists/builders/src/G4FTFPPiKBuilder.cc
index b5cbefa034..a1e8034c21 100644
--- a/source/physics_lists/builders/src/G4FTFPPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFPPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFPPiKBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4FTFPProtonBuilder.cc b/source/physics_lists/builders/src/G4FTFPProtonBuilder.cc
index 5e61f28172..2af9ec4d05 100644
--- a/source/physics_lists/builders/src/G4FTFPProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4FTFPProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FTFPProtonBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4IonBinaryCascadePhysics.cc b/source/physics_lists/builders/src/G4IonBinaryCascadePhysics.cc
index 8fd0b5aa95..f6730cc978 100644
--- a/source/physics_lists/builders/src/G4IonBinaryCascadePhysics.cc
+++ b/source/physics_lists/builders/src/G4IonBinaryCascadePhysics.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4IonBinaryCascadePhysics.cc,v 1.1.6.2 2009/03/12 10:21:11 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4MiscLHEPBuilder.cc b/source/physics_lists/builders/src/G4MiscLHEPBuilder.cc
index 3c0983c1bf..e0bcea61c1 100644
--- a/source/physics_lists/builders/src/G4MiscLHEPBuilder.cc
+++ b/source/physics_lists/builders/src/G4MiscLHEPBuilder.cc
@@ -23,7 +23,7 @@
 // * acceptance of all terms of the Geant4 Software license.          *
 // ********************************************************************
 //
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4PrecoNeutronBuilder.cc b/source/physics_lists/builders/src/G4PrecoNeutronBuilder.cc
index 449872514a..74c6c12613 100644
--- a/source/physics_lists/builders/src/G4PrecoNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4PrecoNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PrecoNeutronBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4PrecoProtonBuilder.cc b/source/physics_lists/builders/src/G4PrecoProtonBuilder.cc
index 9ef4cc58a3..2ae38f1851 100644
--- a/source/physics_lists/builders/src/G4PrecoProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4PrecoProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PrecoProtonBuilder.cc,v 1.1.6.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSBinaryNeutronBuilder.cc b/source/physics_lists/builders/src/G4QGSBinaryNeutronBuilder.cc
index a6217b3547..b3b69b9f4d 100644
--- a/source/physics_lists/builders/src/G4QGSBinaryNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSBinaryNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSBinaryNeutronBuilder.cc,v 1.2.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSBinaryPiKBuilder.cc b/source/physics_lists/builders/src/G4QGSBinaryPiKBuilder.cc
index 6f39058fe6..908030d835 100644
--- a/source/physics_lists/builders/src/G4QGSBinaryPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSBinaryPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSBinaryPiKBuilder.cc,v 1.2.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSBinaryProtonBuilder.cc b/source/physics_lists/builders/src/G4QGSBinaryProtonBuilder.cc
index 34efc0cd39..b280ccf997 100644
--- a/source/physics_lists/builders/src/G4QGSBinaryProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSBinaryProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSBinaryProtonBuilder.cc,v 1.2.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSCEflowNeutronBuilder.cc b/source/physics_lists/builders/src/G4QGSCEflowNeutronBuilder.cc
index c815b5c97f..1c83ab16db 100644
--- a/source/physics_lists/builders/src/G4QGSCEflowNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSCEflowNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCEflowNeutronBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSCEflowPiKBuilder.cc b/source/physics_lists/builders/src/G4QGSCEflowPiKBuilder.cc
index 138c5771b3..0cd205894b 100644
--- a/source/physics_lists/builders/src/G4QGSCEflowPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSCEflowPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCEflowPiKBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSCEflowProtonBuilder.cc b/source/physics_lists/builders/src/G4QGSCEflowProtonBuilder.cc
index 1ee0dd3066..60cbd059ea 100644
--- a/source/physics_lists/builders/src/G4QGSCEflowProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSCEflowProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCEflowProtonBuilder.cc,v 1.3.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSCNeutronBuilder.cc b/source/physics_lists/builders/src/G4QGSCNeutronBuilder.cc
index b323fb92bc..4cdf52c28a 100644
--- a/source/physics_lists/builders/src/G4QGSCNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSCNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCNeutronBuilder.cc,v 1.4.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSCPiKBuilder.cc b/source/physics_lists/builders/src/G4QGSCPiKBuilder.cc
index b4f6c5fa4a..782274cd2d 100644
--- a/source/physics_lists/builders/src/G4QGSCPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSCPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCPiKBuilder.cc,v 1.4.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSCProtonBuilder.cc b/source/physics_lists/builders/src/G4QGSCProtonBuilder.cc
index 1c1bbddc0d..72e4eb2932 100644
--- a/source/physics_lists/builders/src/G4QGSCProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSCProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSCProtonBuilder.cc,v 1.4.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSPNeutronBuilder.cc b/source/physics_lists/builders/src/G4QGSPNeutronBuilder.cc
index ba57b09f99..50cb08440e 100644
--- a/source/physics_lists/builders/src/G4QGSPNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSPNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSPNeutronBuilder.cc,v 1.4.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSPPiKBuilder.cc b/source/physics_lists/builders/src/G4QGSPPiKBuilder.cc
index 00b23b5e1b..3a80a7889b 100644
--- a/source/physics_lists/builders/src/G4QGSPPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSPPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSPPiKBuilder.cc,v 1.4.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4QGSPProtonBuilder.cc b/source/physics_lists/builders/src/G4QGSPProtonBuilder.cc
index fdaeb648e7..773626cc6e 100644
--- a/source/physics_lists/builders/src/G4QGSPProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4QGSPProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QGSPProtonBuilder.cc,v 1.4.2.1 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4VNeutronBuilder.cc b/source/physics_lists/builders/src/G4VNeutronBuilder.cc
index 2a2a4bdad1..a77557a9b5 100644
--- a/source/physics_lists/builders/src/G4VNeutronBuilder.cc
+++ b/source/physics_lists/builders/src/G4VNeutronBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VNeutronBuilder.cc,v 1.1.2.2 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4VPiKBuilder.cc b/source/physics_lists/builders/src/G4VPiKBuilder.cc
index cf5546a07c..99ab48e694 100644
--- a/source/physics_lists/builders/src/G4VPiKBuilder.cc
+++ b/source/physics_lists/builders/src/G4VPiKBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VPiKBuilder.cc,v 1.1.2.2 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/builders/src/G4VProtonBuilder.cc b/source/physics_lists/builders/src/G4VProtonBuilder.cc
index 510892737b..2ef68c3535 100644
--- a/source/physics_lists/builders/src/G4VProtonBuilder.cc
+++ b/source/physics_lists/builders/src/G4VProtonBuilder.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VProtonBuilder.cc,v 1.1.2.2 2009/08/11 15:11:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc b/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc
index 25da3243a8..72edb474fa 100644
--- a/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc
+++ b/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronInelasticQBBC.cc,v 1.15.2.1 2009/03/03 13:27:47 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/physics_lists/lists/src/HadronPhysicsQGSC.cc b/source/physics_lists/lists/src/HadronPhysicsQGSC.cc
index 2cf70b8463..0b280a06e5 100644
--- a/source/physics_lists/lists/src/HadronPhysicsQGSC.cc
+++ b/source/physics_lists/lists/src/HadronPhysicsQGSC.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: HadronPhysicsQGSC.cc,v 1.2.6.1 2009/03/12 13:58:29 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------------------
 //
diff --git a/source/processes/cuts/include/G4ProductionCutsTable.hh b/source/processes/cuts/include/G4ProductionCutsTable.hh
index 027202610f..8460665a0b 100644
--- a/source/processes/cuts/include/G4ProductionCutsTable.hh
+++ b/source/processes/cuts/include/G4ProductionCutsTable.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ProductionCutsTable.hh,v 1.9.2.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // ------------------------------------------------------------
diff --git a/source/processes/cuts/include/G4RToEConvForElectron.hh b/source/processes/cuts/include/G4RToEConvForElectron.hh
index d41562ef6c..fe302ff11b 100644
--- a/source/processes/cuts/include/G4RToEConvForElectron.hh
+++ b/source/processes/cuts/include/G4RToEConvForElectron.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForElectron.hh,v 1.2.4.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // ------------------------------------------------------------
diff --git a/source/processes/cuts/include/G4RToEConvForGamma.hh b/source/processes/cuts/include/G4RToEConvForGamma.hh
index 2a02e83d2f..a3ce4a6996 100644
--- a/source/processes/cuts/include/G4RToEConvForGamma.hh
+++ b/source/processes/cuts/include/G4RToEConvForGamma.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForGamma.hh,v 1.2.4.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // ------------------------------------------------------------
diff --git a/source/processes/cuts/include/G4RToEConvForPositron.hh b/source/processes/cuts/include/G4RToEConvForPositron.hh
index afd70775f1..e95ef162b7 100644
--- a/source/processes/cuts/include/G4RToEConvForPositron.hh
+++ b/source/processes/cuts/include/G4RToEConvForPositron.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForPositron.hh,v 1.2.4.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // ------------------------------------------------------------
diff --git a/source/processes/cuts/include/G4RToEConvForProton.hh b/source/processes/cuts/include/G4RToEConvForProton.hh
index 010476069b..0725e9ac41 100644
--- a/source/processes/cuts/include/G4RToEConvForProton.hh
+++ b/source/processes/cuts/include/G4RToEConvForProton.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForProton.hh,v 1.2.4.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // ------------------------------------------------------------
diff --git a/source/processes/cuts/include/G4VRangeToEnergyConverter.hh b/source/processes/cuts/include/G4VRangeToEnergyConverter.hh
index 4e59e61dda..3c1cf45e1f 100644
--- a/source/processes/cuts/include/G4VRangeToEnergyConverter.hh
+++ b/source/processes/cuts/include/G4VRangeToEnergyConverter.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VRangeToEnergyConverter.hh,v 1.4.4.2 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // ------------------------------------------------------------
diff --git a/source/processes/cuts/src/G4ProductionCutsTable.cc b/source/processes/cuts/src/G4ProductionCutsTable.cc
index a2ebd79771..f49b8aaa3e 100644
--- a/source/processes/cuts/src/G4ProductionCutsTable.cc
+++ b/source/processes/cuts/src/G4ProductionCutsTable.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ProductionCutsTable.cc,v 1.18.2.2 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/source/processes/cuts/src/G4RToEConvForElectron.cc b/source/processes/cuts/src/G4RToEConvForElectron.cc
index e8d3a5ccad..7a5d0bdc2a 100644
--- a/source/processes/cuts/src/G4RToEConvForElectron.cc
+++ b/source/processes/cuts/src/G4RToEConvForElectron.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForElectron.cc,v 1.5.4.2 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/source/processes/cuts/src/G4RToEConvForGamma.cc b/source/processes/cuts/src/G4RToEConvForGamma.cc
index b8bd2e625c..ed94e2de7f 100644
--- a/source/processes/cuts/src/G4RToEConvForGamma.cc
+++ b/source/processes/cuts/src/G4RToEConvForGamma.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForGamma.cc,v 1.4.4.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/source/processes/cuts/src/G4RToEConvForPositron.cc b/source/processes/cuts/src/G4RToEConvForPositron.cc
index a7d07fd0f3..b319a3d265 100644
--- a/source/processes/cuts/src/G4RToEConvForPositron.cc
+++ b/source/processes/cuts/src/G4RToEConvForPositron.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForPositron.cc,v 1.5.4.2 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/source/processes/cuts/src/G4RToEConvForProton.cc b/source/processes/cuts/src/G4RToEConvForProton.cc
index ec780ed9e4..d403921b58 100644
--- a/source/processes/cuts/src/G4RToEConvForProton.cc
+++ b/source/processes/cuts/src/G4RToEConvForProton.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4RToEConvForProton.cc,v 1.3.4.1 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/source/processes/cuts/src/G4VRangeToEnergyConverter.cc b/source/processes/cuts/src/G4VRangeToEnergyConverter.cc
index 07b143a913..9fd0c84859 100644
--- a/source/processes/cuts/src/G4VRangeToEnergyConverter.cc
+++ b/source/processes/cuts/src/G4VRangeToEnergyConverter.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VRangeToEnergyConverter.cc,v 1.9.2.2 2010/01/26 13:56:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // --------------------------------------------------------------
diff --git a/source/processes/electromagnetic/lowenergy/include/G4DNAProcess.icc b/source/processes/electromagnetic/lowenergy/include/G4DNAProcess.icc
index ea73c44ab9..97523f1b46 100644
--- a/source/processes/electromagnetic/lowenergy/include/G4DNAProcess.icc
+++ b/source/processes/electromagnetic/lowenergy/include/G4DNAProcess.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4DNAProcess.icc,v 1.11.4.1 2009/03/05 08:50:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 // 
 // Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
 //
diff --git a/source/processes/electromagnetic/lowenergy/include/G4FinalStateProduct.hh b/source/processes/electromagnetic/lowenergy/include/G4FinalStateProduct.hh
index 4cff37c726..29b733b99f 100644
--- a/source/processes/electromagnetic/lowenergy/include/G4FinalStateProduct.hh
+++ b/source/processes/electromagnetic/lowenergy/include/G4FinalStateProduct.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4FinalStateProduct.hh,v 1.4.4.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 // 
 // Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
 //
diff --git a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreenPartial.cc b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreenPartial.cc
index 00d92d2221..6df0b960dd 100755
--- a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreenPartial.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreenPartial.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4CrossSectionExcitationMillerGreenPartial.cc,v 1.2.2.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 #include "G4CrossSectionExcitationMillerGreenPartial.hh"
 
diff --git a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartial.cc b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartial.cc
index 595815334d..b62739c881 100644
--- a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartial.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartial.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4CrossSectionIonisationBornPartial.cc,v 1.4.2.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 #include "G4CrossSectionIonisationBornPartial.hh"
 
diff --git a/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc b/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc
index ad39e804cc..9701eaef18 100755
--- a/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FinalStateChargeDecrease.cc,v 1.3.2.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 #include "G4FinalStateChargeDecrease.hh"
 
diff --git a/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeIncrease.cc b/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeIncrease.cc
index dfeda5e056..58c31a594e 100755
--- a/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeIncrease.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeIncrease.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4FinalStateChargeIncrease.cc,v 1.3.2.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 #include "G4FinalStateChargeIncrease.hh"
 
diff --git a/source/processes/electromagnetic/lowenergy/src/G4FinalStateProduct.cc b/source/processes/electromagnetic/lowenergy/src/G4FinalStateProduct.cc
index 56abe7ef4d..1940bbdc18 100644
--- a/source/processes/electromagnetic/lowenergy/src/G4FinalStateProduct.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4FinalStateProduct.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4FinalStateProduct.cc,v 1.5.4.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 // 
 // Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
 //
diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc
index c1b43a0323..ffe389e362 100644
--- a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PenelopePhotoElectric.cc,v 1.12.4.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Author: L. Pandola
 //
diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc
index dc797c3bee..c30dec1339 100644
--- a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PenelopePhotoElectricModel.cc,v 1.2.2.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Author: Luciano Pandola
 //
diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc
index 2b1b382b7c..db9d9b3aaa 100644
--- a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc
+++ b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4hLowEnergyLoss.cc,v 1.27.2.1 2009/03/05 08:50:19 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -----------------------------------------------------------
 //      GEANT 4 class implementation file
diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc
index c587b60e5a..991703d99a 100644
--- a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc
+++ b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4MuPairProductionModel.cc,v 1.39.2.1 2009/08/12 07:57:43 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc
index 328b1fa917..9e92b82594 100644
--- a/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc
+++ b/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PolarizationHelper.cc,v 1.4.4.2 2010/01/26 16:36:05 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // GEANT4 Class file
 //
diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilationModel.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilationModel.cc
index 9defdfbcea..9d0a79459d 100644
--- a/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilationModel.cc
+++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilationModel.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PolarizedAnnihilationModel.cc,v 1.6.4.2 2010/01/26 16:36:05 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/polarisation/src/G4StokesVector.cc b/source/processes/electromagnetic/polarisation/src/G4StokesVector.cc
index 89326c86b7..1139cd2a54 100644
--- a/source/processes/electromagnetic/polarisation/src/G4StokesVector.cc
+++ b/source/processes/electromagnetic/polarisation/src/G4StokesVector.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4StokesVector.cc,v 1.3.4.2 2010/01/26 16:36:05 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // GEANT4 Class file
 //
diff --git a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh
index 528e8f0805..fbbe6f2a3d 100644
--- a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh
+++ b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4UniversalFluctuation.hh,v 1.6.2.2 2010/02/01 16:31:17 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh
index ec7a176e9b..32fd2e0881 100644
--- a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh
+++ b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4ionIonisation.hh,v 1.56.2.2 2010/02/01 16:31:17 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc
index 849dc05a75..a3dd7dd964 100644
--- a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc
+++ b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4UniversalFluctuation.cc,v 1.16.2.2 2010/02/01 16:31:17 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc
index cde1702e7a..b4a9bb9afa 100644
--- a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc
+++ b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4ionIonisation.cc,v 1.65.2.2 2010/02/01 16:31:17 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc
index 0749e30cc4..5e01f166da 100644
--- a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc
+++ b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4EmCorrections.cc,v 1.51.2.1 2010/01/26 14:33:54 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc
index a0d7d1fb27..5a4402820f 100644
--- a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc
+++ b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VEmProcess.cc,v 1.60.2.1 2010/01/26 14:33:54 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc
index 35ded8c9f7..7013f9e8d6 100644
--- a/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc
+++ b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VEnergyLossProcess.cc,v 1.143.2.1 2010/01/26 14:33:54 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc b/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc
index 1166412b0e..2ca460630e 100644
--- a/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc
+++ b/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4ionEffectiveCharge.cc,v 1.24.2.1 2010/01/26 14:33:54 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh
index 8e60927455..3673bba361 100644
--- a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh
+++ b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4CrossSectionDataSetRegistry.hh,v 1.2.2.3 2009/08/11 15:23:23 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh
index a7a56ab615..f38128845f 100644
--- a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh
+++ b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4CrossSectionDataStore.hh,v 1.13.2.2 2009/08/13 09:16:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh b/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh
index 5979a224aa..ee8961ddfb 100644
--- a/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh
+++ b/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VCrossSectionDataSet.hh,v 1.12.4.2 2009/08/13 09:16:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataSetRegistry.cc b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataSetRegistry.cc
index 49131f9a0c..e299431a44 100644
--- a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataSetRegistry.cc
+++ b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataSetRegistry.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CrossSectionDataSetRegistry.cc,v 1.3.2.5 2010/01/26 14:50:08 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc
index fc5d8621f2..f7c2b9a8f8 100644
--- a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc
+++ b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4CrossSectionDataStore.cc,v 1.15.2.2 2009/08/13 09:16:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc b/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc
index 0f8407d4f1..27bcffb482 100644
--- a/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc
+++ b/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VCrossSectionDataSet.cc,v 1.7.4.2 2009/08/13 09:16:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/management/include/G4HadronicProcessStore.hh b/source/processes/hadronic/management/include/G4HadronicProcessStore.hh
index 5cbee2e26f..9562052633 100644
--- a/source/processes/hadronic/management/include/G4HadronicProcessStore.hh
+++ b/source/processes/hadronic/management/include/G4HadronicProcessStore.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronicProcessStore.hh,v 1.3.2.1 2009/03/03 11:45:23 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // -------------------------------------------------------------------
diff --git a/source/processes/hadronic/management/src/G4HadronicProcessStore.cc b/source/processes/hadronic/management/src/G4HadronicProcessStore.cc
index 7797f4cf4c..50386f7fc3 100644
--- a/source/processes/hadronic/management/src/G4HadronicProcessStore.cc
+++ b/source/processes/hadronic/management/src/G4HadronicProcessStore.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronicProcessStore.cc,v 1.7.2.2 2010/01/26 14:55:18 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/cascade/History b/source/processes/hadronic/models/cascade/History
index 0b3664d52a..cfd169b9ce 100644
--- a/source/processes/hadronic/models/cascade/History
+++ b/source/processes/hadronic/models/cascade/History
@@ -14,6 +14,13 @@ code and to keep track of all tags.
      * Please list in reverse chronological order (last date on top)
      ---------------------------------------------------------------
 
+22 Jun 2010 Andrea Dotti (hadr-casc-V09-01-12)
+----------------------------------------------
+- Fix for long-standing problem of energy non conservation in pion-nuclear
+  reaction on very light nuclei (in particular He) in G4CascadeInterface.
+  The workaround re-samples the interaction in the rare case when an
+  unphysical final state with baryon number violation is generated.
+
 11 Feb 2009 V.Ivanchenko (hadr-casc-V09-01-11)
 -----------------------------------------------
 - set absorption coefficient 1.0 instead of 0.2 inside
diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc
index 7ac94317b9..a0a4a7c37f 100644
--- a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc
+++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc
@@ -45,6 +45,9 @@
 #include "G4NucleiModel.hh"
 #include "G4LorentzRotation.hh"
 
+//22 June 2010: A. Dotti (andrea.dotti@cern.ch). Adding additional test on final state
+//              to avoid baryon number violation. Code changes are enclosed between
+//              AND-> and AND<- or marked with AND
 
 //#define BERTDEV 1  // A flag to activate a development version of Bertini cascade
 
@@ -146,12 +149,12 @@ G4HadFinalState* G4CascadeInterface::ApplyYourself(const G4HadProjectile& aTrack
 
   sumEnergy = bullet->getKineticEnergy(); // In GeV 
 
-  if (bulletType == proton || bulletType == neutron || bulletType == lambda ||
-      bulletType == sigmaPlus || bulletType == sigmaZero || bulletType == sigmaMinus ||
-      bulletType == xiZero || bulletType == xiMinus) {
-
-    sumBaryon += 1;
-  } 
+  //AND: Baryon number is calculated inside do {} while () loop
+  //if (bulletType == proton || bulletType == neutron || bulletType == lambda ||
+  //    bulletType == sigmaPlus || bulletType == sigmaZero || bulletType == sigmaMinus ||
+  //    bulletType == xiZero || bulletType == xiMinus) {
+  //  sumBaryon += 1;
+  //} 
 
   // Set target
   G4InuclNuclei*   target  = 0;
@@ -174,7 +177,7 @@ G4HadFinalState* G4CascadeInterface::ApplyYourself(const G4HadProjectile& aTrack
     const G4CascadeMomentum& tmom = target->getMomentum();
     eInit += std::sqrt(tmom[0] * tmom[0]);
 
-    sumBaryon += theNucleusA;
+    //sumBaryon += theNucleusA;//AND: Baryon number conservation check now done in do {} while () loop
 
     if (verboseLevel > 2) {
       G4cout << "Bullet:  " << G4endl;  
@@ -244,13 +247,36 @@ G4HadFinalState* G4CascadeInterface::ApplyYourself(const G4HadProjectile& aTrack
 	  output = collider->collide(bullet, targetH);
 	}
 
-	sumBaryon += 1;
+	//sumBaryon += 1;//AND
 
 	const G4CascadeMomentum& bmom = bullet->getMomentum();
 	eInit = std::sqrt(bmom[0] * bmom[0]);
 	const G4CascadeMomentum& tmom = targetH->getMomentum();
 	eInit += std::sqrt(tmom[0] * tmom[0]);
 
+	//AND->: Check baryon number conservation 
+	//Initial state baryon number
+	sumBaryon = 1;//Target is H(1,1)
+	if (bulletType == proton || bulletType == neutron || bulletType == lambda ||
+	    bulletType == sigmaPlus || bulletType == sigmaZero || bulletType == sigmaMinus ||
+	    bulletType == xiZero || bulletType == xiMinus) {
+	  sumBaryon += 1;
+	} 
+	//Final state baryon number
+	std::vector<G4InuclElementaryParticle> particles = output.getOutgoingParticles();
+	particleIterator itp_end = particles.end();
+	for ( particleIterator itp = particles.begin(); itp != itp_end ; ++itp ) {
+	    if ( itp->baryon() ) {
+	      sumBaryon -= 1;
+	    }
+	}
+	std::vector<G4InuclNuclei> nucleiFragments = output.getNucleiFragments();
+	nucleiIterator itnuc_end = nucleiFragments.end();
+	for ( nucleiIterator itnuc = nucleiFragments.begin() ; itnuc != itnuc_end ; ++itnuc ) {
+	  sumBaryon -= G4int(itnuc->getA());
+	}
+	//AND<-
+
 	if (verboseLevel > 2) {
 	  G4cout << "Target:  " << G4endl;
 	  targetH->printParticle();
@@ -258,6 +284,8 @@ G4HadFinalState* G4CascadeInterface::ApplyYourself(const G4HadProjectile& aTrack
 
       } else {  // treat all other targets excepet H(1,1)
 
+        G4double initE=0;
+        G4double finalE=0;
 	do  // we try to create inelastic interaction
 	  {
 #ifdef BERTDEV
@@ -266,6 +294,11 @@ G4HadFinalState* G4CascadeInterface::ApplyYourself(const G4HadProjectile& aTrack
 	    output = collider->collide(bullet, target );
 	    nTries++;
 
+            // Temporary check of final state (DHW June 2010)
+            G4CascadeMomentum momCheck = output.getTotalOutputMomentum();
+            finalE = momCheck[0];
+            initE = bullet->getEnergy() + target->getMass();
+//            G4cout << " finalE = " << finalE << " , initE = " << initE << G4endl;
 #ifdef BERTDEV
 	    G4double coulumbBarrier = 8.7 * MeV; 
 	    std::vector<G4InuclElementaryParticle> p= output.getOutgoingParticles();
@@ -282,18 +315,118 @@ G4HadFinalState* G4CascadeInterface::ApplyYourself(const G4HadProjectile& aTrack
 		  (nTries < maxTries) &&  // conditions for next try
 		  (coulombOK==1) &&
 		  ((output.getOutgoingParticles().size() + output.getNucleiFragments().size()) > 2.5) &&  
-		  (output.getOutgoingParticles().size()!=0)                                        
+		  (output.getOutgoingParticles().size()!=0) && 
 		  );
 #else
+	//AND->: Check baryon number
+	//Initial state baryon number
+	sumBaryon = G4int(theNucleusA);
+	if (bulletType == proton || bulletType == neutron || bulletType == lambda ||
+	    bulletType == sigmaPlus || bulletType == sigmaZero || bulletType == sigmaMinus ||
+	    bulletType == xiZero || bulletType == xiMinus) {
+	  sumBaryon += 1;
+	} 
+	//Final state baryon number
+	std::vector<G4InuclElementaryParticle> particles = output.getOutgoingParticles();
+	particleIterator itp_end = particles.end();
+	for ( particleIterator itp = particles.begin(); itp != itp_end ; ++itp ) {
+	    if ( itp->baryon() ) {
+	      sumBaryon -= 1;
+	    }
+	}
+	std::vector<G4InuclNuclei> nucleiFragments = output.getNucleiFragments();
+	nucleiIterator itnuc_end = nucleiFragments.end();
+	for ( nucleiIterator itnuc = nucleiFragments.begin() ; itnuc != itnuc_end ; ++itnuc ) {
+	  sumBaryon -= G4int(itnuc->getA());
+	}
+	//AND<-
+//            G4cout << " ntries = " << nTries << G4endl;
+//            if (finalE > 1.05*initE) G4cout << " diff = " << finalE - initE << G4endl;
 
-	  } while(
-		   (nTries < maxTries)                                                               &&
-		   (output.getOutgoingParticles().size() + output.getNucleiFragments().size() < 2.5) &&
-		   (output.getOutgoingParticles().size()!=0) &&
-                   (output.getOutgoingParticles().begin()->type()==bullet->type())
-		   );
+	    //AND-> Add some printout in case of a re-try of interaction
+	if (verboseLevel > 0)
+	  {
+	    if ( finalE > 1.05*initE )
+	      {
+		G4cout<<"***WARNING*** G4CascadeInterface::ApplyYourself() : final state E="<<finalE/GeV<<" GeV, initial state E="
+		      <<initE/GeV<<" GeV. Re-trying interaction."<<G4endl;
+	      }
+	    if ( sumBaryon != 0 )
+	      {
+		G4cout<<"***WARNING*** G4CascadeInterface::ApplyYourself() : Baryon number non conservation Initial-Final="
+		      <<sumBaryon<<". Re-trying interaction."<<G4endl;
+	      }
+	  }
+	//AND<-
+      } while(
+	      ((nTries < maxTries) &&
+	       (output.getOutgoingParticles().size() + output.getNucleiFragments().size() < 2.5) &&
+	       (output.getOutgoingParticles().size()!=0) &&
+	       (output.getOutgoingParticles().begin()->type()==bullet->type()) ) ||
+	      ( (finalE > 1.05*initE) && (nTries < maxTries) ) || //AND: add check on max tries to avoid infinite loopers
+	      ( (sumBaryon!=0) && (nTries < maxTries) )//AND: add check on baryon number conservation 
+	      );
+
+      //AND-> Error handling...
+      if ((verboseLevel > 0) && ( nTries == maxTries )) 
+	{
+	  G4cout<<"***WARNING*** In G4CascadeInterface::ApplyYourself() : maximum number "<<(maxTries)<<" of re-tries reached"<<G4endl;
+	}
+      if ( finalE > 1.05*initE )
+	{
+	  G4cerr<<"***ERROR*** G4CascadeInterface::ApplyYourself() : final state E="<<finalE/GeV
+		<<" GeV, initial state E="<<initE/GeV<<" GeV and maximum re-tries reached. Dumping info on standard output."<<G4endl;
+	  G4cout<<"Bullet info:"<<G4endl;
+	  bullet->printParticle();
+	  G4cout<<"Target:"<<G4endl;
+	  G4cout<<"A="<<theNucleusA<<" Z="<<theNucleus.GetZ()<<G4endl;
+	  G4cout<<"Dumping list of out-particles:"<<G4endl;
+	  std::vector<G4InuclElementaryParticle>::const_iterator it_end=output.getOutgoingParticles().end();
+	  std::vector<G4InuclElementaryParticle>::const_iterator it=output.getOutgoingParticles().begin();
+	  std::vector<G4InuclNuclei>::const_iterator nit_end=output.getNucleiFragments().end();
+	  std::vector<G4InuclNuclei>::const_iterator nit=output.getNucleiFragments().begin();
+	  for ( ; it != it_end ; ++it )
+	    {
+	      G4cout<<"   ";
+	      it->printParticle();
+	    }
+	  G4cout<<"Dumping list of fragments:"<<G4endl;
+	  for ( ; nit != nit_end; ++nit )
+	    {
+	      G4cout<<"   ";
+	      nit->printParticle();
+	    }
+	  throw G4HadronicException(__FILE__, __LINE__, "G4CascadeInterface::ApplyYourself() - Energy non-conservation. More info in output.");
+	}
+      if ( sumBaryon )
+	{
+	  G4cerr<<"***ERROR*** G4CascadeInterface::ApplyYourself() : Baryon number non conservation Initial-Final="<<sumBaryon
+		<<" and maximum re-tries reached. Dumping info on standard output."<<G4endl;
+	  G4cout<<"Bullet info:"<<G4endl;
+	  bullet->printParticle();
+	  G4cout<<"Target:"<<G4endl;
+	  G4cout<<"A="<<theNucleusA<<" Z="<<theNucleus.GetZ()<<G4endl;
+	  G4cout<<"Dumping list of out-particles:"<<G4endl;
+	  std::vector<G4InuclElementaryParticle>::const_iterator it_end=output.getOutgoingParticles().end();
+	  std::vector<G4InuclElementaryParticle>::const_iterator it=output.getOutgoingParticles().begin();
+	  std::vector<G4InuclNuclei>::const_iterator nit_end=output.getNucleiFragments().end();
+	  std::vector<G4InuclNuclei>::const_iterator nit=output.getNucleiFragments().begin();
+	  for ( ; it != it_end ; ++it )
+	    {
+	      G4cout<<"   ";
+	      it->printParticle();
+	    }
+	  G4cout<<"Dumping list of fragments:"<<G4endl;
+	  for ( ; nit != nit_end; ++nit )
+	    {
+	      G4cout<<"   ";
+	      nit->printParticle();
+	    }
+	  throw G4HadronicException(__FILE__, __LINE__, "G4CascadeInterface::ApplyYourself() - Baryon number non-conservation. More info in output.");
+	}
+      //AND<-
 #endif
-     }
+}
 
   if (verboseLevel > 1) 
     {
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/History b/source/processes/hadronic/models/chiral_inv_phase_space/body/History
index d549452a7b..98c912d625 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/body/History
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/History
@@ -12,6 +12,14 @@ code and to keep track of all tags.
      * Please list in reverse chronological order (last date on top)
      ---------------------------------------------------------------
 
+16-Jun-2010 Andrea Dotti                (hadr-chips-body-V09-01-05)
+-------------------------------------------------------------------
+- Fix in G4QEnvironment for a rare problem of anomalous event with high pT
+  jet observed in ATLAS, identified in a Gamma+A -> X reaction with gamma
+  energy of 2 GeV, for which at least one of the secondaries was created
+  with too much kinetic energy (up to 90 GeV).
+  Addresses problem report #1126 and relates only to 9.2 release series.
+
 31-Mar-2008 Dennis Wright               (hadr-chips-body-V09-01-04)
 -------------------------------------------------------------------
 - add more parentheses around && within || to satisfy gcc-4.3 compiler
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc
index 7b8c75b78f..e3476a1326 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc
@@ -27,14 +27,14 @@
 //34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
 //
 //
-// $Id: G4QEnvironment.cc,v 1.137 2008/03/31 20:30:00 dennis Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4QEnvironment.cc,v 1.137.2.1 2010/09/16 09:07:12 gcosmo Exp $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //      ---------------- G4QEnvironment ----------------
 //             by Mikhail Kossov, August 2000.
 //  class for Multy Quasmon Environment used by the CHIPS Model
 // ------------------------------------------------------------
- 
+
 //#define debug
 //#define pdebug
 //#define qdebug
@@ -57,550 +57,550 @@ using namespace std;
 
 G4QEnvironment::G4QEnvironment(const G4QNucleus theEnv) : theEnvironment(theEnv)
 {
-  G4int envPDG=theEnv.GetPDG();
-  G4QPDGCode envQPDG(envPDG);
-  G4int    envA=envQPDG.GetBaryNum();
-  G4double envM=envQPDG.GetMass();
-  totCharge=envQPDG.GetCharge();
-  totBaryoN=envA;
-  tot4Mom=G4LorentzVector(0.,0.,0.,envM);
+ G4int envPDG=theEnv.GetPDG();
+ G4QPDGCode envQPDG(envPDG);
+ G4int    envA=envQPDG.GetBaryNum();
+ G4double envM=envQPDG.GetMass();
+ totCharge=envQPDG.GetCharge();
+ totBaryoN=envA;
+ tot4Mom=G4LorentzVector(0.,0.,0.,envM);
 #ifdef debug
 		G4cout<<"G4QEnviron::Const: t4M="<<tot4Mom<<",tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
 }
 
 G4QEnvironment::G4QEnvironment(const G4QHadronVector& projHadrons, const G4int targPDG) :
-  theEnvironment(90000000)                   // User is responsible for projHadrons(Vector)
+ theEnvironment(90000000)                   // User is responsible for projHadrons(Vector)
 {
-  //static const G4double mNeut= G4QPDGCode(2112).GetMass();
-  //static const G4QContent neutQC(2,1,0,0,0,0);
-  static const G4QPDGCode pimQPDG(-211);
-  theWorld= G4QCHIPSWorld::Get();            // Get a pointer to the CHIPS World
-  G4bool fake=false;                         // At present only fake pi-
-  theTargetPDG=targPDG;                      // Remenber it for error message
-  G4int nHadrons=projHadrons.size();         // A#of hadrons in the input Vector
+ //static const G4double mNeut= G4QPDGCode(2112).GetMass();
+ //static const G4QContent neutQC(2,1,0,0,0,0);
+ static const G4QPDGCode pimQPDG(-211);
+ theWorld= G4QCHIPSWorld::Get();            // Get a pointer to the CHIPS World
+ G4bool fake=false;                         // At present only fake pi-
+ theTargetPDG=targPDG;                      // Remenber it for error message
+ G4int nHadrons=projHadrons.size();         // A#of hadrons in the input Vector
 #ifdef debug
-  G4cout<<">>>>>>G4QE::Const: Called targPDG="<<targPDG<<", nInpHadr="<<nHadrons<<G4endl;
+ G4cout<<">>>>>>G4QE::Const: Called targPDG="<<targPDG<<", nInpHadr="<<nHadrons<<G4endl;
 #endif
-  if(nHadrons<1 || targPDG==90000000)        // No projectile Hadrons or no target Nucleus
-  {
-    G4cout<<"---Warning---G4QEnv::Const:a#ofINPHadr="<<nHadrons<<",tPDG="<<targPDG<<G4endl;
-    //throw G4QException("***G4QEnvironment: There is no one projectile or vacuum target");
-    if(nHadrons)                             // The projectiles are copied to the output
+ if(nHadrons<1 || targPDG==90000000)        // No projectile Hadrons or no target Nucleus
+ {
+   G4cout<<"---Warning---G4QEnv::Const:a#ofINPHadr="<<nHadrons<<",tPDG="<<targPDG<<G4endl;
+   //throw G4QException("***G4QEnvironment: There is no one projectile or vacuum target");
+   if(nHadrons)                             // The projectiles are copied to the output
 	   {
-      for(G4int ih=0; ih<nHadrons; ih++)
-      {
-        G4QHadron* curQH    = new G4QHadron(projHadrons[ih]);
+     for(G4int ih=0; ih<nHadrons; ih++)
+     {
+       G4QHadron* curQH    = new G4QHadron(projHadrons[ih]);
 #ifdef pdebug
-        G4cout<<"*G4QE::Const:iH#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
+       G4cout<<"*G4QE::Const:iH#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
 #endif
-        theQHadrons.push_back(curQH);        // (delete equivalent)
-        curQH    = new G4QHadron(projHadrons[ih]); // ... to remember
-        theProjectiles.push_back(curQH);      // Remenber it for the error message
-      }
+       theQHadrons.push_back(curQH);        // (delete equivalent)
+       curQH    = new G4QHadron(projHadrons[ih]); // ... to remember
+       theProjectiles.push_back(curQH);      // Remenber it for the error message
+     }
 	   }
-    else if(targPDG!=90000000)               // No projHadrons,fill targetNucleus to output
-    {
-      G4QHadron* curQH    = new G4QHadron(targPDG);
+   else if(targPDG!=90000000)               // No projHadrons,fill targetNucleus to output
+   {
+     G4QHadron* curQH    = new G4QHadron(targPDG);
 #ifdef pdebug
-      G4cout<<"**G4QE::Const:No iHad,eH="<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
+     G4cout<<"**G4QE::Const:No iHad,eH="<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
 #endif
-      theQHadrons.push_back(curQH);          // (delete equivalent)
-    }
-    if (nHadrons<0) G4cout<<"**G4QE::Const:NH="<<nHadrons<<" < 0 !"<<G4endl;
-    return;
-  }
-  G4QPDGCode targQPDG(targPDG);
+     theQHadrons.push_back(curQH);          // (delete equivalent)
+   }
+   if (nHadrons<0) G4cout<<"**G4QE::Const:NH="<<nHadrons<<" < 0 !"<<G4endl;
+   return;
+ }
+ G4QPDGCode targQPDG(targPDG);
 #ifdef pdebug
-  G4cout<<"G4QE::C:targQPDG="<<targQPDG<<G4endl;
+ G4cout<<"G4QE::C:targQPDG="<<targQPDG<<G4endl;
 #endif
-  G4int    targA=targQPDG.GetBaryNum();
-  G4double targM=targQPDG.GetMass();
-  totCharge=targQPDG.GetCharge();
-  totBaryoN=targA;
-  tot4Mom=G4LorentzVector(0.,0.,0.,targM);
-  // === Print out of the input information at Creation time & tot 4-mom Calculation ======
+ G4int    targA=targQPDG.GetBaryNum();
+ G4double targM=targQPDG.GetMass();
+ totCharge=targQPDG.GetCharge();
+ totBaryoN=targA;
+ tot4Mom=G4LorentzVector(0.,0.,0.,targM);
+ // === Print out of the input information at Creation time & tot 4-mom Calculation ======
 #ifdef pdebug
-  G4cout<<"G4QE::C:PDG="<<targPDG<<",C="<<totCharge<<",M="<<targM<<",n="<<nHadrons<<G4endl;
+ G4cout<<"G4QE::C:PDG="<<targPDG<<",C="<<totCharge<<",M="<<targM<<",n="<<nHadrons<<G4endl;
 #endif
-  for(G4int ipr=0; ipr<nHadrons; ipr++)// LOOP is used for the tot4Mom calc. & for printing
-  {
-    G4QHadron* prHadr = projHadrons[ipr];
-    G4QHadron* curQH  = new G4QHadron(prHadr);// Remenber it for _
-    theProjectiles.push_back(curQH);          // the error message
-    G4LorentzVector h4Mom = prHadr->Get4Momentum();
-    tot4Mom      += h4Mom;
-    totCharge    += prHadr->GetCharge();
-    totBaryoN    += prHadr->GetBaryonNumber();
+ for(G4int ipr=0; ipr<nHadrons; ipr++)// LOOP is used for the tot4Mom calc. & for printing
+ {
+   G4QHadron* prHadr = projHadrons[ipr];
+   G4QHadron* curQH  = new G4QHadron(prHadr);// Remenber it for _
+   theProjectiles.push_back(curQH);          // the error message
+   G4LorentzVector h4Mom = prHadr->Get4Momentum();
+   tot4Mom      += h4Mom;
+   totCharge    += prHadr->GetCharge();
+   totBaryoN    += prHadr->GetBaryonNumber();
 #ifdef pdebug
-    G4int           hPDG  = prHadr->GetPDGCode();
-    G4int           hNFrag= prHadr->GetNFragments();
-    G4QContent      hQC   = prHadr->GetQC();
-    G4cout<<"G4QE::C:#"<<ipr<<",PDG="<<hPDG<<hQC<<",4M="<<h4Mom<<",hNFr="<<hNFrag<<G4endl;
+   G4int           hPDG  = prHadr->GetPDGCode();
+   G4int           hNFrag= prHadr->GetNFragments();
+   G4QContent      hQC   = prHadr->GetQC();
+   G4cout<<"G4QE::C:#"<<ipr<<",PDG="<<hPDG<<hQC<<",4M="<<h4Mom<<",hNFr="<<hNFrag<<G4endl;
 #endif
-  }
+ }
 #ifdef pdebug
-  G4cout<<"G4QEnv::Const:tC="<<totCharge<<",tB="<<totBaryoN<<",tot4M="<<tot4Mom<<G4endl;
+ G4cout<<"G4QEnv::Const:tC="<<totCharge<<",tB="<<totBaryoN<<",tot4M="<<tot4Mom<<G4endl;
 #endif
 #ifdef pdebug
-  G4cout<<"G4QEnv::Const: ----> tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
+ G4cout<<"G4QEnv::Const: ----> tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
-  G4int nP=theWorld->GetQPEntries();         // A#of init'ed particles in CHIPS World
-  G4int nCl=nP-90;                           // A#of init'ed clusters in CHIPS World
+ G4int nP=theWorld->GetQPEntries();         // A#of init'ed particles in CHIPS World
+ G4int nCl=nP-90;                           // A#of init'ed clusters in CHIPS World
 #ifdef pdebug
-  G4cout<<"G4QEnv:Const:Before NCI:n="<<nP<<",F="<<projHadrons[0]->GetNFragments()<<",tC="
-        <<totCharge<<",tB="<<totBaryoN<<G4endl;
+ G4cout<<"G4QEnv:Const:Before NCI:n="<<nP<<",F="<<projHadrons[0]->GetNFragments()<<",tC="
+       <<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
-  InitClustersVector(nCl,targA);             // Init Clusters as Particles (to interact)
+ InitClustersVector(nCl,targA);             // Init Clusters as Particles (to interact)
 #ifdef pdebug
-  G4cout<<"G4QEnv::Const:NucClust,n="<<nCl<<",F="<<projHadrons[0]->GetNFragments()<<",tC="
-        <<totCharge<<",tB="<<totBaryoN<<G4endl;
+ G4cout<<"G4QEnv::Const:NucClust,n="<<nCl<<",F="<<projHadrons[0]->GetNFragments()<<",tC="
+       <<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
-  if(targPDG>80000000)                        // ==> Nuclear target (including NUCPDG)
-  {
-    theEnvironment.InitByPDG(targPDG);        // Create nuclear environment
+ if(targPDG>80000000)                        // ==> Nuclear target (including NUCPDG)
+ {
+   theEnvironment.InitByPDG(targPDG);        // Create nuclear environment
 #ifdef pdebug
-    G4cout<<"G4QEnv::Const:nH="<<nHadrons<<",PDG="<<projHadrons[0]->GetPDGCode()<<",tC="
-          <<totCharge<<",tB="<<totBaryoN<<G4endl;
+   G4cout<<"G4QEnv::Const:nH="<<nHadrons<<",PDG="<<projHadrons[0]->GetPDGCode()<<",tC="
+         <<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
-    if(nHadrons==1)
+   if(nHadrons==1)
 	   {
-      G4QHadron* opHad=projHadrons[0];
-      G4int opPDG=opHad->GetPDGCode();
+     G4QHadron* opHad=projHadrons[0];
+     G4int opPDG=opHad->GetPDGCode();
 #ifdef pdebug
-      G4cout<<"G4QEnviron::Constructor: *** Only one input hadron*** PDG="<<opPDG<<G4endl;
+     G4cout<<"G4QEnviron::Constructor: *** Only one input hadron*** PDG="<<opPDG<<G4endl;
 #endif
-      if(opPDG==22)                           // *** Check photon's NuclearSplitThreshold
+     if(opPDG==22)                           // *** Check photon's NuclearSplitThreshold
 	     {
-        G4double exMass=tot4Mom.m();
+       G4double exMass=tot4Mom.m();
 #ifdef pdebug
-        G4cout<<"G4QEnvironment::Const: exM="<<exMass-targM<<" > mPi0 ?"<<G4endl;
+       G4cout<<"G4QEnvironment::Const: exM="<<exMass-targM<<" > mPi0 ?"<<G4endl;
 #endif      
-        if(exMass<targM+135.977) // Nucleus is below the pion production threshold
+       if(exMass<targM+135.977) // Nucleus is below the pion production threshold
 	       {
-          G4QNucleus exEnviron(tot4Mom,targPDG);
-          // @@ One can put here the pbpt= (M.K.) @@ What about d,t,alpha splitting?
-          if(targM>999.&&!exEnviron.SplitBaryon())//Nucleus is below SplitFragmentThreshold
+         G4QNucleus exEnviron(tot4Mom,targPDG);
+         // @@ One can put here the pbpt= (M.K.) @@ What about d,t,alpha splitting?
+         if(targM>999.&&!exEnviron.SplitBaryon())//Nucleus is below SplitFragmentThreshold
 		        {
 #ifdef pdebug
-            G4cout<<"G4QEnv::Const:Photon's added to Output, Env="<<theEnvironment<<G4endl;
+           G4cout<<"G4QEnv::Const:Photon's added to Output, Env="<<theEnvironment<<G4endl;
 #endif      
-            G4QHadron* photon = new G4QHadron(opHad); // Fill projPhoton to Output
+           G4QHadron* photon = new G4QHadron(opHad); // Fill projPhoton to Output
 #ifdef pdebug
-            G4cout<<"**G4QE::Const:Phot="<<photon->GetQC()<<photon->Get4Momentum()<<G4endl;
+           G4cout<<"**G4QE::Const:Phot="<<photon->GetQC()<<photon->Get4Momentum()<<G4endl;
 #endif
-            theQHadrons.push_back(photon);      // (delete equivalent)
-            return;
+           theQHadrons.push_back(photon);      // (delete equivalent)
+           return;
 		        }
-          else if(targM<=999.)                  // Target is a nucleon
+         else if(targM<=999.)                  // Target is a nucleon
 	         {
-            G4LorentzVector prot4m(0.,0.,0.,targM); // Prototype of secondary proton 4mom
-            G4LorentzVector gam4m(0.,0.,0.,0.);     // Prototype for secondary gamma 4mom
-            if(!G4QHadron(tot4Mom).DecayIn2(prot4m,gam4m))
-            {
+           G4LorentzVector prot4m(0.,0.,0.,targM); // Prototype of secondary proton 4mom
+           G4LorentzVector gam4m(0.,0.,0.,0.);     // Prototype for secondary gamma 4mom
+           if(!G4QHadron(tot4Mom).DecayIn2(prot4m,gam4m))
+           {
 #ifdef pdebug
-              G4cout<<"*War*G4QEnv::Const:(P)Photon->Output, Env="<<theEnvironment<<G4endl;
+             G4cout<<"*War*G4QEnv::Const:(P)Photon->Output, Env="<<theEnvironment<<G4endl;
 #endif      
-              G4QHadron* photon = new G4QHadron(opHad); // Fill projPhoton to Output
+             G4QHadron* photon = new G4QHadron(opHad); // Fill projPhoton to Output
 #ifdef pdebug
-              G4cout<<"**G4QE::Const:Ph="<<photon->GetQC()<<photon->Get4Momentum()<<G4endl;
+             G4cout<<"**G4QE::Const:Ph="<<photon->GetQC()<<photon->Get4Momentum()<<G4endl;
 #endif
-              theQHadrons.push_back(photon);    // (delete equivalent)
-              return;
-            }
-            G4QHadron* proton = new G4QHadron(targPDG,prot4m); // Fill tgProton to Output
-            theQHadrons.push_back(proton);      // (delete equivalent)
-            G4QHadron* photon = new G4QHadron(22,gam4m);       // Fill prPhoton to Output
-            theQHadrons.push_back(photon);      // (delete equivalent)
-            theEnvironment.InitByPDG(90000000); // Create nuclear environment
+             theQHadrons.push_back(photon);    // (delete equivalent)
+             return;
+           }
+           G4QHadron* proton = new G4QHadron(targPDG,prot4m); // Fill tgProton to Output
+           theQHadrons.push_back(proton);      // (delete equivalent)
+           G4QHadron* photon = new G4QHadron(22,gam4m);       // Fill prPhoton to Output
+           theQHadrons.push_back(photon);      // (delete equivalent)
+           theEnvironment.InitByPDG(90000000); // Create nuclear environment
 #ifdef pdebug
-            G4cout<<"G4QEnv::Const:Fill gamma and N from gam+N"<<targPDG<<prot4m<<G4endl;
+           G4cout<<"G4QEnv::Const:Fill gamma and N from gam+N"<<targPDG<<prot4m<<G4endl;
 #endif      
-            return;
-          }
-        }
-      }
-      else if(opPDG==13 || opPDG==15)
+           return;
+         }
+       }
+     }
+     else if(opPDG==13 || opPDG==15)
 	     {
-        G4int         nuPDG=14;
-        if(opPDG==15) nuPDG=16;
+       G4int         nuPDG=14;
+       if(opPDG==15) nuPDG=16;
 		      G4LorentzVector mu4m=opHad->Get4Momentum();
-        //G4double qpen=-180.*log(G4UniformRand()); // Energy of target-quark-parton(T=180)
-        G4double qpen=465.*sqrt(sqrt(G4UniformRand())); // UniformDistr for 3-q nucleon
-        G4double qpct=2*G4UniformRand()-1.;         // Cos(thet) of target-quark-parton
-        G4double qpst=sqrt(1.-qpct*qpct);           // Sin(theta) of target-quark-parton
-        G4double qppt=qpen*qpst;                    // PT of target-quark-parton
-        G4double qphi=twopi*G4UniformRand();        // Phi of target-quark-parton
-        G4LorentzVector qi4m(qppt*sin(qphi),qppt*cos(qphi),qpen*qpct,qpen); // quark-parton
-        G4LorentzVector qt4m=mu4m+qi4m;             // Total 4mom (iniQP+lepton)
-        G4LorentzVector nu4m(0.,0.,0.,0.);          // Prototype of secondary neutrino 4mom
-        G4LorentzVector qf4m(0.,0.,0.,0.);          // Prototype for secondary quark-parton
-        G4QContent targQC=targQPDG.GetQuarkContent(); // QC of the target nucleus (local!)
-        targQC+=G4QContent(1,0,0,0,1,0);      // Make iso-shift with fake pi- is added
-        G4LorentzVector fn4m=G4LorentzVector(0.,0.,0.,0.); // Prototype of the residual 4M
-        G4QNucleus fnN(targQC,fn4m);          // Define the final state nucleus
-        G4double   fnm=fnN.GetMZNS();         // GS Mass of the final state nucleus
-        //G4QContent resiQC=targQC-neutQC; // QC of resid nucleus (-neutron)
-        //G4QNucleus rsN(resiQC,fn4m);          // Define the final state nucleus
-        //G4double   rsm=rsN.GetMZNS()+mNeut;   // GS Mass of residual nucleus w/o neutron
-        G4double   tm=0.;                     // Prototype of RealMass of the final nucleus
-        G4LorentzVector tg4m=G4LorentzVector(0.,0.,0.,targM); // 4mom of all target nucleus
-        G4LorentzVector fd4m=tg4m-qi4m;       // 4mom of the residual coloured nuclear sys.
-#ifdef pdebug
-        //G4cout<<">>>G4QEnv::Const:rM="<<rsm<<",fM="<<fnm<<",tM="<<targM<<G4endl;
-        G4cout<<"G4QEnvironment::Const:mu4M="<<mu4m<<",t4M="<<qt4m<<",tgQP="<<qi4m<<G4endl;
+       //G4double qpen=-180.*log(G4UniformRand()); // Energy of target-quark-parton(T=180)
+       G4double qpen=465.*sqrt(sqrt(G4UniformRand())); // UniformDistr for 3-q nucleon
+       G4double qpct=2*G4UniformRand()-1.;         // Cos(thet) of target-quark-parton
+       G4double qpst=sqrt(1.-qpct*qpct);           // Sin(theta) of target-quark-parton
+       G4double qppt=qpen*qpst;                    // PT of target-quark-parton
+       G4double qphi=twopi*G4UniformRand();        // Phi of target-quark-parton
+       G4LorentzVector qi4m(qppt*sin(qphi),qppt*cos(qphi),qpen*qpct,qpen); // quark-parton
+       G4LorentzVector qt4m=mu4m+qi4m;             // Total 4mom (iniQP+lepton)
+       G4LorentzVector nu4m(0.,0.,0.,0.);          // Prototype of secondary neutrino 4mom
+       G4LorentzVector qf4m(0.,0.,0.,0.);          // Prototype for secondary quark-parton
+       G4QContent targQC=targQPDG.GetQuarkContent(); // QC of the target nucleus (local!)
+       targQC+=G4QContent(1,0,0,0,1,0);      // Make iso-shift with fake pi- is added
+       G4LorentzVector fn4m=G4LorentzVector(0.,0.,0.,0.); // Prototype of the residual 4M
+       G4QNucleus fnN(targQC,fn4m);          // Define the final state nucleus
+       G4double   fnm=fnN.GetMZNS();         // GS Mass of the final state nucleus
+       //G4QContent resiQC=targQC-neutQC; // QC of resid nucleus (-neutron)
+       //G4QNucleus rsN(resiQC,fn4m);          // Define the final state nucleus
+       //G4double   rsm=rsN.GetMZNS()+mNeut;   // GS Mass of residual nucleus w/o neutron
+       G4double   tm=0.;                     // Prototype of RealMass of the final nucleus
+       G4LorentzVector tg4m=G4LorentzVector(0.,0.,0.,targM); // 4mom of all target nucleus
+       G4LorentzVector fd4m=tg4m-qi4m;       // 4mom of the residual coloured nuclear sys.
+#ifdef pdebug
+       //G4cout<<">>>G4QEnv::Const:rM="<<rsm<<",fM="<<fnm<<",tM="<<targM<<G4endl;
+       G4cout<<"G4QEnvironment::Const:mu4M="<<mu4m<<",t4M="<<qt4m<<",tgQP="<<qi4m<<G4endl;
 #endif      
-        while (tm<=fnm)
-        {
-          if(!G4QHadron(qt4m).DecayIn2(nu4m,qf4m))
-          {
-            G4cout<<"***G4QE::Constr:Muon error (1) 4M="<<mu4m<<". Fill as it is."<<G4endl;
-            G4QHadron* lepton = new G4QHadron(opHad); // Fill projMuon to Output
-            theQHadrons.push_back(lepton);        // (delete equivalent)
-            return;
-          }
+       while (tm<=fnm)
+       {
+         if(!G4QHadron(qt4m).DecayIn2(nu4m,qf4m))
+         {
+           G4cout<<"***G4QE::Constr:Muon error (1) 4M="<<mu4m<<". Fill as it is."<<G4endl;
+           G4QHadron* lepton = new G4QHadron(opHad); // Fill projMuon to Output
+           theQHadrons.push_back(lepton);        // (delete equivalent)
+           return;
+         }
 #ifdef mudebug
-          G4cout<<"G4QEnv::Const:i="<<qi4m<<",t="<<qt4m<<"->n="<<nu4m<<"+q="<<qf4m<<G4endl;
+         G4cout<<"G4QEnv::Const:i="<<qi4m<<",t="<<qt4m<<"->n="<<nu4m<<"+q="<<qf4m<<G4endl;
 #endif
-          fn4m=fd4m+qf4m;
-          tm=fn4m.m();                 // Real mass of the final nucleus
+         fn4m=fd4m+qf4m;
+         tm=fn4m.m();                 // Real mass of the final nucleus
 #ifdef mudebug
-          G4cout<<"--G4QEnv::Const:M="<<tm<<",GSM=="<<fnm<<G4endl;
+         G4cout<<"--G4QEnv::Const:M="<<tm<<",GSM=="<<fnm<<G4endl;
 #endif
 		      }
 		      fnN.Set4Momentum(fn4m);
-        // (mu,q->nu,q) reaction succeded and Neutrino can be pushed to Output
-        G4QHadron* neutrino = 0;              // NeutrinoPrototype to be filled to Output
+       // (mu,q->nu,q) reaction succeded and Neutrino can be pushed to Output
+       G4QHadron* neutrino = 0;              // NeutrinoPrototype to be filled to Output
 #ifdef mudebug
-        G4cout<<"G4QEnv::Const:fM="<<tm<<fn4m<<",GSM="<<fnm<<G4endl;
+       G4cout<<"G4QEnv::Const:fM="<<tm<<fn4m<<",GSM="<<fnm<<G4endl;
 #endif      
-        if(tm<fnm)                            // Final Nucleus is below the GS threshold
+       if(tm<fnm)                            // Final Nucleus is below the GS threshold
 		      {
-          qf4m=G4LorentzVector(0.,0.,0.,fnm); // Final nucleus 4M for the final decay
-          qt4m=tg4m+mu4m;
-          if(!G4QHadron(qt4m).DecayIn2(nu4m,qf4m)) // Decay in Nucleus+nu_mu
-          {
-            G4cout<<"***G4QE::Constr:Muon error (2) 4M="<<mu4m<<". Fill as it is."<<G4endl;
-            G4QHadron* muon = new G4QHadron(opHad); // Fill projMuon to Output
-            theQHadrons.push_back(muon);        // (delete equivalent)
-            return;
-          }
-          G4QHadron* fnuc = new G4QHadron(targQC,qf4m); // Fill Final Nucleus to Output
-          //theQHadrons.push_back(fnuc);      // (delete equivalent)
-          EvaporateResidual(fnuc);            // Try to evaporate residual (del. equiv.)
-          neutrino = new G4QHadron(nuPDG,nu4m);// Fill Neutrino to Output
-          theEnvironment.InitByPDG(90000000); // Create nuclear environment
-#ifdef pdebug
-          G4cout<<"G4QEnv::Const:Fill neutrino (1) "<<nuPDG<<nu4m<<G4endl;
+         qf4m=G4LorentzVector(0.,0.,0.,fnm); // Final nucleus 4M for the final decay
+         qt4m=tg4m+mu4m;
+         if(!G4QHadron(qt4m).DecayIn2(nu4m,qf4m)) // Decay in Nucleus+nu_mu
+         {
+           G4cout<<"***G4QE::Constr:Muon error (2) 4M="<<mu4m<<". Fill as it is."<<G4endl;
+           G4QHadron* muon = new G4QHadron(opHad); // Fill projMuon to Output
+           theQHadrons.push_back(muon);        // (delete equivalent)
+           return;
+         }
+         G4QHadron* fnuc = new G4QHadron(targQC,qf4m); // Fill Final Nucleus to Output
+         //theQHadrons.push_back(fnuc);      // (delete equivalent)
+         EvaporateResidual(fnuc);            // Try to evaporate residual (del. equiv.)
+         neutrino = new G4QHadron(nuPDG,nu4m);// Fill Neutrino to Output
+         theEnvironment.InitByPDG(90000000); // Create nuclear environment
+#ifdef pdebug
+         G4cout<<"G4QEnv::Const:Fill neutrino (1) "<<nuPDG<<nu4m<<G4endl;
 #endif      
-          theQHadrons.push_back(neutrino);    // (delete equivalent)
-          return;
-        }
-        neutrino = new G4QHadron(nuPDG,nu4m); // Fill Neutrino to Output
+         theQHadrons.push_back(neutrino);    // (delete equivalent)
+         return;
+       }
+       neutrino = new G4QHadron(nuPDG,nu4m); // Fill Neutrino to Output
 #ifdef pdebug
-        G4cout<<"G4QEnv::Const:Fill neutrino (2) "<<nuPDG<<nu4m<<G4endl;
+       G4cout<<"G4QEnv::Const:Fill neutrino (2) "<<nuPDG<<nu4m<<G4endl;
 #endif      
-        theQHadrons.push_back(neutrino);      // (delete equivalent)
-        if(tm<fnm+135.98)                     // FinalNucleus is below thePionThreshold(HE)
+       theQHadrons.push_back(neutrino);      // (delete equivalent)
+       if(tm<fnm+135.98)                     // FinalNucleus is below thePionThreshold(HE)
 	       {
-          if(!fnN.SplitBaryon()) // Final Nucleus is below the splittingFragmentThreshold
+         if(!fnN.SplitBaryon()) // Final Nucleus is below the splittingFragmentThreshold
 		        {
 #ifdef mudebug
-            G4cout<<"G4QEnv::Const: impossible to split nucleon after mu->nu"<<G4endl;
+           G4cout<<"G4QEnv::Const: impossible to split nucleon after mu->nu"<<G4endl;
 #endif      
-            G4LorentzVector ga4m(0.,0.,0.,0.);
-            qf4m=G4LorentzVector(0.,0.,0.,fnm);// Final nucleus 4M for the final decay
-            if(!G4QHadron(fn4m).DecayIn2(ga4m,qf4m)) // Decay in Nucleus+photon
-            {
-              G4cout<<"***G4QE::Constr:LepCapError(3),M="<<fn4m.m()<<"<"<<fnm<<G4endl;
-              G4QHadron* resid = new G4QHadron(targQC,qt4m); // Fill ResidNucleus to Output
-              theQHadrons.push_back(resid);   // (delete equivalent)
-              theEnvironment.InitByPDG(90000000);// Create nuclear environment
-              return;
-            }
-            G4QHadron* photon = new G4QHadron(22,ga4m); // Fill projPhoton to Output
-#ifdef pdebug
-            G4cout<<"G4QEnv::Const:Fill photon "<<ga4m<<G4endl;
+           G4LorentzVector ga4m(0.,0.,0.,0.);
+           qf4m=G4LorentzVector(0.,0.,0.,fnm);// Final nucleus 4M for the final decay
+           if(!G4QHadron(fn4m).DecayIn2(ga4m,qf4m)) // Decay in Nucleus+photon
+           {
+             G4cout<<"***G4QE::Constr:LepCapError(3),M="<<fn4m.m()<<"<"<<fnm<<G4endl;
+             G4QHadron* resid = new G4QHadron(targQC,qt4m); // Fill ResidNucleus to Output
+             theQHadrons.push_back(resid);   // (delete equivalent)
+             theEnvironment.InitByPDG(90000000);// Create nuclear environment
+             return;
+           }
+           G4QHadron* photon = new G4QHadron(22,ga4m); // Fill projPhoton to Output
+#ifdef pdebug
+           G4cout<<"G4QEnv::Const:Fill photon "<<ga4m<<G4endl;
 #endif      
-            theQHadrons.push_back(photon);    // (delete equivalent)
-            G4QHadron* fnuc = new G4QHadron(targQC,qf4m); // Fill Final Nucleus to Output
+           theQHadrons.push_back(photon);    // (delete equivalent)
+           G4QHadron* fnuc = new G4QHadron(targQC,qf4m); // Fill Final Nucleus to Output
 #ifdef pdebug
-            G4cout<<"G4QEnv::Const:Fill target "<<targQC<<qf4m<<" in any form"<<G4endl;
+           G4cout<<"G4QEnv::Const:Fill target "<<targQC<<qf4m<<" in any form"<<G4endl;
 #endif      
-            EvaporateResidual(fnuc);          // Try to evaporate residual (del. equiv.)
-            theEnvironment.InitByPDG(90000000);// Create nuclear environment
-            return;
+           EvaporateResidual(fnuc);          // Try to evaporate residual (del. equiv.)
+           theEnvironment.InitByPDG(90000000);// Create nuclear environment
+           return;
 										}
 	       }
-        // At this poin it is possible to convert mu- to pi-
-        fn4m=qf4m-qi4m;
-        opHad->SetQPDG(pimQPDG);              //Convert (mu-)u->d to (virt pi-)u->d capture
-        fake=false;                           // normal pi- for q-muon scattering
-        //fake=true;                          // fake pi- for q-muon scattering *****
-        //if(G4UniformRand()>.5) fake=false;  // normal pi- for q-muon scattering *****
-        opHad->Set4Momentum(fn4m);
-      }
-    }
-    for(G4int ih=0; ih<nHadrons; ih++)        // ==> The main LOOP over projQHadrons
-    {
-      G4QHadron* curHadr=projHadrons[ih];     // Pointer to current projectile Hadron
-      G4int hNFrag = curHadr->GetNFragments();// #0 means intermediate (skip)
-      G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-momenyum of the current projectile
-#ifdef pdebug
-      G4cout<<"G4QE:C:"<<ih<<",F="<<hNFrag<<",0="<<projHadrons[0]->GetNFragments()<<G4endl;
-#endif
-      if(!hNFrag&&ch4M.e()>0.)                // => "Final hadron" case
+       // At this poin it is possible to convert mu- to pi-
+       fn4m=qf4m-qi4m;
+       opHad->SetQPDG(pimQPDG);              //Convert (mu-)u->d to (virt pi-)u->d capture
+       fake=false;                           // normal pi- for q-muon scattering
+       //fake=true;                          // fake pi- for q-muon scattering *****
+       //if(G4UniformRand()>.5) fake=false;  // normal pi- for q-muon scattering *****
+       opHad->Set4Momentum(fn4m);
+     }
+   }
+   for(G4int ih=0; ih<nHadrons; ih++)        // ==> The main LOOP over projQHadrons
+   {
+     G4QHadron* curHadr=projHadrons[ih];     // Pointer to current projectile Hadron
+     G4int hNFrag = curHadr->GetNFragments();// #0 means intermediate (skip)
+     G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-momenyum of the current projectile
+#ifdef pdebug
+     G4cout<<"G4QE:C:"<<ih<<",F="<<hNFrag<<",0="<<projHadrons[0]->GetNFragments()<<G4endl;
+#endif
+     if(!hNFrag&&ch4M.e()>0.)                // => "Final hadron" case
 	     {
-        G4int envPDG=theEnvironment.GetPDG();
-        if(envPDG==90000000||(theEnvironment.Get4Momentum().m2())<1.) // ==>"Vacuum"
-        {
-          G4int hPDG  = curHadr->GetPDGCode();// A PDG Code of the projQHadron
-          //if(!hPDG||hPDG==10)        // Check for the validity of the QHadron (@@ 10 OK?)
-          if(!hPDG)          // Check for the validity of the QHadron
-          {
-            //G4cerr<<"--Warning--G4QEnvironment::Constructor: wrong PDG("<<ih<<")="<<hPDG
-            //    <<", HQC="<<curHadr->GetQC()<<", HM="<<curHadr->GetMass()<<G4endl;
-            //throw G4QException("***G4QEnvironment::Constructor: theInputHadron is Chip");
-          }
-          else
-          {
-            G4int hQ = curHadr->GetQCode();  // One more check for valid of the QHadron
-            if(hQ<0)
+       G4int envPDG=theEnvironment.GetPDG();
+       if(envPDG==90000000||(theEnvironment.Get4Momentum().m2())<1.) // ==>"Vacuum"
+       {
+         G4int hPDG  = curHadr->GetPDGCode();// A PDG Code of the projQHadron
+         //if(!hPDG||hPDG==10)        // Check for the validity of the QHadron (@@ 10 OK?)
+         if(!hPDG)          // Check for the validity of the QHadron
+         {
+           //G4cerr<<"--Warning--G4QEnvironment::Constructor: wrong PDG("<<ih<<")="<<hPDG
+           //    <<", HQC="<<curHadr->GetQC()<<", HM="<<curHadr->GetMass()<<G4endl;
+           //throw G4QException("***G4QEnvironment::Constructor: theInputHadron is Chip");
+         }
+         else
+         {
+           G4int hQ = curHadr->GetQCode();  // One more check for valid of the QHadron
+           if(hQ<0)
 	           {
-              //G4cerr<<"--Warning--G4QEnv::Constructor:Q<0, PDG=("<<ih<<")"<<hPDG<<G4endl;
-              //throw G4QException("***G4QEnvironment::Constructor:theInputHadron is bad");
+             //G4cerr<<"--Warning--G4QEnv::Constructor:Q<0, PDG=("<<ih<<")"<<hPDG<<G4endl;
+             //throw G4QException("***G4QEnvironment::Constructor:theInputHadron is bad");
 	           }
-            else
-            {
-              G4QHadron* newHadr = new G4QHadron(curHadr);
-#ifdef pdebug
-              G4cout<<"*G4QE::Const:H="<<newHadr->GetQC()<<newHadr->Get4Momentum()<<G4endl;
-#endif
-              theQHadrons.push_back(newHadr); // Fill existing hadron (delete equivalent)
-#ifdef pdebug
-              G4cout<<"G4QEnviron::Constructor: Fill h="<<hPDG<<ch4M<<G4endl;
-              for(unsigned ipo=0; ipo<theQHadrons.size(); ipo++) // LOOP just for printing
-              {
-                G4int           hPDG  = theQHadrons[ipo]->GetPDGCode();
-                G4LorentzVector h4Mom = theQHadrons[ipo]->Get4Momentum();
-                G4int           hNFrag= theQHadrons[ipo]->GetNFragments();
-                G4QContent      hQC   = theQHadrons[ipo]->GetQC();
-                G4cout<<"h#"<<ipo<<": "<<hPDG<<hQC<<",4M="<<h4Mom<<",nFr="<<hNFrag<<G4endl;
-              }
-#endif
-            } // End of Q-Code check
-          } // End of proper PDG for i-th Hadron
-        }
-        else                                  // Nuclear Environment still exists
+           else
+           {
+             G4QHadron* newHadr = new G4QHadron(curHadr);
+#ifdef pdebug
+             G4cout<<"*G4QE::Const:H="<<newHadr->GetQC()<<newHadr->Get4Momentum()<<G4endl;
+#endif
+             theQHadrons.push_back(newHadr); // Fill existing hadron (delete equivalent)
+#ifdef pdebug
+             G4cout<<"G4QEnviron::Constructor: Fill h="<<hPDG<<ch4M<<G4endl;
+             for(unsigned ipo=0; ipo<theQHadrons.size(); ipo++) // LOOP just for printing
+             {
+               G4int           hPDG  = theQHadrons[ipo]->GetPDGCode();
+               G4LorentzVector h4Mom = theQHadrons[ipo]->Get4Momentum();
+               G4int           hNFrag= theQHadrons[ipo]->GetNFragments();
+               G4QContent      hQC   = theQHadrons[ipo]->GetQC();
+               G4cout<<"h#"<<ipo<<": "<<hPDG<<hQC<<",4M="<<h4Mom<<",nFr="<<hNFrag<<G4endl;
+             }
+#endif
+           } // End of Q-Code check
+         } // End of proper PDG for i-th Hadron
+       }
+       else                                  // Nuclear Environment still exists
 		      {
-          G4QContent      hQC   = curHadr->GetQC();
+         G4QContent      hQC   = curHadr->GetQC();
 #ifdef pdebug
-          G4cout<<"G4QE::Const:CreateQuasm, 4M="<<ch4M<<",QC="<<hQC<<",E="<<envPDG<<",tC="
-                <<totCharge<<",tB="<<totBaryoN<<G4endl;
+         G4cout<<"G4QE::Const:CreateQuasm, 4M="<<ch4M<<",QC="<<hQC<<",E="<<envPDG<<",tC="
+               <<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
-          CreateQuasmon(hQC, ch4M,fake);
+         CreateQuasmon(hQC, ch4M,fake);
 		      } // End of Existing Nuclear Environment case
 	     } // End of final hadron case
-    } // End of the LOOP over input hadrons
-  } // End of nuclear target case (including neutron=90000001 & proton=90001000)
-  else                                        // => "Unique hadron" case
-  {
-    // the nuclEnviron is already init'ed as vacuum + get the first hadron for interaction
-    G4QHadron* curHadr=projHadrons[0];        // Pointer to the firstProjecHadron (checked)
-    G4int hPDG  = curHadr->GetPDGCode();      // A PDG Code of the projQHadron
-    if(!hPDG||hPDG==10)                       // Check for the validity of the QHadron
-    {
-      G4cout<<"---Warning---G4QEnvironment::Constructor:Vacuum,1st Hadron wrong PDG="<<hPDG
-            <<", HQC="<<curHadr->GetQC()<<", HM="<<curHadr->GetMass()<<G4endl;
-      //throw G4QException("***G4QEnvironment::Constructor: Fiest input Hadron is wrong");
-    }
-    else
-    {
-      G4int hQ = curHadr->GetQCode();         // One more check for valid of the QHadron
-      if(hQ<0)
+   } // End of the LOOP over input hadrons
+ } // End of nuclear target case (including neutron=90000001 & proton=90001000)
+ else                                        // => "Unique hadron" case
+ {
+   // the nuclEnviron is already init'ed as vacuum + get the first hadron for interaction
+   G4QHadron* curHadr=projHadrons[0];        // Pointer to the firstProjecHadron (checked)
+   G4int hPDG  = curHadr->GetPDGCode();      // A PDG Code of the projQHadron
+   if(!hPDG||hPDG==10)                       // Check for the validity of the QHadron
+   {
+     G4cout<<"---Warning---G4QEnvironment::Constructor:Vacuum,1st Hadron wrong PDG="<<hPDG
+           <<", HQC="<<curHadr->GetQC()<<", HM="<<curHadr->GetMass()<<G4endl;
+     //throw G4QException("***G4QEnvironment::Constructor: Fiest input Hadron is wrong");
+   }
+   else
+   {
+     G4int hQ = curHadr->GetQCode();         // One more check for valid of the QHadron
+     if(hQ<0)
 	     {
-        G4cout<<"---Warning---G4QEnviron::Constructor:Vacuum,Q<0, 1st HPDG="<<hPDG<<G4endl;
-        //throw G4QException("***G4QEnvironment::Constructor:theFirstInputHadron's wrong");
+       G4cout<<"---Warning---G4QEnviron::Constructor:Vacuum,Q<0, 1st HPDG="<<hPDG<<G4endl;
+       //throw G4QException("***G4QEnvironment::Constructor:theFirstInputHadron's wrong");
 	     }
-      else                                // Now we can get 4Mom &  QC of incedent particle
-      {
-        G4LorentzVector h4Mom = curHadr->Get4Momentum();
-        G4QContent      hQC   = curHadr->GetQC();
-        if(!targPDG||targPDG==10) G4cout<<"G4QEnv::CreateQ; (1) PDG="<<targPDG<<G4endl;
-        G4QPDGCode      tQPDG(targPDG);
-        G4int           tQ    = tQPDG.GetQCode();
-        if(tQ<0||targPDG==10)
+     else                                // Now we can get 4Mom &  QC of incedent particle
+     {
+       G4LorentzVector h4Mom = curHadr->Get4Momentum();
+       G4QContent      hQC   = curHadr->GetQC();
+       if(!targPDG||targPDG==10) G4cout<<"G4QEnv::CreateQ; (1) PDG="<<targPDG<<G4endl;
+       G4QPDGCode      tQPDG(targPDG);
+       G4int           tQ    = tQPDG.GetQCode();
+       if(tQ<0||targPDG==10)
 		      {
-          G4cout<<"---Warning---G4QEnv::Constructor:TrgQC<0, Chipo?,PDG="<<targPDG<<G4endl;
-          //throw G4QException("***G4QEnvironment::Constructor: Target is wrong");
+         G4cout<<"---Warning---G4QEnv::Constructor:TrgQC<0, Chipo?,PDG="<<targPDG<<G4endl;
+         //throw G4QException("***G4QEnvironment::Constructor: Target is wrong");
 		      }
-        else                                 // Now we can create a unique Quasmon
+       else                                 // Now we can create a unique Quasmon
 		      {
-          h4Mom+=G4LorentzVector(0.,0.,0.,tQPDG.GetMass()); //Projectile + TargetHadron
-          hQC+=tQPDG.GetQuarkContent();
+         h4Mom+=G4LorentzVector(0.,0.,0.,tQPDG.GetMass()); //Projectile + TargetHadron
+         hQC+=tQPDG.GetQuarkContent();
 #ifdef pdebug
-          G4cout<<"G4QEnv::Const:VacHadrTarg="<<h4Mom<<hQC<<",E="<<theEnvironment<<G4endl;
+         G4cout<<"G4QEnv::Const:VacHadrTarg="<<h4Mom<<hQC<<",E="<<theEnvironment<<G4endl;
 #endif
-          G4Quasmon* curQuasmon = new G4Quasmon(hQC, h4Mom);
-          theQuasmons.push_back(curQuasmon); // Insert Quasmon or hadron/gamma (del. eq.)
+         G4Quasmon* curQuasmon = new G4Quasmon(hQC, h4Mom);
+         theQuasmons.push_back(curQuasmon); // Insert Quasmon or hadron/gamma (del. eq.)
 		      }
-      } // End of Q-Code check
-    } // End of proper PDG for i-th Hadron
-    if(nHadrons>1) for(G4int ih=0; ih<nHadrons; ih++) // fill other Hadrons to Output
+     } // End of Q-Code check
+   } // End of proper PDG for i-th Hadron
+   if(nHadrons>1) for(G4int ih=0; ih<nHadrons; ih++) // fill other Hadrons to Output
 	   {
-      G4QHadron* newHadr = new G4QHadron(curHadr);
+     G4QHadron* newHadr = new G4QHadron(curHadr);
 #ifdef pdebug
-      G4cout<<"*G4QE::Const:#"<<ih<<","<<curHadr->GetQC()<<curHadr->Get4Momentum()<<G4endl;
+     G4cout<<"*G4QE::Const:#"<<ih<<","<<curHadr->GetQC()<<curHadr->Get4Momentum()<<G4endl;
 #endif
-      theQHadrons.push_back(newHadr);        // Fill existing hadron (delete equivalent)
+     theQHadrons.push_back(newHadr);        // Fill existing hadron (delete equivalent)
 	   }
-  } // End of Unique Hadron target treatment
+ } // End of Unique Hadron target treatment
 #ifdef chdebug
-  G4int finCharge=theEnvironment.GetCharge();
-  G4int finBaryoN=theEnvironment.GetA();
-  G4int nHad=theQHadrons.size();
-  if(nHad) for(G4int ih=0; ih<nHad; ih++)
-  {
-    finCharge+=theQHadrons[ih]->GetCharge();
-    finBaryoN+=theQHadrons[ih]->GetBaryonNumber();
-  }
-  G4int nQuas=theQuasmons.size();
-  if(nQuas) for(G4int iq=0; iq<nQuas; iq++)
-  {
-    finCharge+=theQuasmons[iq]->GetCharge();
-    finBaryoN+=theQuasmons[iq]->GetBaryonNumber();
-  }
-  if(finCharge!=totCharge || finBaryoN!=totBaryoN)
-  {
-    G4cout<<"***G4QEnv::C:tC="<<totCharge<<",C="<<finCharge<<",tB="<<totBaryoN
-          <<",B="<<finBaryoN<<",E="<<theEnvironment<<G4endl;
-    if(nHad) for(G4int h=0; h<nHad; h++)
-    {
-      G4QHadron* cH = theQHadrons[h];
-      G4cout<<"::G4QE::C:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
-    }
-    if(nQuas) for(G4int q=0; q<nQuas; q++)
-    {
-      G4Quasmon* cQ = theQuasmons[q];
-      G4cout<<"::G4QE::C:q#"<<q<<",C="<<cQ->GetCharge()<<",QuarkCon="<<cQ->GetQC()<<G4endl;
-    }
-  }
+ G4int finCharge=theEnvironment.GetCharge();
+ G4int finBaryoN=theEnvironment.GetA();
+ G4int nHad=theQHadrons.size();
+ if(nHad) for(G4int ih=0; ih<nHad; ih++)
+ {
+   finCharge+=theQHadrons[ih]->GetCharge();
+   finBaryoN+=theQHadrons[ih]->GetBaryonNumber();
+ }
+ G4int nQuas=theQuasmons.size();
+ if(nQuas) for(G4int iq=0; iq<nQuas; iq++)
+ {
+   finCharge+=theQuasmons[iq]->GetCharge();
+   finBaryoN+=theQuasmons[iq]->GetBaryonNumber();
+ }
+ if(finCharge!=totCharge || finBaryoN!=totBaryoN)
+ {
+   G4cout<<"***G4QEnv::C:tC="<<totCharge<<",C="<<finCharge<<",tB="<<totBaryoN
+         <<",B="<<finBaryoN<<",E="<<theEnvironment<<G4endl;
+   if(nHad) for(G4int h=0; h<nHad; h++)
+   {
+     G4QHadron* cH = theQHadrons[h];
+     G4cout<<"::G4QE::C:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
+   }
+   if(nQuas) for(G4int q=0; q<nQuas; q++)
+   {
+     G4Quasmon* cQ = theQuasmons[q];
+     G4cout<<"::G4QE::C:q#"<<q<<",C="<<cQ->GetCharge()<<",QuarkCon="<<cQ->GetQC()<<G4endl;
+   }
+ }
 #endif
 } // End of the G4QEnvironment constructor
 
 G4QEnvironment::G4QEnvironment(const G4QEnvironment &right)
 {
-  // theQHadrons (Vector)
-  G4int nQH             = right.theQHadrons.size();
-  if(nQH) for(G4int ih=0; ih<nQH; ih++)
-  {
-    G4QHadron* curQH    = new G4QHadron(right.theQHadrons[ih]);
-#ifdef pdebug
-    G4cout<<"G4QE::CopyByVal:cH#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
-#endif
-    theQHadrons.push_back(curQH);            // (delete equivalent)
-  }
-  // theProjectiles (Vector)
-  G4int nP              = right.theProjectiles.size();
-  if(nP) for(G4int ip=0; ip<nP; ip++)
-  {
-    G4QHadron* curP     = new G4QHadron(right.theProjectiles[ip]);
-    theProjectiles.push_back(curP);           // (delete equivalent)
-  }
-  theTargetPDG          = right.theTargetPDG;
-  theWorld              = right.theWorld;
-  nBarClust             = right.nBarClust;
-  f2all                 = right.f2all;
-  tot4Mom               = right.tot4Mom;
-  totCharge             = right.totCharge;
-  totBaryoN             = right.totBaryoN;
+ // theQHadrons (Vector)
+ G4int nQH             = right.theQHadrons.size();
+ if(nQH) for(G4int ih=0; ih<nQH; ih++)
+ {
+   G4QHadron* curQH    = new G4QHadron(right.theQHadrons[ih]);
+#ifdef pdebug
+   G4cout<<"G4QE::CopyByVal:cH#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
+#endif
+   theQHadrons.push_back(curQH);            // (delete equivalent)
+ }
+ // theProjectiles (Vector)
+ G4int nP              = right.theProjectiles.size();
+ if(nP) for(G4int ip=0; ip<nP; ip++)
+ {
+   G4QHadron* curP     = new G4QHadron(right.theProjectiles[ip]);
+   theProjectiles.push_back(curP);           // (delete equivalent)
+ }
+ theTargetPDG          = right.theTargetPDG;
+ theWorld              = right.theWorld;
+ nBarClust             = right.nBarClust;
+ f2all                 = right.f2all;
+ tot4Mom               = right.tot4Mom;
+ totCharge             = right.totCharge;
+ totBaryoN             = right.totBaryoN;
 
-  // theQuasmons (Vector)
-  G4int nQ              = right.theQuasmons.size();
-  if(nQ) for(G4int iq=0; iq<nQ; iq++)
-  {
-    G4Quasmon* curQ     = new G4Quasmon(right.theQuasmons[iq]);
-    theQuasmons.push_back(curQ);             // (delete equivalent)
-  }
+ // theQuasmons (Vector)
+ G4int nQ              = right.theQuasmons.size();
+ if(nQ) for(G4int iq=0; iq<nQ; iq++)
+ {
+   G4Quasmon* curQ     = new G4Quasmon(right.theQuasmons[iq]);
+   theQuasmons.push_back(curQ);             // (delete equivalent)
+ }
 
-  // theQCandidates (Vector)
-  G4int nQC             = right.theQCandidates.size();
-  if(nQC) for(G4int ic=0; ic<nQC; ic++)
-  {
-    G4QCandidate* curQC = new G4QCandidate(right.theQCandidates[ic]);
-    theQCandidates.push_back(curQC);         // (delete equivalent)
-  }
+ // theQCandidates (Vector)
+ G4int nQC             = right.theQCandidates.size();
+ if(nQC) for(G4int ic=0; ic<nQC; ic++)
+ {
+   G4QCandidate* curQC = new G4QCandidate(right.theQCandidates[ic]);
+   theQCandidates.push_back(curQC);         // (delete equivalent)
+ }
 
-  theEnvironment        = right.theEnvironment;
+ theEnvironment        = right.theEnvironment;
 }
 
 G4QEnvironment::G4QEnvironment(G4QEnvironment* right)
 {
-  // theQHadrons (Vector)
-  G4int nQH             = right->theQHadrons.size();
-  if(nQH) for(G4int ih=0; ih<nQH; ih++)
-  {
-    G4QHadron* curQH    = new G4QHadron(right->theQHadrons[ih]);
+ // theQHadrons (Vector)
+ G4int nQH             = right->theQHadrons.size();
+ if(nQH) for(G4int ih=0; ih<nQH; ih++)
+ {
+   G4QHadron* curQH    = new G4QHadron(right->theQHadrons[ih]);
 #ifdef pdebug
-    G4cout<<"G4QE::CopyByPtr:cH#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
+   G4cout<<"G4QE::CopyByPtr:cH#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
 #endif
-    theQHadrons.push_back(curQH);            // (delete equivalent)
-  }
+   theQHadrons.push_back(curQH);            // (delete equivalent)
+ }
 
-  // theProjectiles (Vector)
-  G4int nP              = right->theProjectiles.size();
-  if(nP) for(G4int ip=0; ip<nP; ip++)
-  {
-    G4QHadron* curP     = new G4QHadron(right->theProjectiles[ip]);
-    theProjectiles.push_back(curP);           // (delete equivalent)
-  }
-  theTargetPDG          = right->theTargetPDG;
-  theWorld              = right->theWorld;
-  nBarClust             = right->nBarClust;
-  f2all                 = right->f2all;
-  tot4Mom               = right->tot4Mom;
-  totCharge             = right->totCharge;
-  totBaryoN             = right->totBaryoN;
+ // theProjectiles (Vector)
+ G4int nP              = right->theProjectiles.size();
+ if(nP) for(G4int ip=0; ip<nP; ip++)
+ {
+   G4QHadron* curP     = new G4QHadron(right->theProjectiles[ip]);
+   theProjectiles.push_back(curP);           // (delete equivalent)
+ }
+ theTargetPDG          = right->theTargetPDG;
+ theWorld              = right->theWorld;
+ nBarClust             = right->nBarClust;
+ f2all                 = right->f2all;
+ tot4Mom               = right->tot4Mom;
+ totCharge             = right->totCharge;
+ totBaryoN             = right->totBaryoN;
 
-  // theQuasmons (Vector)
-  G4int nQ              = right->theQuasmons.size();
-  if(nQ) for(G4int iq=0; iq<nQ; iq++)
-  {
-    G4Quasmon* curQ     = new G4Quasmon(right->theQuasmons[iq]);
-    theQuasmons.push_back(curQ);             // (delete equivalent)
-  }
+ // theQuasmons (Vector)
+ G4int nQ              = right->theQuasmons.size();
+ if(nQ) for(G4int iq=0; iq<nQ; iq++)
+ {
+   G4Quasmon* curQ     = new G4Quasmon(right->theQuasmons[iq]);
+   theQuasmons.push_back(curQ);             // (delete equivalent)
+ }
 
-  // theQCandidates (Vector)
-  G4int nQC             = right->theQCandidates.size();
-  if(nQC) for(G4int ic=0; ic<nQC; ic++)
-  {
-    G4QCandidate* curQC = new G4QCandidate(right->theQCandidates[ic]);
-    theQCandidates.push_back(curQC);         // (delete equivalent)
-  }
+ // theQCandidates (Vector)
+ G4int nQC             = right->theQCandidates.size();
+ if(nQC) for(G4int ic=0; ic<nQC; ic++)
+ {
+   G4QCandidate* curQC = new G4QCandidate(right->theQCandidates[ic]);
+   theQCandidates.push_back(curQC);         // (delete equivalent)
+ }
 
-  theEnvironment        = right->theEnvironment;
+ theEnvironment        = right->theEnvironment;
 }
 
 G4QEnvironment::~G4QEnvironment()
 {
 #ifdef debug
-  G4cout<<"~G4QEnvironment: before theQCandidates nC="<<theQCandidates.size()<<G4endl;
+ G4cout<<"~G4QEnvironment: before theQCandidates nC="<<theQCandidates.size()<<G4endl;
 #endif
-  for_each(theQCandidates.begin(), theQCandidates.end(), DeleteQCandidate());
+ for_each(theQCandidates.begin(), theQCandidates.end(), DeleteQCandidate());
 #ifdef debug
-  G4cout<<"~G4QEnvironment: before theQuasmons nQ="<<theQuasmons.size()<<G4endl;
+ G4cout<<"~G4QEnvironment: before theQuasmons nQ="<<theQuasmons.size()<<G4endl;
 #endif
-  for_each(theQuasmons.begin(), theQuasmons.end(), DeleteQuasmon());
+ for_each(theQuasmons.begin(), theQuasmons.end(), DeleteQuasmon());
 #ifdef debug
-  G4cout<<"~G4QEnvironment: before theQHadrons nH="<<theQHadrons.size()<<G4endl;
+ G4cout<<"~G4QEnvironment: before theQHadrons nH="<<theQHadrons.size()<<G4endl;
 #endif
-  for_each(theQHadrons.begin(), theQHadrons.end(), DeleteQHadron());
+ for_each(theQHadrons.begin(), theQHadrons.end(), DeleteQHadron());
 #ifdef debug
-  G4cout<<"~G4QEnvironment: before theProjectiles nP="<<theProjectiles.size()<<G4endl;
+ G4cout<<"~G4QEnvironment: before theProjectiles nP="<<theProjectiles.size()<<G4endl;
 #endif
-  for_each(theProjectiles.begin(), theProjectiles.end(), DeleteQHadron());
+ for_each(theProjectiles.begin(), theProjectiles.end(), DeleteQHadron());
 #ifdef debug
-  G4cout<<"~G4QEnvironment: === DONE ==="<<G4endl;
+ G4cout<<"~G4QEnvironment: === DONE ==="<<G4endl;
 #endif
 }
 
@@ -620,255 +620,255 @@ void G4QEnvironment::CloseElectromagneticDecays(){ElMaDecays=false;}
 
 // Fill the private static parameters
 void G4QEnvironment::SetParameters(G4double solAn, G4bool efFlag, G4double piThresh,
-                                   G4double mpisq, G4double dinum)
+                                  G4double mpisq, G4double dinum)
 {//  ======================================================================================
-  EnergyFlux=efFlag;       // Flag for Energy Flux use instead of Multy Quasmon
-  SolidAngle=solAn;        // Part of Solid Angle to capture secondaries (@@A-dep)
-  PiPrThresh=piThresh;     // Pion Production Threshold for gammas
-  M2ShiftVir=mpisq;        // Shift for M2=-Q2=m_pi^2 of the virtual gamma
-  DiNuclMass=dinum;        // Double Nucleon Mass for virtual normalization
+ EnergyFlux=efFlag;       // Flag for Energy Flux use instead of Multy Quasmon
+ SolidAngle=solAn;        // Part of Solid Angle to capture secondaries (@@A-dep)
+ PiPrThresh=piThresh;     // Pion Production Threshold for gammas
+ M2ShiftVir=mpisq;        // Shift for M2=-Q2=m_pi^2 of the virtual gamma
+ DiNuclMass=dinum;        // Double Nucleon Mass for virtual normalization
 }
 
 const G4QEnvironment& G4QEnvironment::operator=(const G4QEnvironment &right)
 {// ========================================================================
-  if(this != &right)                          // Beware of self assignment
-  {
-    // theQHadrons (Vector)
-    G4int iQH             = theQHadrons.size();
-    if(iQH) for(G4int ii=0; ii<iQH; ii++) delete theQHadrons[ii];
-    theQHadrons.clear();
-    G4int nQH             = right.theQHadrons.size();
-    if(nQH) for(G4int ih=0; ih<nQH; ih++)
-    {
-      G4QHadron* curQH    = new G4QHadron(right.theQHadrons[ih]);
-#ifdef pdebug
-      G4cout<<"G4QE::Operator=:c#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
-#endif
-      theQHadrons.push_back(curQH);            // (delete equivalent)
-    }
+ if(this != &right)                          // Beware of self assignment
+ {
+   // theQHadrons (Vector)
+   G4int iQH             = theQHadrons.size();
+   if(iQH) for(G4int ii=0; ii<iQH; ii++) delete theQHadrons[ii];
+   theQHadrons.clear();
+   G4int nQH             = right.theQHadrons.size();
+   if(nQH) for(G4int ih=0; ih<nQH; ih++)
+   {
+     G4QHadron* curQH    = new G4QHadron(right.theQHadrons[ih]);
+#ifdef pdebug
+     G4cout<<"G4QE::Operator=:c#"<<ih<<","<<curQH->GetQC()<<curQH->Get4Momentum()<<G4endl;
+#endif
+     theQHadrons.push_back(curQH);            // (delete equivalent)
+   }
 
-    theWorld              = right.theWorld;
-    nBarClust             = right.nBarClust;
-    f2all                 = right.f2all;
+   theWorld              = right.theWorld;
+   nBarClust             = right.nBarClust;
+   f2all                 = right.f2all;
 
-    // theQuasmons (Vector)
-    G4int iQ              = theQuasmons.size();
-    if(iQ) for(G4int jq=0; jq<iQ; jq++) delete theQuasmons[jq];
-    theQuasmons.clear();
-    G4int nQ              = right.theQuasmons.size();
-    if(nQ) for(G4int iq=0; iq<nQ; iq++)
-    {
-      G4Quasmon* curQ     = new G4Quasmon(right.theQuasmons[iq]);
-      theQuasmons.push_back(curQ);             // (delete equivalent)
-    }
+   // theQuasmons (Vector)
+   G4int iQ              = theQuasmons.size();
+   if(iQ) for(G4int jq=0; jq<iQ; jq++) delete theQuasmons[jq];
+   theQuasmons.clear();
+   G4int nQ              = right.theQuasmons.size();
+   if(nQ) for(G4int iq=0; iq<nQ; iq++)
+   {
+     G4Quasmon* curQ     = new G4Quasmon(right.theQuasmons[iq]);
+     theQuasmons.push_back(curQ);             // (delete equivalent)
+   }
 
-    // theQCandidates (Vector)
-    G4int iQC             = theQCandidates.size();
-    if(iQC) for(G4int jc=0; jc<iQC; jc++) delete theQCandidates[jc];
-    theQCandidates.clear();
-    G4int nQC             = right.theQCandidates.size();
-    if(nQC) for(G4int ic=0; ic<nQC; ic++)
-    {
-      G4QCandidate* curQC = new G4QCandidate(right.theQCandidates[ic]);
-      theQCandidates.push_back(curQC);        // (delete equivalent)
-    }
+   // theQCandidates (Vector)
+   G4int iQC             = theQCandidates.size();
+   if(iQC) for(G4int jc=0; jc<iQC; jc++) delete theQCandidates[jc];
+   theQCandidates.clear();
+   G4int nQC             = right.theQCandidates.size();
+   if(nQC) for(G4int ic=0; ic<nQC; ic++)
+   {
+     G4QCandidate* curQC = new G4QCandidate(right.theQCandidates[ic]);
+     theQCandidates.push_back(curQC);        // (delete equivalent)
+   }
 
-    theEnvironment        = right.theEnvironment;
-  }
-  return *this;
+   theEnvironment        = right.theEnvironment;
+ }
+ return *this;
 }
 
 // Member function for Quasmon Creation & Environment nucleus modification
 void G4QEnvironment::CreateQuasmon(const G4QContent& projQC, const G4LorentzVector& pro4M,
-                                   G4bool fake)
+                                  G4bool fake)
 {//=======================================================================================
-  static const G4double third=1./3.;
-  //static const G4double mNeut= G4QPDGCode(2112).GetMass();
-  //static const G4double mProt= G4QPDGCode(2212).GetMass();
-  //static const G4double mLamb= G4QPDGCode(3122).GetMass();
-  static const G4double mPi  = G4QPDGCode(211).GetMass();
-  static const G4double mPi2 = mPi*mPi;
-  //static const G4double mMu  = G4QPDGCode(13).GetMass();
-  //static const G4double mMu2 = mMu*mMu;
-  //static const G4QContent gamQC(0,0,0,0,0,0);
-  //static const G4QContent pimQC(1,0,0,0,1,0);
-  //static const G4QContent pipQC(0,1,0,1,0,0);
-  static const G4QContent neutQC(2,1,0,0,0,0);
-  static const G4QContent protQC(1,2,0,0,0,0);
-  static const G4QContent deutQC(3,3,0,0,0,0);
-  static const G4QContent lambQC(1,1,1,0,0,0);
-  static const G4QNucleus vacuum(90000000);
-  G4QContent valQ(0,0,0,0,0,0);             // Prototype of the Quasmon's Quark Content
-  G4LorentzVector q4Mom(0.,0.,0.,0.);       // Prototype of the Quasmon's 4-momentum
-  nBarClust = 1;                            // By default only quasi-free nucleons
-  G4LorentzVector proj4M=pro4M;             // Fake equivalence to avoid & const
-  G4double  projE=proj4M.e();               // energy of the projectile
-  G4int projPDG=projQC.GetSPDGCode();     // Minimum hadron for the projectile QC
-  if(projE<0.)
-  {
-    G4cout<<"*Warning*G4QEnvironment::CreateQuasmon:Epr="<<projE<<"<0,QC="<<projQC<<G4endl;
-    projE=0.;
-    proj4M=G4LorentzVector(0.,0.,0.,0.);
-  }
-  G4double  projM2=proj4M.m2();             // projectile's squared mass (print & v.gamma)
-  G4int     targPDG=theEnvironment.GetPDG();// PDG Code of the target nucleus
-  if(targPDG>80000000&&targPDG!=90000000&&(theEnvironment.Get4Momentum().m2())>1.)//Nucleus
-  {
-    G4double  tgMass=theEnvironment.GetMass();// mass of the target (QEnvironment) nucleus
-#ifdef pdebug
-    G4cout<<"G4QEnvironment::CreateQ:Interact "<<projQC<<proj4M<<"(m2="<<projM2<<") + A="
-          <<targPDG<<",M="<<tgMass<<",tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
-#endif
-    G4int envZ=theEnvironment.GetZ();       // A#of protons in the target nucleus
-    G4int envN=theEnvironment.GetN();       // A#of neutrons in the target nucleus
-    G4int envS=theEnvironment.GetS();       // A#of lambdas in the target nucleus
-    G4int envBN=envZ+envN+envS;             // A baryon number of the target nucleus
-    G4int nP  =theWorld->GetQPEntries();    // A#of initialized particles in CHIPS World
-    G4int nCl =nP-90;                       // A#of initialized clusters in CHIPS World
-    if(nCl<0) G4cout<<"---Warning---G4QEnv::CreaQ:nP="<<nP<<" for Targ="<<targPDG<<G4endl;
-    if     (nCl<3) nBarClust=1;             // Fix the maximum Baryon Number for clusters
-    else if(nCl<9) nBarClust=2;
-    else
+ static const G4double third=1./3.;
+ //static const G4double mNeut= G4QPDGCode(2112).GetMass();
+ //static const G4double mProt= G4QPDGCode(2212).GetMass();
+ //static const G4double mLamb= G4QPDGCode(3122).GetMass();
+ static const G4double mPi  = G4QPDGCode(211).GetMass();
+ static const G4double mPi2 = mPi*mPi;
+ //static const G4double mMu  = G4QPDGCode(13).GetMass();
+ //static const G4double mMu2 = mMu*mMu;
+ //static const G4QContent gamQC(0,0,0,0,0,0);
+ //static const G4QContent pimQC(1,0,0,0,1,0);
+ //static const G4QContent pipQC(0,1,0,1,0,0);
+ static const G4QContent neutQC(2,1,0,0,0,0);
+ static const G4QContent protQC(1,2,0,0,0,0);
+ static const G4QContent deutQC(3,3,0,0,0,0);
+ static const G4QContent lambQC(1,1,1,0,0,0);
+ static const G4QNucleus vacuum(90000000);
+ G4QContent valQ(0,0,0,0,0,0);             // Prototype of the Quasmon's Quark Content
+ G4LorentzVector q4Mom(0.,0.,0.,0.);       // Prototype of the Quasmon's 4-momentum
+ nBarClust = 1;                            // By default only quasi-free nucleons
+ G4LorentzVector proj4M=pro4M;             // Fake equivalence to avoid & const
+ G4double  projE=proj4M.e();               // energy of the projectile
+ G4int projPDG=projQC.GetSPDGCode();     // Minimum hadron for the projectile QC
+ if(projE<0.)
+ {
+   G4cout<<"*Warning*G4QEnvironment::CreateQuasmon:Epr="<<projE<<"<0,QC="<<projQC<<G4endl;
+   projE=0.;
+   proj4M=G4LorentzVector(0.,0.,0.,0.);
+ }
+ G4double  projM2=proj4M.m2();             // projectile's squared mass (print & v.gamma)
+ G4int     targPDG=theEnvironment.GetPDG();// PDG Code of the target nucleus
+ if(targPDG>80000000&&targPDG!=90000000&&(theEnvironment.Get4Momentum().m2())>1.)//Nucleus
+ {
+   G4double  tgMass=theEnvironment.GetMass();// mass of the target (QEnvironment) nucleus
+#ifdef pdebug
+   G4cout<<"G4QEnvironment::CreateQ:Interact "<<projQC<<proj4M<<"(m2="<<projM2<<") + A="
+         <<targPDG<<",M="<<tgMass<<",tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
+#endif
+   G4int envZ=theEnvironment.GetZ();       // A#of protons in the target nucleus
+   G4int envN=theEnvironment.GetN();       // A#of neutrons in the target nucleus
+   G4int envS=theEnvironment.GetS();       // A#of lambdas in the target nucleus
+   G4int envBN=envZ+envN+envS;             // A baryon number of the target nucleus
+   G4int nP  =theWorld->GetQPEntries();    // A#of initialized particles in CHIPS World
+   G4int nCl =nP-90;                       // A#of initialized clusters in CHIPS World
+   if(nCl<0) G4cout<<"---Warning---G4QEnv::CreaQ:nP="<<nP<<" for Targ="<<targPDG<<G4endl;
+   if     (nCl<3) nBarClust=1;             // Fix the maximum Baryon Number for clusters
+   else if(nCl<9) nBarClust=2;
+   else
 	   {
-      G4int v=nCl-9;
-      G4int d=v/15;
-      G4int r=v%15;
-      if(r<7) nBarClust=3+d+d;
-      else    nBarClust=4+d+d;
-    }
+     G4int v=nCl-9;
+     G4int d=v/15;
+     G4int r=v%15;
+     if(r<7) nBarClust=3+d+d;
+     else    nBarClust=4+d+d;
+   }
 #ifdef pdebug
 	   G4cout<<"G4QE::CrQ:TNuc:Z="<<envZ<<",N="<<envN<<",nC="<<nBarClust<<",tC="
-          <<totCharge<<", tB="<<totBaryoN<<G4endl;
-#endif
-    G4bool pbpt=projE<PiPrThresh+(M2ShiftVir+projM2)/DiNuclMass;// PhotonBelowPionThreshold
-    G4bool din=false;
-    G4bool piF=false;
-    G4bool gaF=false;
-    if((projM2-mPi2<.00001||projE-mPi<0.1)&&projPDG==-211&&!fake) piF=true;//PiAtRestCase
-    //if(pbpt&&projPDG==22) din=true; // InCaseOf GammaBelowPiThresh needs DiNucl (?)
-    if(pbpt&&projPDG==22) gaF=true; // InCaseOf GammaBelowPiThresh needs DiNucl (?)
-    theEnvironment.SetMaxClust(nBarClust);
-    nBarClust=theEnvironment.UpdateClusters(din); // Cluster Probabilities upto maxClust
+         <<totCharge<<", tB="<<totBaryoN<<G4endl;
+#endif
+   G4bool pbpt=projE<PiPrThresh+(M2ShiftVir+projM2)/DiNuclMass;// PhotonBelowPionThreshold
+   G4bool din=false;
+   G4bool piF=false;
+   G4bool gaF=false;
+   if((projM2-mPi2<.00001||projE-mPi<0.1)&&projPDG==-211&&!fake) piF=true;//PiAtRestCase
+   //if(pbpt&&projPDG==22) din=true; // InCaseOf GammaBelowPiThresh needs DiNucl (?)
+   if(pbpt&&projPDG==22) gaF=true; // InCaseOf GammaBelowPiThresh needs DiNucl (?)
+   theEnvironment.SetMaxClust(nBarClust);
+   nBarClust=theEnvironment.UpdateClusters(din); // Cluster Probabilities upto maxClust
 #ifdef pdebug
 	   G4cout<<"G4QEnv::CreateQ: Nucleus("<<targPDG<<") is created ("<<nBarClust<<" clast's)";
-    for(G4int ic=0;ic<nBarClust;ic++)
-      G4cout<<" #"<<ic<<"("<<theEnvironment.GetProbability(ic)<<")";
-    G4cout<<G4endl;
+   for(G4int ic=0;ic<nBarClust;ic++)
+     G4cout<<" #"<<ic<<"("<<theEnvironment.GetProbability(ic)<<")";
+   G4cout<<G4endl;
 #endif
-    theEnvironment.PrepareCandidates(theQCandidates,piF,gaF,proj4M);//Calc.Clust's probab's
-    G4QNucleus memEnviron=theEnvironment;
+   theEnvironment.PrepareCandidates(theQCandidates,piF,gaF,proj4M);//Calc.Clust's probab's
+   G4QNucleus memEnviron=theEnvironment;
 #ifdef pdebug
 	   G4cout<<"G4QE::CrQ:ClusterProbabCalculation tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
-    G4bool efFlag=false;                    // EnergyFlowFlag=FALSE (@@=DEFOLT=@@ make par)
-    // ********** Change if necessary to compare Energy Flux & Multy Quasmon **************
-    G4int efCounter=0;                      // Counter of Energy Flux particles
-    G4QContent EnFlQC(0,0,0,0,0,0);         // Quark Content of Energy Flux
-    G4LorentzVector ef4Mom(0.,0.,0.,0.);    // Summed 4-momentum of Energy Flux
-    G4double proj3M=proj4M.rho();
-    //   ---   Pbar     ---    Nbar  -------  LAMBDAbar  ----  SIGMA-bar  ---  SIGMA0bar
-    if((projPDG==-2212||projPDG==-2112||projPDG==-3122||projPDG==-3112||projPDG==-3212||
-        projPDG==-3222) && envBN>1 && proj3M<10.) // OnlyForAtRestReactions(@@to Interface)
+   G4bool efFlag=false;                    // EnergyFlowFlag=FALSE (@@=DEFOLT=@@ make par)
+   // ********** Change if necessary to compare Energy Flux & Multy Quasmon **************
+   G4int efCounter=0;                      // Counter of Energy Flux particles
+   G4QContent EnFlQC(0,0,0,0,0,0);         // Quark Content of Energy Flux
+   G4LorentzVector ef4Mom(0.,0.,0.,0.);    // Summed 4-momentum of Energy Flux
+   G4double proj3M=proj4M.rho();
+   //   ---   Pbar     ---    Nbar  -------  LAMBDAbar  ----  SIGMA-bar  ---  SIGMA0bar
+   if((projPDG==-2212||projPDG==-2112||projPDG==-3122||projPDG==-3112||projPDG==-3212||
+       projPDG==-3222) && envBN>1 && proj3M<10.) // OnlyForAtRestReactions(@@to Interface)
 	   //  ^^^^^  SIGMA+bar
 	   {
-      // @@ Annihilation on one baryon is implemented (no annihilation on clusters! @@?) @@
-#ifdef pdebug
-      G4cout<<"G4QE::CreQ:Annihilation on a perif. nucleon, Z="<<envZ<<",N="<<envN<<G4endl;
-#endif
-      G4double   zpn=envZ+envN;             // a#of nucleons in the nucleus
-      G4double   rnd=zpn*G4UniformRand();   // Random number to find a nucleon
-      //G4double   envD=.1*envZ*envN/zpn;   // a#of possible quasifree deuterons (@@Param.)
-      //G4double   rnd=(zpn+envD)*G4UniformRand(); // Random number to find a baryon
-      //G4double   rnd=(zpn+envS)*G4UniformRand(); // Random number to find a baryon
-      G4int      targNPDG = 90000000;       // Nucl-Prototype of PDG of Periferal Target
-      G4QContent targQC(0,0,0,0,0,0);       // Quark Content of Periferal Target
-      if     (rnd<envN)                     // Neutron is a Periferal Target
-      {
-        targNPDG = 90000001;
-        targQC   = neutQC;
+     // @@ Annihilation on one baryon is implemented (no annihilation on clusters! @@?) @@
+#ifdef pdebug
+     G4cout<<"G4QE::CreQ:Annihilation on a perif. nucleon, Z="<<envZ<<",N="<<envN<<G4endl;
+#endif
+     G4double   zpn=envZ+envN;             // a#of nucleons in the nucleus
+     G4double   rnd=zpn*G4UniformRand();   // Random number to find a nucleon
+     //G4double   envD=.1*envZ*envN/zpn;   // a#of possible quasifree deuterons (@@Param.)
+     //G4double   rnd=(zpn+envD)*G4UniformRand(); // Random number to find a baryon
+     //G4double   rnd=(zpn+envS)*G4UniformRand(); // Random number to find a baryon
+     G4int      targNPDG = 90000000;       // Nucl-Prototype of PDG of Periferal Target
+     G4QContent targQC(0,0,0,0,0,0);       // Quark Content of Periferal Target
+     if     (rnd<envN)                     // Neutron is a Periferal Target
+     {
+       targNPDG = 90000001;
+       targQC   = neutQC;
 	     }
-      else
+     else
 						//     if(rnd<=zpn)                      // Proton is a Periferal Target
-      {
-        targNPDG = 90001000;
-        targQC   = protQC;
+     {
+       targNPDG = 90001000;
+       targQC   = protQC;
 	     }
-      //else                                  // Deuteron as a Periferal Target
-      //{
-      //  targNPDG = 90001001;
-      //  targQC   = deutQC;
+     //else                                  // Deuteron as a Periferal Target
+     //{
+     //  targNPDG = 90001001;
+     //  targQC   = deutQC;
 	     //}
-      //else                                  // Lambda is a Periferal Target (?)
-      //{
-      //  targNPDG = 91000000;
-      //  targQC   = lambQC;
+     //else                                  // Lambda is a Periferal Target (?)
+     //{
+     //  targNPDG = 91000000;
+     //  targQC   = lambQC;
 	     //}
-      theEnvironment.Reduce(targNPDG);      // Subtract periferal baryon from Nucleus
+     theEnvironment.Reduce(targNPDG);      // Subtract periferal baryon from Nucleus
 #ifdef pdebug
-      G4cout<<"G4QEnvironment::CQ:"<<targNPDG<<" is selected Env="<<theEnvironment<<G4endl;
+     G4cout<<"G4QEnvironment::CQ:"<<targNPDG<<" is selected Env="<<theEnvironment<<G4endl;
 #endif
-      G4double resMass=theEnvironment.GetGSMass(); // Nuclear mass after baryon subtraction
-      G4double barMass=tgMass-resMass;      // Mass of the bound baryon for annihilation
-      tgMass=resMass;                       // New mass of theEnvironment
-      q4Mom=G4LorentzVector(0,0,0,barMass)+proj4M;// 4-mom of the intermediate B-Bbar Quasm
-      valQ=targQC+projQC;                   // Quark Content of intermediate B-Bbar Quasmon
-      // Remember the Quasmon parameters, defined by user for recovery after annihilation
-      G4Quasmon fakeQ;                      // fake Quasmon to get and restore parameters
-      G4double QTemper=fakeQ.GetTemper();   // Temperature defined by user for Quasmons
-      G4double QSOverU=fakeQ.GetSOverU();   // S/U defined by user for Quasmons
-      G4double QEtaSup=fakeQ.GetEtaSup();   // Eta Suppresion defined by user in Quasmons
-      G4Quasmon::SetParameters(180.,QSOverU,.3); // Parameters for N-barN Annihilation
-      G4Quasmon::CloseElectromagneticDecays(); // Parameters for N-barN Annihilation
-      G4Quasmon* pan = new G4Quasmon(valQ,q4Mom);// N-Nbar Quasm creation (del.at 9th line)
-      G4QNucleus vE(90000000);                 // Annihilation in vacuum (in NuclMatter?)
+     G4double resMass=theEnvironment.GetGSMass(); // Nuclear mass after baryon subtraction
+     G4double barMass=tgMass-resMass;      // Mass of the bound baryon for annihilation
+     tgMass=resMass;                       // New mass of theEnvironment
+     q4Mom=G4LorentzVector(0,0,0,barMass)+proj4M;// 4-mom of the intermediate B-Bbar Quasm
+     valQ=targQC+projQC;                   // Quark Content of intermediate B-Bbar Quasmon
+     // Remember the Quasmon parameters, defined by user for recovery after annihilation
+     G4Quasmon fakeQ;                      // fake Quasmon to get and restore parameters
+     G4double QTemper=fakeQ.GetTemper();   // Temperature defined by user for Quasmons
+     G4double QSOverU=fakeQ.GetSOverU();   // S/U defined by user for Quasmons
+     G4double QEtaSup=fakeQ.GetEtaSup();   // Eta Suppresion defined by user in Quasmons
+     G4Quasmon::SetParameters(180.,QSOverU,.3); // Parameters for N-barN Annihilation
+     G4Quasmon::CloseElectromagneticDecays(); // Parameters for N-barN Annihilation
+     G4Quasmon* pan = new G4Quasmon(valQ,q4Mom);// N-Nbar Quasm creation (del.at 9th line)
+     G4QNucleus vE(90000000);                 // Annihilation in vacuum (in NuclMatter?)
 #ifdef pdebug
-      G4cout<<"G4QE::CreQ: before Fragment, vE="<<vE<<",vP="<<vE.GetProbability()<<",QQC="
-            <<valQ<<",Q4M="<<q4Mom<<G4endl;
+     G4cout<<"G4QE::CreQ: before Fragment, vE="<<vE<<",vP="<<vE.GetProbability()<<",QQC="
+           <<valQ<<",Q4M="<<q4Mom<<G4endl;
 #endif
-      G4QHadronVector* output=pan->Fragment(vE,1);//Output of inVacAnnihilation*DESTROY*<-+
+     G4QHadronVector* output=pan->Fragment(vE,1);//Output of inVacAnnihilation*DESTROY*<-+
 #ifdef pdebug
-      G4cout<<"G4QE::CrQ:NucleonAntinucleonAnnihilation's done,N="<<output->size()<<G4endl;
+     G4cout<<"G4QE::CrQ:NucleonAntinucleonAnnihilation's done,N="<<output->size()<<G4endl;
 #endif
-      G4Quasmon::OpenElectromagneticDecays();  // Parameter for multihadronFragmentatation^
+     G4Quasmon::OpenElectromagneticDecays();  // Parameter for multihadronFragmentatation^
 #ifdef pdebug
 	     G4cout<<"G4QE::CrQ:>>AnnihilationIsDone,C="<<totCharge<<",B="<<totBaryoN<<G4endl;// ^
 #endif
-      delete pan;                              // The N-NbarQuasmon is deleted A.S.A.P.   ^
-      G4QHadronVector input;                   // Input for MultyQuasmon **DESTROY**<---+ ^
-      //G4int trgPDG = theEnvironment.GetPDG();// New PDG Code for the Residual Nucleus ^ ^
-      G4LorentzVector trg4M(0.,0.,0.,resMass); // New 4-momentum for the ResidualNucleus^ ^
-      G4int tNH = output->size();              // For the selection LOOP                ^ ^
-      G4ThreeVector dir = RndmDir();           // For the selection in LOOP (@@ at rest)^ ^
-      G4double ra=std::pow(G4double(totBaryoN),third);  //                              ^ ^
+     delete pan;                              // The N-NbarQuasmon is deleted A.S.A.P.   ^
+     G4QHadronVector input;                   // Input for MultyQuasmon **DESTROY**<---+ ^
+     //G4int trgPDG = theEnvironment.GetPDG();// New PDG Code for the Residual Nucleus ^ ^
+     G4LorentzVector trg4M(0.,0.,0.,resMass); // New 4-momentum for the ResidualNucleus^ ^
+     G4int tNH = output->size();              // For the selection LOOP                ^ ^
+     G4ThreeVector dir = RndmDir();           // For the selection in LOOP (@@ at rest)^ ^
+     G4double ra=std::pow(G4double(totBaryoN),third);  //                              ^ ^
 #ifdef pdebug
 	     G4cout<<"G4QE::CQ:N="<<tNH<<",T="<<totCharge<<","<<totBaryoN<<",A="<<ra<<G4endl;//^ ^
 #endif
-      for (G4int ind=0; ind<tNH; ind++)        // Loop over annihilation  QHadrons      ^ ^
-      {
-        //G4QHadron* curHadr = output->operator[](ind); // Pointer to theCurrentHadron  ^ ^
-        G4QHadron*   curHadr = (*output)[ind];          // Pointer to theCurrentHadron  ^ ^
-        G4int           shDFL= curHadr->GetNFragments();// A#of decFragments for proj.  ^ ^
-        G4LorentzVector sh4m = curHadr->Get4Momentum(); // 4Mom for the projectile      ^ ^
-        G4ThreeVector   shDIR= sh4m.vect().unit();      // unitVector in projMomDirect  ^ ^
-        G4int           shPDG= curHadr->GetPDGCode();   // PDG Code of the projectile   ^ ^
-        G4int           shCHG= curHadr->GetCharge();    // Charge of the projectile     ^ ^
-        G4double        shMOM= sh4m.rho();              // Momentum of the projectile   ^ ^
+     for (G4int ind=0; ind<tNH; ind++)        // Loop over annihilation  QHadrons      ^ ^
+     {
+       //G4QHadron* curHadr = output->operator[](ind); // Pointer to theCurrentHadron  ^ ^
+       G4QHadron*   curHadr = (*output)[ind];          // Pointer to theCurrentHadron  ^ ^
+       G4int           shDFL= curHadr->GetNFragments();// A#of decFragments for proj.  ^ ^
+       G4LorentzVector sh4m = curHadr->Get4Momentum(); // 4Mom for the projectile      ^ ^
+       G4ThreeVector   shDIR= sh4m.vect().unit();      // unitVector in projMomDirect  ^ ^
+       G4int           shPDG= curHadr->GetPDGCode();   // PDG Code of the projectile   ^ ^
+       G4int           shCHG= curHadr->GetCharge();    // Charge of the projectile     ^ ^
+       G4double        shMOM= sh4m.rho();              // Momentum of the projectile   ^ ^
 #ifdef pdebug
 		      G4cout<<"G4QE::CrQ:"<<ind<<","<<shDFL<<",PDG="<<shPDG<<",4M="<<sh4m<<G4endl; // ^ ^
 #endif
-        G4double solAnCut=SolidAngle;                   // Proto ChargeDependantSolAngle^ ^
-        if(fabs(ra)<.1) solAnCut=3.;                    // No Nucleus -> no absorption  ^ ^
-        else if(shMOM<.1)                               // Meson at rest                ^ ^
-        {                                               //                              ^ ^
-          if(shCHG<=0.) solAnCut=-3.;                   // Always totally absorbed      ^ ^
-          else           solAnCut=3.;                   // Positive are repelled from A ^ ^
-        }                                               //                              ^ ^
-        else     solAnCut+=1000*shCHG/shMOM/ra;         // ChargeDepSolAngle(Normal)    ^ ^
-        //G4double solAnCut=SolidAngle+20*shCHG*sqrt(1.*envZ)/shMOM;//ChargeDepSolAngle ^ ^
+       G4double solAnCut=SolidAngle;                   // Proto ChargeDependantSolAngle^ ^
+       if(fabs(ra)<.1) solAnCut=3.;                    // No Nucleus -> no absorption  ^ ^
+       else if(shMOM<.1)                               // Meson at rest                ^ ^
+       {                                               //                              ^ ^
+         if(shCHG<=0.) solAnCut=-3.;                   // Always totally absorbed      ^ ^
+         else           solAnCut=3.;                   // Positive are repelled from A ^ ^
+       }                                               //                              ^ ^
+       else     solAnCut+=1000*shCHG/shMOM/ra;         // ChargeDepSolAngle(Normal)    ^ ^
+       //G4double solAnCut=SolidAngle+20*shCHG*sqrt(1.*envZ)/shMOM;//ChargeDepSolAngle ^ ^
 #ifdef pdebug
 		      G4cout<<"G4QE::CrQ: PDG="<<shPDG<<", p="<<shMOM<<", r="<<ra<<G4endl; //         ^ ^
 #endif
-        if(!shDFL)                                      // Final(notDecayed) hadrons    ^ ^
+       if(!shDFL)                                      // Final(notDecayed) hadrons    ^ ^
 		      {
 #ifdef pdebug
 		        G4cout<<"G4QE::CQ:>H="<<shPDG<<":"<<dir.dot(shDIR)<<">"<<solAnCut<<G4endl; // ^ ^
@@ -880,25 +880,25 @@ void G4QEnvironment::CreateQuasmon(const G4QContent& projQC, const G4LorentzVect
 												G4cout<<"G4QE::CQ:>H="<<shPDG<<":"<<dir.dot(shDIR)<<">"<<solAnCut<<", P="// ^ ^
 																		<<shMOM<<" < 120"<<G4endl;                           //               ^ ^
 #endif
-            if(efFlag)                           // => Case of "Energy Flux approach"   ^ ^
+           if(efFlag)                           // => Case of "Energy Flux approach"   ^ ^
 		          {
-              G4QContent shQC = curHadr->GetQC();// QuarkContent of the Current Hadron  ^ ^
-              ef4Mom+=sh4m;
-              EnFlQC+=shQC;
-              efCounter++;
+             G4QContent shQC = curHadr->GetQC();// QuarkContent of the Current Hadron  ^ ^
+             ef4Mom+=sh4m;
+             EnFlQC+=shQC;
+             efCounter++;
 #ifdef pdebug
-              G4int hPDG=curHadr->GetPDGCode();    // Only for gebug printing           ^ ^
-              G4LorentzVector h4M = curHadr->Get4Momentum();  // Only for gebug printing^ ^
+             G4int hPDG=curHadr->GetPDGCode();    // Only for gebug printing           ^ ^
+             G4LorentzVector h4M = curHadr->Get4Momentum();  // Only for gebug printing^ ^
 			           G4cout<<"G4QE::CrQ:#"<<efCounter<<", PDG="<<hPDG<<", h4M="<<h4M<<G4endl;//^ ^
 #endif
 		          }
 		          else                                   //=>"MultyQuasFragmentation"(!efFlag)^ ^
 		          {
-              G4QHadron* mqHadron = new G4QHadron(curHadr);
-              input.push_back(mqHadron);           // Fill hadron-copy (del equiv)  <...^ ^
+             G4QHadron* mqHadron = new G4QHadron(curHadr);
+             input.push_back(mqHadron);           // Fill hadron-copy (del equiv)  <...^ ^
 #ifdef pdebug
-              G4int hPDG=curHadr->GetPDGCode();    // Only for debug printing           ^ ^
-              G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing ^ ^
+             G4int hPDG=curHadr->GetPDGCode();    // Only for debug printing           ^ ^
+             G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing ^ ^
 		            G4cout<<"G4QE::CrQ:Absorb#"<<ind<<", PDG="<<hPDG<<", h4M="<<h4M<<G4endl;//^ ^
 #endif
 		          }                                      //                                   ^ ^
@@ -906,329 +906,329 @@ void G4QEnvironment::CreateQuasmon(const G4QContent& projQC, const G4LorentzVect
 		        else                                     // DirectFilling of the output vector^ ^
 		        {                                        //                                   ^ ^
 #ifdef pdebug
-            G4int hPDG=curHadr->GetPDGCode();      // Only for gebug printing           ^ ^
-            G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing   ^ ^
+           G4int hPDG=curHadr->GetPDGCode();      // Only for gebug printing           ^ ^
+           G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing   ^ ^
 		          G4cout<<"G4QE::CrQ: Fill OUT #"<<ind<<",PDG="<<hPDG<<",h4M="<<h4M<<G4endl;//^ ^
 #endif
-            // Just fill a hadron to the output stack (One should make EM decays elsewhere)
-            G4QHadron* curHadron = new G4QHadron(curHadr); //                           ^ ^
-            theQHadrons.push_back(curHadron);      // TheQHadrs are filled as new Hadrs ^ ^
-          }
+           // Just fill a hadron to the output stack (One should make EM decays elsewhere)
+           G4QHadron* curHadron = new G4QHadron(curHadr); //                           ^ ^
+           theQHadrons.push_back(curHadron);      // TheQHadrs are filled as new Hadrs ^ ^
+         }
 		      } // End of the IF over projectiles                                             ^ ^
 	     } // End of LOOP over "output" of annihilation                                    ^ ^
-      for_each(output->begin(), output->end(), DeleteQHadron());     //DESTRUCT output>-^-^
-      output->clear();                             //                                   ^ ^
-      delete output;                               // ==================================^=^
-      if(!efFlag)                                  // =>NotEnergyFlux=MultyQuasmon Case ^
+     for_each(output->begin(), output->end(), DeleteQHadron());     //DESTRUCT output>-^-^
+     output->clear();                             //                                   ^ ^
+     delete output;                               // ==================================^=^
+     if(!efFlag)                                  // =>NotEnergyFlux=MultyQuasmon Case ^
 	     {
-        G4int noh = theQHadrons.size();            // a#oh hadrons in Output UpToNow    ^
-        if(noh) for(G4int kh=0; kh<noh; kh++)      // One can escape it but...          ^
+       G4int noh = theQHadrons.size();            // a#oh hadrons in Output UpToNow    ^
+       if(noh) for(G4int kh=0; kh<noh; kh++)      // One can escape it but...          ^
 								{                                          //                                   ^
 #ifdef pdebug
-          G4cout<<"G4QE::CreateQ:H#"<<kh<<", QC="<<theQHadrons[kh]->GetQC() //          ^
-                <<", 4M="<<theQHadrons[kh]->Get4Momentum()<<G4endl;         //          ^
+         G4cout<<"G4QE::CreateQ:H#"<<kh<<", QC="<<theQHadrons[kh]->GetQC() //          ^
+               <<", 4M="<<theQHadrons[kh]->Get4Momentum()<<G4endl;         //          ^
 #endif
-          G4QHadronVector* tmpQHadVec=G4Quasmon().DecayQHadron(theQHadrons[kh]);//d.e<^ ^
-          G4int tmpS=tmpQHadVec->size();           //                                 ^ ^
-          intQHadrons.resize(tmpS+intQHadrons.size()); // Resize theQHadrons length   ^ ^
-          copy(tmpQHadVec->begin(), tmpQHadVec->end(), intQHadrons.end()-tmpS); //    ^ ^
-          tmpQHadVec->clear();                     //                                 ^ ^
-          delete tmpQHadVec;           // who calls DecayQHadron must clear & delete  ^ ^
+         G4QHadronVector* tmpQHadVec=G4Quasmon().DecayQHadron(theQHadrons[kh]);//d.e<^ ^
+         G4int tmpS=tmpQHadVec->size();           //                                 ^ ^
+         intQHadrons.resize(tmpS+intQHadrons.size()); // Resize theQHadrons length   ^ ^
+         copy(tmpQHadVec->begin(), tmpQHadVec->end(), intQHadrons.end()-tmpS); //    ^ ^
+         tmpQHadVec->clear();                     //                                 ^ ^
+         delete tmpQHadVec;           // who calls DecayQHadron must clear & delete  ^ ^
 		      }                                          //                                 ^ ^
-        theQHadrons.clear(); // deletedWhenDecayed // Now theQHadrons is EmptyVector->^ ^
+       theQHadrons.clear(); // deletedWhenDecayed // Now theQHadrons is EmptyVector->^ ^
 #ifdef pdebug
-        G4int nInH=intQHadrons.size();             // Resulting #of hadrons after decay ^
+       G4int nInH=intQHadrons.size();             // Resulting #of hadrons after decay ^
 	       G4cout<<"G4QE::CrQ:nH="<<nInH<<",C="<<totCharge<<",B="<<totBaryoN<<G4endl;//    ^
 #endif
-        if(!(input.size()))                        // *RETURN* Without Quasmon creation-^
+       if(!(input.size()))                        // *RETURN* Without Quasmon creation-^
 		      {                                          //                                   ^
 #ifdef pdebug
 	         G4cout<<"*G4QEnv::CrQ:AnnihStack tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;//^
 #endif
 		        return;                                  // Do not clear and delete objects --^
-        }                                          //                                   ^
+       }                                          //                                   ^
 #ifdef pdebug
 	       G4cout<<"G4QE::CrQ:fakeQ, restPars tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;//^
 #endif
-        G4Quasmon::SetParameters(QTemper,QSOverU,QEtaSup);//RecoverQParam's after anihil^
-        G4Quasmon::OpenElectromagneticDecays(); // Parameter for multihadron fragmentat.^
-        // From this point the new temporary environment is created (multiQuasmon)      ^
-        G4QEnvironment* muq = new G4QEnvironment(input,theEnvironment.GetPDG());//<--+  ^
+       G4Quasmon::SetParameters(QTemper,QSOverU,QEtaSup);//RecoverQParam's after anihil^
+       G4Quasmon::OpenElectromagneticDecays(); // Parameter for multihadron fragmentat.^
+       // From this point the new temporary environment is created (multiQuasmon)      ^
+       G4QEnvironment* muq = new G4QEnvironment(input,theEnvironment.GetPDG());//<--+  ^
 #ifdef pdebug
 	       G4cout<<"G4QE::CrQ:befCl&Dest tC="<<totCharge<<", tB="<<totBaryoN<<G4endl; //^  ^
 #endif
-        for_each(input.begin(), input.end(), DeleteQHadron());     //DESTROING inp >-^--^
-        input.clear();                             // =Clearing=>==========>=========^==+
-        theEnvironment = muq->GetEnvironment();    // RestoreResidEnv after interact.^  
-        G4QHadronVector* outH = muq->GetQHadrons();// Copy of QHadrons *DESTROY* <---^-<--+
-        G4QuasmonVector* outQ = muq->GetQuasmons();// Copy of Quasmons *DESTROY* <---^--+ ^
-        delete muq;                                //=====>===========>==============^  ^ ^
-        noh = outH->size();                        // a#of Not Interacting(Q) Hadrons   ^ ^
+       for_each(input.begin(), input.end(), DeleteQHadron());     //DESTROING inp >-^--^
+       input.clear();                             // =Clearing=>==========>=========^==+
+       theEnvironment = muq->GetEnvironment();    // RestoreResidEnv after interact.^  
+       G4QHadronVector* outH = muq->GetQHadrons();// Copy of QHadrons *DESTROY* <---^-<--+
+       G4QuasmonVector* outQ = muq->GetQuasmons();// Copy of Quasmons *DESTROY* <---^--+ ^
+       delete muq;                                //=====>===========>==============^  ^ ^
+       noh = outH->size();                        // a#of Not Interacting(Q) Hadrons   ^ ^
 #ifdef pdebug
-        G4cout<<"G4QEnv::CreateQ:*** #ofNotInterQH="<<noh<<" is found ***"<<G4endl; //  ^ ^
+       G4cout<<"G4QEnv::CreateQ:*** #ofNotInterQH="<<noh<<" is found ***"<<G4endl; //  ^ ^
 #endif
-        if(noh) for(G4int nh=0; nh<noh; nh++)      // One can escape it but...          ^ ^
+       if(noh) for(G4int nh=0; nh<noh; nh++)      // One can escape it but...          ^ ^
 								{                                          //                                   ^ ^
 #ifdef pdebug
-          G4cout<<"G4QE::CreateQ: NotIntQH#"<<nh<<", QC="<<(*outH)[nh]->GetQC()  //     ^ ^
-                <<", 4M="<<(*outH)[nh]->Get4Momentum()<<G4endl;                  //     ^ ^
+         G4cout<<"G4QE::CreateQ: NotIntQH#"<<nh<<", QC="<<(*outH)[nh]->GetQC()  //     ^ ^
+               <<", 4M="<<(*outH)[nh]->Get4Momentum()<<G4endl;                  //     ^ ^
 #endif
-          G4QHadronVector* tmpQHadVec=G4Quasmon().DecayQHadron((*outH)[nh]);//del.eq<-+ ^ ^
-          G4int tmpS=tmpQHadVec->size();           //                                 ^ ^ ^
-          intQHadrons.resize(tmpS+intQHadrons.size()); // Resize theQHadrons length   ^ ^ ^
-          copy(tmpQHadVec->begin(), tmpQHadVec->end(), intQHadrons.end()-tmpS); //    ^ ^ ^
-          tmpQHadVec->clear();                     //                                 ^ ^ ^
-          delete tmpQHadVec;           // who calls DecayQHadron must clear & delete->+ ^ ^
+         G4QHadronVector* tmpQHadVec=G4Quasmon().DecayQHadron((*outH)[nh]);//del.eq<-+ ^ ^
+         G4int tmpS=tmpQHadVec->size();           //                                 ^ ^ ^
+         intQHadrons.resize(tmpS+intQHadrons.size()); // Resize theQHadrons length   ^ ^ ^
+         copy(tmpQHadVec->begin(), tmpQHadVec->end(), intQHadrons.end()-tmpS); //    ^ ^ ^
+         tmpQHadVec->clear();                     //                                 ^ ^ ^
+         delete tmpQHadVec;           // who calls DecayQHadron must clear & delete->+ ^ ^
 		      }                                          //                                   ^ ^
-        outH->clear();                             //                                   ^ ^
-        delete outH;                               // >---->---->---->---->---->---->---^-+
+       outH->clear();                             //                                   ^ ^
+       delete outH;                               // >---->---->---->---->---->---->---^-+
 	       G4int nMQ = outQ->size();                  // A#ofQuasmons in MultyQuasmonOutput^
 #ifdef pdebug
-        G4LorentzVector eLorV=theEnvironment.Get4Momentum(); //                         ^
+       G4LorentzVector eLorV=theEnvironment.Get4Momentum(); //                         ^
 	       G4cout<<"G4QE::CrQ:nMQ="<<nMQ<<",tC="<<totCharge<<", tB="<<totBaryoN<<G4endl;// ^
 	       G4cout<<"G4QE::CrQ:Env4M="<<eLorV<<G4endl; //                                   ^
-        G4LorentzVector contr4M=eLorV; //                                               ^
+       G4LorentzVector contr4M=eLorV; //                                               ^
 #endif
-        if(nMQ) for(G4int mh=0; mh<nMQ; mh++)      // Can escape CreationDistruct but...^
+       if(nMQ) for(G4int mh=0; mh<nMQ; mh++)      // Can escape CreationDistruct but...^
 								{                                          //                                   ^
-          G4Quasmon* curQ = new G4Quasmon((*outQ)[mh]);// Copy to destroy TMP(?)        ^
+         G4Quasmon* curQ = new G4Quasmon((*outQ)[mh]);// Copy to destroy TMP(?)        ^
 #ifdef pdebug
-          G4LorentzVector qLorV=curQ->Get4Momentum(); //                                ^
+         G4LorentzVector qLorV=curQ->Get4Momentum(); //                                ^
 	         G4cout<<"G4QE::CrQ:Q#"<<mh<<",4M="<<qLorV<<curQ->GetQC()<<G4endl; //          ^
-          contr4M+=qLorV; //                                                            ^
+         contr4M+=qLorV; //                                                            ^
 #endif
-          theQuasmons.push_back(curQ);             // Fill QuasmonCopies in theQuasmons ^
+         theQuasmons.push_back(curQ);             // Fill QuasmonCopies in theQuasmons ^
 	       }                                          //                                   ^
-        for_each(outQ->begin(), outQ->end(), DeleteQuasmon()); // >---------------------^
-        outQ->clear();                             //                                   ^
-        delete outQ;                               // >=================================+
+       for_each(outQ->begin(), outQ->end(), DeleteQuasmon()); // >---------------------^
+       outQ->clear();                             //                                   ^
+       delete outQ;                               // >=================================+
 #ifdef pdebug
-        G4int nsHadr  = theQHadrons.size();      // Update the value of OUTPUT entries
+       G4int nsHadr  = theQHadrons.size();      // Update the value of OUTPUT entries
 	       G4cout<<"G4QEnvironment::CreateQ: before return nH="<<nsHadr<<G4endl;
-        if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
-        {
-          G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
-          if(!hsNF)                                        // Add only final hadrons
+       if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
+       {
+         G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
+         if(!hsNF)                                        // Add only final hadrons
 										{
-            G4LorentzVector hLorV=theQHadrons[jso]->Get4Momentum();
-            G4int           hPDGC=theQHadrons[jso]->GetPDGCode();
-          		G4cout<<"G4QE::CrQ: H#"<<jso<<",4M="<<hLorV<<hPDGC<<G4endl;
-            contr4M+=hLorV;
-          }
-          else
-            G4cout<<"G4Q::CrQ:"<<jso<<"NF=0,4M="<<theQHadrons[jso]->Get4Momentum()<<G4endl;
-        }
+           G4LorentzVector hLorV=theQHadrons[jso]->Get4Momentum();
+           G4int           hPDGC=theQHadrons[jso]->GetPDGCode();
+         		G4cout<<"G4QE::CrQ: H#"<<jso<<",4M="<<hLorV<<hPDGC<<G4endl;
+           contr4M+=hLorV;
+         }
+         else
+           G4cout<<"G4Q::CrQ:"<<jso<<"NF=0,4M="<<theQHadrons[jso]->Get4Momentum()<<G4endl;
+       }
 	       G4cout<<"G4QEnvironment::CreateQ: before return tot4M="<<contr4M<<G4endl;
 #endif
-        return;                                    // *** RETURN *** 
-      }
-      else                                         // ==> Energy Flux case
+       return;                                    // *** RETURN *** 
+     }
+     else                                         // ==> Energy Flux case
 	     {
-        if (!efCounter) return;                    // ***RETURN*** Without Quasmon creation
+       if (!efCounter) return;                    // ***RETURN*** Without Quasmon creation
 	     }
 	   }                                              // End of Hyperon annihilation case
-    else EnFlQC=projQC;                            // For notAntiBar, don't use EnergyFlux
-    G4double EnFlP=ef4Mom.rho();                   // Mom. of EnergyFlow forClusterCreation
-    PrepareInteractionProbabilities(EnFlQC,EnFlP); // InteractionProbabilities for clusters
-    G4int nCandid = theQCandidates.size();
+   else EnFlQC=projQC;                            // For notAntiBar, don't use EnergyFlux
+   G4double EnFlP=ef4Mom.rho();                   // Mom. of EnergyFlow forClusterCreation
+   PrepareInteractionProbabilities(EnFlQC,EnFlP); // InteractionProbabilities for clusters
+   G4int nCandid = theQCandidates.size();
 #ifdef pdebug
 	   G4cout<<"G4QEnvironment::CrQ: InteractionProbabilities are done, nC="<<nCandid<<G4endl;
 #endif
-    G4double maxP = theQCandidates[nCandid-1]->GetIntegProbability();
-    G4int i=0;
-    G4QContent    curQC;                           // Quark Content of the selected cluster
-    if(nCandid<=0)
+   G4double maxP = theQCandidates[nCandid-1]->GetIntegProbability();
+   G4int i=0;
+   G4QContent    curQC;                           // Quark Content of the selected cluster
+   if(nCandid<=0)
 	   {
 	     G4cout<<"---Warning---G4QEnv::CreaQ:nC="<<nCandid<<",maxP="<<maxP<<",E="
-            <<theEnvironment<<G4endl;
-      //throw G4QException("G4QEnvironment::CreateQ: Can not select a cluster");
+           <<theEnvironment<<G4endl;
+     //throw G4QException("G4QEnvironment::CreateQ: Can not select a cluster");
 	   }
-    if(nCandid==1||maxP==0.)
+   if(nCandid==1||maxP==0.)
 	   {
 #ifdef pdebug
 	     G4cout<<"***G4QEnv::CrQ:MaxP=0||nCand=1: Use all Env., Env="<<theEnvironment<<G4endl;
 #endif
-      curQC=theEnvironment.GetQCZNS();
-      theEnvironment=vacuum;
-    }
-    else
-    {
-      G4double totP = maxP * G4UniformRand();
+     curQC=theEnvironment.GetQCZNS();
+     theEnvironment=vacuum;
+   }
+   else
+   {
+     G4double totP = maxP * G4UniformRand();
 #ifdef pdebug
 	     G4cout<<"G4QEnvironment::CrQ:nC="<<nCandid<<", maxP="<<maxP<<", totP="<<totP<<G4endl;
 #endif
-      while(theQCandidates[i]->GetIntegProbability()<totP) i++;
-      G4QCandidate* curCand = theQCandidates[i];// Pointer to selected cluster to interact
-      curQC   = curCand->GetQC();               // Get QuarkContent of the selected cluster
-      G4QNucleus targClust(curQC.GetP(),curQC.GetN(),curQC.GetL());//Define Clust as a QNuc
-      G4double clMass=targClust.GetGSMass();    // Mass of residual nuclear environment
+     while(theQCandidates[i]->GetIntegProbability()<totP) i++;
+     G4QCandidate* curCand = theQCandidates[i];// Pointer to selected cluster to interact
+     curQC   = curCand->GetQC();               // Get QuarkContent of the selected cluster
+     G4QNucleus targClust(curQC.GetP(),curQC.GetN(),curQC.GetL());//Define Clust as a QNuc
+     G4double clMass=targClust.GetGSMass();    // Mass of residual nuclear environment
 #ifdef cldebug
 	     G4cout<<"G4QEnv::CrQ:Cl#"<<i<<"(of "<<nCandid<<"),QC="<<curQC<<",M="<<clMass<<G4endl;
 #endif
-      G4LorentzVector pq4M=proj4M+G4LorentzVector(0.,0.,0.,clMass); 
-      if(pq4M.m()>=clMass)
+     G4LorentzVector pq4M=proj4M+G4LorentzVector(0.,0.,0.,clMass); 
+     if(pq4M.m()>=clMass)
 	     {
 #ifdef pdebug
 	       G4cout<<"G4QEnv::CQ:#"<<i<<"("<<targClust<<curQC<<") Env="<<theEnvironment<<G4endl;
 #endif
-        theEnvironment.Reduce(targClust.GetPDG());// Subtract selected cluster from Nucleus
+       theEnvironment.Reduce(targClust.GetPDG());// Subtract selected cluster from Nucleus
 	     }
-      else
+     else
 	     {
-        G4double teMass=theEnvironment.GetGSMass(); //Mass of theResidualNuclearEnvironment
-        G4LorentzVector te4M=proj4M+G4LorentzVector(0.,0.,0.,teMass);
-        if(te4M.m()>=teMass)
+       G4double teMass=theEnvironment.GetGSMass(); //Mass of theResidualNuclearEnvironment
+       G4LorentzVector te4M=proj4M+G4LorentzVector(0.,0.,0.,teMass);
+       if(te4M.m()>=teMass)
 	       {
 #ifdef pdebug
 	         G4cout<<"***G4QEnv::CrQ: Deep virtual, use all Env,Env="<<theEnvironment<<G4endl;
 #endif
-          curQC=theEnvironment.GetQCZNS();
-          theEnvironment=vacuum;
-        }
-        else
+         curQC=theEnvironment.GetQCZNS();
+         theEnvironment=vacuum;
+       }
+       else
 		      {
-          G4QHadron* projH = new G4QHadron(projQC,proj4M);
-          theQHadrons.push_back(projH);
+         G4QHadron* projH = new G4QHadron(projQC,proj4M);
+         theQHadrons.push_back(projH);
 	         G4cout<<"---Warning---G4QE::CrQ:Fill Proj asItIs QC/4m="<<projQC<<proj4M<<G4endl;
-          return;
-        }
+         return;
+       }
 	     }
 	   }
-    G4double envMass=theEnvironment.GetGSMass();   // Mass of residual nuclear environment
-    if(projPDG==22&&projE<PiPrThresh+(M2ShiftVir+projM2)/DiNuclMass) // Gam+quark Interact
-    //if(2>3)                                      //@@ TMP:PhotoAbsorbtion by q is closed
+   G4double envMass=theEnvironment.GetGSMass();   // Mass of residual nuclear environment
+   if(projPDG==22&&projE<PiPrThresh+(M2ShiftVir+projM2)/DiNuclMass) // Gam+quark Interact
+   //if(2>3)                                      //@@ TMP:PhotoAbsorbtion by q is closed
 	   {
-      q4Mom=G4LorentzVector(0.,0.,0.,tgMass-envMass);// PhotoInteracts with BoundedCluster
-      valQ=curQC;
+     q4Mom=G4LorentzVector(0.,0.,0.,tgMass-envMass);// PhotoInteracts with BoundedCluster
+     valQ=curQC;
 #ifdef pdebug
-      G4cout<<"G4QE::CrQ:Q="<<q4Mom<<valQ<<"+vg="<<proj4M<<",Env="<<theEnvironment<<G4endl;
+     G4cout<<"G4QE::CrQ:Q="<<q4Mom<<valQ<<"+vg="<<proj4M<<",Env="<<theEnvironment<<G4endl;
 #endif
-      G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom, proj4M);//Interaction gam+q inside
-      theQuasmons.push_back(curQuasmon);  // Insert Quasmon without incid. gamma (del.eq.)
+     G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom, proj4M);//Interaction gam+q inside
+     theQuasmons.push_back(curQuasmon);  // Insert Quasmon without incid. gamma (del.eq.)
 	   }
-    else if((projM2-mPi2<.00001&&projE-mPi<0.1)&&projPDG==-211&&!fake)
-    //if(2>3)                                //@@ ***TMP*** PionAbsorbAtRest by q is closed
+   else if((projM2-mPi2<.00001&&projE-mPi<0.1)&&projPDG==-211&&!fake)
+   //if(2>3)                                //@@ ***TMP*** PionAbsorbAtRest by q is closed
 	   {
-      q4Mom=proj4M+G4LorentzVector(0.,0.,0.,tgMass-envMass);// PION + BoundCluster
-      valQ=EnFlQC+curQC;
+     q4Mom=proj4M+G4LorentzVector(0.,0.,0.,tgMass-envMass);// PION + BoundCluster
+     valQ=EnFlQC+curQC;
 #ifdef pdebug
-      if(projE<mPi)G4cout<<"*VirtualPiM*G4QE::CrQ:Ener(pi-)="<<projE<<"<mPi="<<mPi<<G4endl;
-      G4cout<<"G4QEnv::CrQ:Q="<<q4Mom<<valQ<<"+pi="<<proj4M<<",E="<<theEnvironment<<G4endl;
+     if(projE<mPi)G4cout<<"*VirtualPiM*G4QE::CrQ:Ener(pi-)="<<projE<<"<mPi="<<mPi<<G4endl;
+     G4cout<<"G4QEnv::CrQ:Q="<<q4Mom<<valQ<<"+pi="<<proj4M<<",E="<<theEnvironment<<G4endl;
 #endif
-      G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom, -proj4M);//Interact gam+q inside
-      theQuasmons.push_back(curQuasmon);  // Insert Quasmon without incid. gamma (del.eq.)
+     G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom, -proj4M);//Interact gam+q inside
+     theQuasmons.push_back(curQuasmon);  // Insert Quasmon without incid. gamma (del.eq.)
 	   }
-    else if(projPDG==2212 && G4UniformRand()>.5) // Bad for ions! Only for baryons !
-    //else if(2>3)                          // free flying proton is closed
+   else if(projPDG==2212 && G4UniformRand()>.5) // Bad for ions! Only for baryons !
+   //else if(2>3)                          // free flying proton is closed
 	   {
-      q4Mom=proj4M;       // 4M: QUASMON=Projectile
-      valQ=EnFlQC;        // qc: QUASMON=Projectile
-      theEnvironment=memEnviron;
+     q4Mom=proj4M;       // 4M: QUASMON=Projectile
+     valQ=EnFlQC;        // qc: QUASMON=Projectile
+     theEnvironment=memEnviron;
 #ifdef pdebug
-      G4cout<<"G4QEnv::CreQAll: Q="<<q4Mom<<valQ<<", QEnv="<<theEnvironment<<G4endl;
+     G4cout<<"G4QEnv::CreQAll: Q="<<q4Mom<<valQ<<", QEnv="<<theEnvironment<<G4endl;
 #endif
-      G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom);
-      theQuasmons.push_back(curQuasmon); // Insert Quasmon (even hadron/gamma) (del.eq.)
+     G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom);
+     theQuasmons.push_back(curQuasmon); // Insert Quasmon (even hadron/gamma) (del.eq.)
 	   }
-    else
+   else
 	   {
-      q4Mom=proj4M+G4LorentzVector(0.,0.,0.,tgMass-envMass);//Projectile + BoundCluster
-      valQ=EnFlQC+curQC;
+     q4Mom=proj4M+G4LorentzVector(0.,0.,0.,tgMass-envMass);//Projectile + BoundCluster
+     valQ=EnFlQC+curQC;
 #ifdef pdebug
-      G4cout<<"G4QEnv::CreQAll: Q="<<q4Mom<<valQ<<", QEnv="<<theEnvironment<<G4endl;
+     G4cout<<"G4QEnv::CreQAll: Q="<<q4Mom<<valQ<<", QEnv="<<theEnvironment<<G4endl;
 #endif
-      G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom);
-      theQuasmons.push_back(curQuasmon); // Insert Quasmon (even hadron/gamma) (del.eq.)
+     G4Quasmon* curQuasmon = new G4Quasmon(valQ, q4Mom);
+     theQuasmons.push_back(curQuasmon); // Insert Quasmon (even hadron/gamma) (del.eq.)
 	   }
-  }
-  else
-  {
-    G4cout<<"---Warning---G4QEnvironment::CreateQuasmon:Strange targPDG="<<targPDG<<G4endl;
-    //throw G4QException("***G4QEnvironment::CreateQuasmon: Impossible target");
-  }
+ }
+ else
+ {
+   G4cout<<"---Warning---G4QEnvironment::CreateQuasmon:Strange targPDG="<<targPDG<<G4endl;
+   //throw G4QException("***G4QEnvironment::CreateQuasmon: Impossible target");
+ }
 }
 
 // Calculate a probability to interact with clusters for the givven PDG of the projectile
 void G4QEnvironment::PrepareInteractionProbabilities(const G4QContent& projQC, G4double AP)
 //   ===========================================================================Proj.3Mom.=
 {
-  G4double sum    = 0.;                            // Sum of probabilities of interaction
-  G4double probab = 0.;                            // Interaction probability
-  G4double denseB = 0.;                            // A#of*prob baryons in dense part
-  G4double allB   = 0.;                            // A#of*prob baryons in the nucleus
-  G4int pPDG = projQC.GetSPDGCode();               // PDG code of the projectile particle
-  if(2>3) {allB=AP; allB=pPDG;}                    // A trick to use not used AP(3M) & pPDG
-  for (unsigned index=0; index<theQCandidates.size(); index++)
-  {
-    G4QCandidate* curCand=theQCandidates[index];   // Intermediate pointer
-    G4int cPDG = curCand->GetPDGCode();            // PDG Code of the Candidate
-    G4int cST  = curCand->GetStrangeness();        // Strangeness of the candidate
-    G4int cBN  = curCand->GetBaryonNumber();       // Baryon Number of the candidate
-    G4int cCH  = curCand->GetCharge();             // Charge of the candidate
+ G4double sum    = 0.;                            // Sum of probabilities of interaction
+ G4double probab = 0.;                            // Interaction probability
+ G4double denseB = 0.;                            // A#of*prob baryons in dense part
+ G4double allB   = 0.;                            // A#of*prob baryons in the nucleus
+ G4int pPDG = projQC.GetSPDGCode();               // PDG code of the projectile particle
+ if(2>3) {allB=AP; allB=pPDG;}                    // A trick to use not used AP(3M) & pPDG
+ for (unsigned index=0; index<theQCandidates.size(); index++)
+ {
+   G4QCandidate* curCand=theQCandidates[index];   // Intermediate pointer
+   G4int cPDG = curCand->GetPDGCode();            // PDG Code of the Candidate
+   G4int cST  = curCand->GetStrangeness();        // Strangeness of the candidate
+   G4int cBN  = curCand->GetBaryonNumber();       // Baryon Number of the candidate
+   G4int cCH  = curCand->GetCharge();             // Charge of the candidate
 #ifdef sdebug
 	   G4cout<<"G4QE::PIP:=====> #"<<index<<", cPDG="<<cPDG<<",S="<<cST<<G4endl;
 #endif
-    if(cPDG>80000000&&cPDG!=90000000&&!cST&&cCH>0&&cBN>0&&cCH<=cBN) // ===> Nuclear cluster
+   if(cPDG>80000000&&cPDG!=90000000&&!cST&&cCH>0&&cBN>0&&cCH<=cBN) // ===> Nuclear cluster
 	   {
-      G4int zc = cCH;                              // "Z" of the cluster
-      G4int nc = cBN-cCH;                          // "N" of the cluster
-      G4double nOfCl=curCand->GetPreProbability(); // A number of clusters of the type
-      G4double dOfCl=curCand->GetDenseProbability();// A number of clusters in dense region
+     G4int zc = cCH;                              // "Z" of the cluster
+     G4int nc = cBN-cCH;                          // "N" of the cluster
+     G4double nOfCl=curCand->GetPreProbability(); // A number of clusters of the type
+     G4double dOfCl=curCand->GetDenseProbability();// A number of clusters in dense region
 #ifdef sdebug
 						G4cout<<"G4QE::PIP:Z="<<zc<<",N="<<nc<<",nC="<<nOfCl<<",dC="<<dOfCl<<G4endl;
 #endif
-      if(cPDG==91000000||cPDG==90001000||cPDG==90000001)
+     if(cPDG==91000000||cPDG==90001000||cPDG==90000001)
 	     {
-        allB+=nOfCl;
-        denseB+=dOfCl;
+       allB+=nOfCl;
+       denseB+=dOfCl;
 	     }
-      G4QContent pQC=curCand->GetQC();             // Quark Content of the candidate
-      ////////////G4int pC   = projQC.GetCharge();   // Charge of the projectile
-      G4QContent qQC=pQC+projQC;                   // Total Quark content of the Compound
-      G4QPDGCode qQPDG(qQC);
-      G4int qC   = qQPDG.GetQCode();
-      G4double d = abs(zc-nc);
-      G4double fact=1./pow(2.,d);
-      if (qC<-1) probab=0.;     
-      //else if(pPDG==-211&&AP<152.&&cBN<2) probab=0.; // PionCaptureByCluster
-      //else if(pPDG==22&&AP<152. || pPDG>90000000)
-      else if(pPDG==22&&AP<152.)
-      {
-        if(cBN<2)probab=nOfCl*cBN*fact; //Gamma Under Pi Threshold (QuarkCapture)
-        else probab=0.;
-      }
-      else if(pPDG==2212)
-      {
-        //if(cBN<2)probab=nOfCl*cBN*fact; // Moving nucleons hits only nucleons
-        //else probab=0.;
-        probab=nOfCl*cBN*fact; // Moving nucleons hits composed clusters
-        //probab=nOfCl*fact; // Moving nucleons hits compact clusters
-      }
-      ////////////////////////else if((pPDG==-211&&AP<10.)&&cBN<2) probab=0;//PiCapAtRst(D)
-      //else if((pPDG==-211||pPDG==-13)&&AP<27.)probab=dOfCl*cBN*fact;//Pi/Mu-CaptureAtRest
-      //else if(pPDG==-211&&AP<10.)            probab=nOfCl*fact;// special PiCaptureAtRest
-      //else if(pPDG==-211&&AP<10.)            probab=nOfCl*cBN*(cBN-1)*fact;
-      //else                                   probab=nOfCl*fact;
-      else                                   probab=nOfCl*cBN*fact;
-      //else                                      probab=dOfCl*cBN*fact;
-      //if(cBN>1) probab=0.;                       // Suppress clusters
-      //if(cBN>2) probab=0.;                       // Suppress heavy clusters
+     G4QContent pQC=curCand->GetQC();             // Quark Content of the candidate
+     ////////////G4int pC   = projQC.GetCharge();   // Charge of the projectile
+     G4QContent qQC=pQC+projQC;                   // Total Quark content of the Compound
+     G4QPDGCode qQPDG(qQC);
+     G4int qC   = qQPDG.GetQCode();
+     G4double d = abs(zc-nc);
+     G4double fact=1./pow(2.,d);
+     if (qC<-1) probab=0.;     
+     //else if(pPDG==-211&&AP<152.&&cBN<2) probab=0.; // PionCaptureByCluster
+     //else if(pPDG==22&&AP<152. || pPDG>90000000)
+     else if(pPDG==22&&AP<152.)
+     {
+       if(cBN<2)probab=nOfCl*cBN*fact; //Gamma Under Pi Threshold (QuarkCapture)
+       else probab=0.;
+     }
+     else if(pPDG==2212)
+     {
+       //if(cBN<2)probab=nOfCl*cBN*fact; // Moving nucleons hits only nucleons
+       //else probab=0.;
+       probab=nOfCl*cBN*fact; // Moving nucleons hits composed clusters
+       //probab=nOfCl*fact; // Moving nucleons hits compact clusters
+     }
+     ////////////////////////else if((pPDG==-211&&AP<10.)&&cBN<2) probab=0;//PiCapAtRst(D)
+     //else if((pPDG==-211||pPDG==-13)&&AP<27.)probab=dOfCl*cBN*fact;//Pi/Mu-CaptureAtRest
+     //else if(pPDG==-211&&AP<10.)            probab=nOfCl*fact;// special PiCaptureAtRest
+     //else if(pPDG==-211&&AP<10.)            probab=nOfCl*cBN*(cBN-1)*fact;
+     //else                                   probab=nOfCl*fact;
+     else                                   probab=nOfCl*cBN*fact;
+     //else                                      probab=dOfCl*cBN*fact;
+     //if(cBN>1) probab=0.;                       // Suppress clusters
+     //if(cBN>2) probab=0.;                       // Suppress heavy clusters
 #ifdef sdebug
-      G4int pPDG      = projQC.GetSPDGCode();      // PDG code of the projectile particle
-      G4int rPDG = qQC.GetSPDGCode();
-      G4double baryn = qQC.GetBaryonNumber();
-      G4double charge= qQC.GetCharge();
-      G4double dq= abs(baryn-charge-charge);
+     G4int pPDG      = projQC.GetSPDGCode();      // PDG code of the projectile particle
+     G4int rPDG = qQC.GetSPDGCode();
+     G4double baryn = qQC.GetBaryonNumber();
+     G4double charge= qQC.GetCharge();
+     G4double dq= abs(baryn-charge-charge);
 	     G4cout<<"G4QE::PIP:P="<<probab<<",ac="<<cBN<<",dq="<<dq<<",f="<<fact<<",qC="
-            <<qC<<",rPDG="<<rPDG<<",pPDG="<<pPDG<<",nCP="<<nOfCl<<",dCP="<<dOfCl<<G4endl;
+           <<qC<<",rPDG="<<rPDG<<",pPDG="<<pPDG<<",nCP="<<nOfCl<<",dCP="<<dOfCl<<G4endl;
 #endif
 	   }
-    else probab=0.;
-    sum+=probab;
-    curCand->SetIntegProbability(sum);
-  }
-  if(allB>0.)f2all=(allB-denseB)/allB;
-  else       f2all=0.;
+   else probab=0.;
+   sum+=probab;
+   curCand->SetIntegProbability(sum);
+ }
+ if(allB>0.)f2all=(allB-denseB)/allB;
+ else       f2all=0.;
 } // End of PrepareInteractionProbabilities
 
 //Initialize a Clusters Vector for the Nucleus of the QEnvironment
@@ -1236,225 +1236,225 @@ void G4QEnvironment::InitClustersVector(G4int maxClust, G4int maxA)
 //   ==============================================================
 {
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::InitClustersVector called with nC="<<maxClust<<G4endl;
+ G4cout<<"G4QEnvironment::InitClustersVector called with nC="<<maxClust<<G4endl;
 #endif
-  if(maxClust>=0) for (G4int i=0; i<maxClust; i++) 
-  {
-    G4int clustQCode = i+90; // Q-code of the cluster in the CHIPS World "IsoNuclei"
+ if(maxClust>=0) for (G4int i=0; i<maxClust; i++) 
+ {
+   G4int clustQCode = i+90; // Q-code of the cluster in the CHIPS World "IsoNuclei"
 #ifdef sdebug
 	   G4cout<<"G4QEnvironment::InitClustersVector: Before Init Q ="<<clustQCode<<G4endl;
 #endif
-    G4QPDGCode clustQPDG(true,clustQCode);
-    //clustQPDG.InitByQCode(clustQCode);
-    G4int clusterPDG=clustQPDG.GetPDGCode();
-    G4int clustB=clustQPDG.GetBaryNum();
+   G4QPDGCode clustQPDG(true,clustQCode);
+   //clustQPDG.InitByQCode(clustQCode);
+   G4int clusterPDG=clustQPDG.GetPDGCode();
+   G4int clustB=clustQPDG.GetBaryNum();
 #ifdef sdebug
 	   G4cout<<"G4QEnvironment::InitClustersVector: Before insert ="<<clusterPDG<<G4endl;
 #endif
 	   //theQCandidates.push_back(new G4QCandidate(clusterPDG)); // (delete equivalent)
 	   if(clustB<=maxA) theQCandidates.push_back(new G4QCandidate(clusterPDG)); // (del.eq.)
 #ifdef sdebug
-    G4cout<<"G4QEnvironment::InitClustersVector: Cluster # "<<i<<" with code = "
-          <<clusterPDG<<", QC="<<clustQPDG.GetQuarkContent()<<G4endl;
+   G4cout<<"G4QEnvironment::InitClustersVector: Cluster # "<<i<<" with code = "
+         <<clusterPDG<<", QC="<<clustQPDG.GetQuarkContent()<<G4endl;
 #endif
-  }
+ }
 } // End of InitClastersVector
 
 // Fragmentation of the QEnvironment with MultyQuasmon (the main internal member function)
 G4QHadronVector  G4QEnvironment::HadronizeQEnvironment()
 //               ================***********************
 {
-  static const G4int  NUCPDG = 90000000;
-  static const G4QNucleus vacuum(NUCPDG);
-  static const G4QContent PiQC(0,1,0,1,0,0);
-  static const G4QContent K0QC(1,0,0,0,0,1);
-  static const G4QContent KpQC(0,1,0,0,0,1);
-  static const G4QContent SiPQC(0,2,1,0,0,0);
-  static const G4QContent SiMQC(2,0,1,0,0,0);
-  //static const G4QContent alQC(6,6,0,0,0,0);
-  static const G4QPDGCode nQPDG(2112);
-  static const G4QPDGCode pQPDG(2212);
-  static const G4QPDGCode lQPDG(3122);
-  static const G4QPDGCode s0QPDG(3122);
-  static const G4double mPi0 = G4QPDGCode(111).GetMass();
-  static const G4double mPi  = G4QPDGCode(211).GetMass();
-  static const G4double mK   = G4QPDGCode(321).GetMass();
-  static const G4double mK0  = G4QPDGCode(311).GetMass();
-  static const G4double mNeut= G4QPDGCode(2112).GetMass();
-  static const G4double mProt= G4QPDGCode(2212).GetMass();
-  static const G4double mLamb= G4QPDGCode(3122).GetMass();
-  static const G4double mSigZ= G4QPDGCode(3212).GetMass();
-  static const G4double mSigM= G4QPDGCode(3112).GetMass();
-  static const G4double mSigP= G4QPDGCode(3222).GetMass();
-  //static const G4double mAlph = G4QPDGCode(2112).GetNuclMass(2,2,0);
-  static const G4double eps=.003;
-  G4int nQuasmons = theQuasmons.size();
+ static const G4int  NUCPDG = 90000000;
+ static const G4QNucleus vacuum(NUCPDG);
+ static const G4QContent PiQC(0,1,0,1,0,0);
+ static const G4QContent K0QC(1,0,0,0,0,1);
+ static const G4QContent KpQC(0,1,0,0,0,1);
+ static const G4QContent SiPQC(0,2,1,0,0,0);
+ static const G4QContent SiMQC(2,0,1,0,0,0);
+ //static const G4QContent alQC(6,6,0,0,0,0);
+ static const G4QPDGCode nQPDG(2112);
+ static const G4QPDGCode pQPDG(2212);
+ static const G4QPDGCode lQPDG(3122);
+ static const G4QPDGCode s0QPDG(3122);
+ static const G4double mPi0 = G4QPDGCode(111).GetMass();
+ static const G4double mPi  = G4QPDGCode(211).GetMass();
+ static const G4double mK   = G4QPDGCode(321).GetMass();
+ static const G4double mK0  = G4QPDGCode(311).GetMass();
+ static const G4double mNeut= G4QPDGCode(2112).GetMass();
+ static const G4double mProt= G4QPDGCode(2212).GetMass();
+ static const G4double mLamb= G4QPDGCode(3122).GetMass();
+ static const G4double mSigZ= G4QPDGCode(3212).GetMass();
+ static const G4double mSigM= G4QPDGCode(3112).GetMass();
+ static const G4double mSigP= G4QPDGCode(3222).GetMass();
+ //static const G4double mAlph = G4QPDGCode(2112).GetNuclMass(2,2,0);
+ static const G4double eps=.003;
+ G4int nQuasmons = theQuasmons.size();
 #ifdef chdebug
-  G4int finCharge=theEnvironment.GetCharge();
-  G4int finBaryoN=theEnvironment.GetA();
-  G4int nHad=theQHadrons.size();
-  if(nHad) for(G4int ih=0; ih<nHad; ih++)
-  {
-    finCharge+=theQHadrons[ih]->GetCharge();
-    finBaryoN+=theQHadrons[ih]->GetBaryonNumber();
-  }
-  //G4int nQuas=theQuasmons.size();
-  if(nQuasmons)for(G4int iq=0; iq<nQuasmons; iq++)
-  {
-    finCharge+=theQuasmons[iq]->GetCharge();
-    finBaryoN+=theQuasmons[iq]->GetBaryonNumber();
-  }
-  if(finCharge!=totCharge || finBaryoN!=totBaryoN)
-  {
-    G4cout<<"**G4QE::HQ:T(1) tC="<<totCharge<<",C="<<finCharge<<",tB="<<totBaryoN
-          <<",B="<<finBaryoN<<",E="<<theEnvironment<<G4endl;
-    if(nHad) for(G4int h=0; h<nHad; h++)
-    {
-      G4QHadron* cH = theQHadrons[h];
-      G4cout<<":G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
-    }
-    if(nQuasmons) for(G4int q=0; q<nQuasmons; q++)
-    {
-      G4Quasmon* cQ = theQuasmons[q];
-      G4cout<<":G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QuarkCon="<<cQ->GetQC()<<G4endl;
-    }
-  }
-#endif
-#ifdef pdebug
-  G4cout<<"G4QE::HQE:*HADRONIZE Q-ENVIRONMENT="<<theEnvironment<<",nQ="<<nQuasmons<<G4endl;
-#endif
-  if(nQuasmons<1)                            // "No Quasmons" case -> Fill QEnviron
-  {
-    G4int nPDG = theEnvironment.GetPDG();    // PDG code of the residual Nucl.Environ.
+ G4int finCharge=theEnvironment.GetCharge();
+ G4int finBaryoN=theEnvironment.GetA();
+ G4int nHad=theQHadrons.size();
+ if(nHad) for(G4int ih=0; ih<nHad; ih++)
+ {
+   finCharge+=theQHadrons[ih]->GetCharge();
+   finBaryoN+=theQHadrons[ih]->GetBaryonNumber();
+ }
+ //G4int nQuas=theQuasmons.size();
+ if(nQuasmons)for(G4int iq=0; iq<nQuasmons; iq++)
+ {
+   finCharge+=theQuasmons[iq]->GetCharge();
+   finBaryoN+=theQuasmons[iq]->GetBaryonNumber();
+ }
+ if(finCharge!=totCharge || finBaryoN!=totBaryoN)
+ {
+   G4cout<<"**G4QE::HQ:T(1) tC="<<totCharge<<",C="<<finCharge<<",tB="<<totBaryoN
+         <<",B="<<finBaryoN<<",E="<<theEnvironment<<G4endl;
+   if(nHad) for(G4int h=0; h<nHad; h++)
+   {
+     G4QHadron* cH = theQHadrons[h];
+     G4cout<<":G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
+   }
+   if(nQuasmons) for(G4int q=0; q<nQuasmons; q++)
+   {
+     G4Quasmon* cQ = theQuasmons[q];
+     G4cout<<":G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QuarkCon="<<cQ->GetQC()<<G4endl;
+   }
+ }
+#endif
+#ifdef pdebug
+ G4cout<<"G4QE::HQE:*HADRONIZE Q-ENVIRONMENT="<<theEnvironment<<",nQ="<<nQuasmons<<G4endl;
+#endif
+ if(nQuasmons<1)                            // "No Quasmons" case -> Fill QEnviron
+ {
+   G4int nPDG = theEnvironment.GetPDG();    // PDG code of the residual Nucl.Environ.
 #ifdef pdebug
 	   G4cout<<"G4QE::HQE:***NO QUASMONS***Env="<<nPDG<<theEnvironment.Get4Momentum()<<G4endl;
 #endif
-    if(nPDG==90000000) return theQHadrons;
-    if(nPDG>80000000)
+   if(nPDG==90000000) return theQHadrons;
+   if(nPDG>80000000)
 	   {
-      G4QHadron* rNucleus = new G4QHadron(theEnvironment); // Create HadronEnvironment
-      theQHadrons.push_back(rNucleus);       // Fill GS - no further decay (del. equiv.)
+     G4QHadron* rNucleus = new G4QHadron(theEnvironment); // Create HadronEnvironment
+     theQHadrons.push_back(rNucleus);       // Fill GS - no further decay (del. equiv.)
 #ifdef fdebug
 	     G4cout<<"G4QEnv::HadrQE: >>>> Fill Environment="<<theEnvironment<<G4endl;
 #endif
 	   }
-    return theQHadrons;
-  }
-  if(theEnvironment.GetPDG()==NUCPDG)        // ==> "Environment is Vacuum" case
-  {
+   return theQHadrons;
+ }
+ if(theEnvironment.GetPDG()==NUCPDG)        // ==> "Environment is Vacuum" case
+ {
 #ifdef rdebug
-    G4cout<<"G4QEnv::HadrQE: ***Vacuum*** #ofQ="<<nQuasmons<<G4endl;
-    G4int totInC=0;
-    G4LorentzVector totIn4M(0.,0.,0.,0.);
+   G4cout<<"G4QEnv::HadrQE: ***Vacuum*** #ofQ="<<nQuasmons<<G4endl;
+   G4int totInC=0;
+   G4LorentzVector totIn4M(0.,0.,0.,0.);
 	   for (G4int is=0; is<nQuasmons; is++)     // Sum4mom's of Quasmons for the comparison
 	   {
 	     G4Quasmon*      pQ = theQuasmons[is];
-      G4LorentzVector Q4M= pQ->Get4Momentum();
-      totIn4M           += Q4M;
-      totInC            += pQ->GetQC().GetCharge();
+     G4LorentzVector Q4M= pQ->Get4Momentum();
+     totIn4M           += Q4M;
+     totInC            += pQ->GetQC().GetCharge();
 	   } // End of TotInitial4Momentum summation LOOP over Quasmons
-    G4int nsHadr  = theQHadrons.size();      // Update the value of OUTPUT entries
-    if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
-    {
-      G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
-      if(!hsNF)                                        // Add only final hadrons
-      {
-        G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum();
-        totIn4M          += hs4Mom;
-        totInC           += theQHadrons[jso]->GetCharge();
-      }
-    }
-#endif
-    G4QNucleus vE(90000000);
-    G4int     nlq = 0;                       // Prototype of a#of Living Quasmons
+   G4int nsHadr  = theQHadrons.size();      // Update the value of OUTPUT entries
+   if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
+   {
+     G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
+     if(!hsNF)                                        // Add only final hadrons
+     {
+       G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum();
+       totIn4M          += hs4Mom;
+       totInC           += theQHadrons[jso]->GetCharge();
+     }
+   }
+#endif
+   G4QNucleus vE(90000000);
+   G4int     nlq = 0;                       // Prototype of a#of Living Quasmons
 	   if(nQuasmons) for(G4int lq=0; lq<nQuasmons; lq++)if(theQuasmons[lq]->GetStatus())nlq++;
 	   if(nQuasmons) for(G4int iq=0; iq<nQuasmons; iq++)
 	   {
 #ifdef chdebug
-      G4int f1Charge=theEnvironment.GetCharge();
-      G4int f1BaryoN=theEnvironment.GetA();
-      G4int nHad=theQHadrons.size();
-      if(nHad) for(G4int ih=0; ih<nHad; ih++)
-      {
-        f1Charge+=theQHadrons[ih]->GetCharge();
-        f1BaryoN+=theQHadrons[ih]->GetBaryonNumber();
-      }
-      G4int nQuas=theQuasmons.size();
-      if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
-      {
-        f1Charge+=theQuasmons[iqs]->GetCharge();
-        f1BaryoN+=theQuasmons[iqs]->GetBaryonNumber();
-      }
-      if(f1Charge!=totCharge || f1BaryoN!=totBaryoN)
-      {
-        G4cout<<"**G4QE::HQ:q#"<<iq<<",tC="<<totCharge<<",C="<<f1Charge<<",tB="<<totBaryoN
-              <<",B="<<f1BaryoN<<",E="<<theEnvironment<<G4endl;
-        if(nHad) for(G4int h=0; h<nHad; h++)
-        {
-          G4QHadron* cH = theQHadrons[h];
-          G4cout<<"G4QE::HQ:#"<<h<<",QC="<<cH->GetQC()<<",P="<<cH->GetPDGCode()<<G4endl;
-        }
-        if(nQuas) for(G4int q=0; q<nQuas; q++)
-        {
-          G4Quasmon* cQ = theQuasmons[q];
-          G4cout<<"G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
-        }
-      }
-#endif
-      G4int ist=theQuasmons[iq]->GetStatus();// Status of the Quasmon before fragmentation
-      if(ist)
+     G4int f1Charge=theEnvironment.GetCharge();
+     G4int f1BaryoN=theEnvironment.GetA();
+     G4int nHad=theQHadrons.size();
+     if(nHad) for(G4int ih=0; ih<nHad; ih++)
+     {
+       f1Charge+=theQHadrons[ih]->GetCharge();
+       f1BaryoN+=theQHadrons[ih]->GetBaryonNumber();
+     }
+     G4int nQuas=theQuasmons.size();
+     if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
+     {
+       f1Charge+=theQuasmons[iqs]->GetCharge();
+       f1BaryoN+=theQuasmons[iqs]->GetBaryonNumber();
+     }
+     if(f1Charge!=totCharge || f1BaryoN!=totBaryoN)
+     {
+       G4cout<<"**G4QE::HQ:q#"<<iq<<",tC="<<totCharge<<",C="<<f1Charge<<",tB="<<totBaryoN
+             <<",B="<<f1BaryoN<<",E="<<theEnvironment<<G4endl;
+       if(nHad) for(G4int h=0; h<nHad; h++)
+       {
+         G4QHadron* cH = theQHadrons[h];
+         G4cout<<"G4QE::HQ:#"<<h<<",QC="<<cH->GetQC()<<",P="<<cH->GetPDGCode()<<G4endl;
+       }
+       if(nQuas) for(G4int q=0; q<nQuas; q++)
+       {
+         G4Quasmon* cQ = theQuasmons[q];
+         G4cout<<"G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
+       }
+     }
+#endif
+     G4int ist=theQuasmons[iq]->GetStatus();// Status of the Quasmon before fragmentation
+     if(ist)
 	     {
-        G4QHadronVector* output=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <---------+
-        G4int ast=theQuasmons[iq]->GetStatus();  // Quasmon's Status after fragmentation  ^
-        if(!ast) nlq--;                          // Reduce nlq if Quasmon decayed         ^
-        G4int nHadrons = output->size();         // A#of output Hadrons in the Quasmon    ^
+       G4QHadronVector* output=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <---------+
+       G4int ast=theQuasmons[iq]->GetStatus();  // Quasmon's Status after fragmentation  ^
+       if(!ast) nlq--;                          // Reduce nlq if Quasmon decayed         ^
+       G4int nHadrons = output->size();         // A#of output Hadrons in the Quasmon    ^
 #ifdef pdebug
-        G4cout<<"G4QEnv::HadrQE: ***Vacuum*** Q#"<<iq<<", nHadr="<<nHadrons<<G4endl; //   ^
+       G4cout<<"G4QEnv::HadrQE: ***Vacuum*** Q#"<<iq<<", nHadr="<<nHadrons<<G4endl; //   ^
 #endif
-        if(nHadrons>0)                           // Copy QHadrons-Quasmon to Output       ^
+       if(nHadrons>0)                           // Copy QHadrons-Quasmon to Output       ^
 	       {
-    	     for (G4int ih=0; ih<nHadrons; ih++)    // LOOP over QHadrons of the Quasmon     ^
-          {
-            //G4QHadron* curH=new G4QHadron(output->operator[](ih));// (Del 7 lines below)^
-            G4QHadron* curH = new G4QHadron((*output)[ih]); // (Deleted 7 lines below)    ^
+   	     for (G4int ih=0; ih<nHadrons; ih++)    // LOOP over QHadrons of the Quasmon     ^
+         {
+           //G4QHadron* curH=new G4QHadron(output->operator[](ih));// (Del 7 lines below)^
+           G4QHadron* curH = new G4QHadron((*output)[ih]); // (Deleted 7 lines below)    ^
 #ifdef pdebug
-            G4cout<<"G4QEnv::HadrQE:Vacuum, H#"<<ih<<", QPDG="<<curH->GetQPDG() //        ^
-                  <<",4M="<<curH->Get4Momentum()<<G4endl; //                              ^
+           G4cout<<"G4QEnv::HadrQE:Vacuum, H#"<<ih<<", QPDG="<<curH->GetQPDG() //        ^
+                 <<",4M="<<curH->Get4Momentum()<<G4endl; //                              ^
 #endif
-            theQHadrons.push_back(curH);         // Fill hadron-copy (delete equivalent)  ^
-          }
+           theQHadrons.push_back(curH);         // Fill hadron-copy (delete equivalent)  ^
+         }
 	       }                                        //                                       ^
-        else                                     // => "Quasmon can't decay" case         ^
+       else                                     // => "Quasmon can't decay" case         ^
 								{                                        //                                       ^
-          G4QContent totQC=theQuasmons[iq]->GetQC();//                                    ^
-          G4int     tQBN=totQC.GetBaryonNumber();// Baryon Number of not decayed Quasmon  ^
-          G4QNucleus     tqN(totQC);             // Define the quasmon as a nucleus       ^
-          G4double   gsM=tqN.GetMZNS();          // GS Mass                               ^
-          G4LorentzVector tot4M=theQuasmons[iq]->Get4Momentum();
-          G4double totQM=tot4M.m();              // Real Mass of Quasmon                  ^
-          if(tQBN>0&&totQM>gsM)                  // => "Try Quasmon evaporation" case     ^
+         G4QContent totQC=theQuasmons[iq]->GetQC();//                                    ^
+         G4int     tQBN=totQC.GetBaryonNumber();// Baryon Number of not decayed Quasmon  ^
+         G4QNucleus     tqN(totQC);             // Define the quasmon as a nucleus       ^
+         G4double   gsM=tqN.GetMZNS();          // GS Mass                               ^
+         G4LorentzVector tot4M=theQuasmons[iq]->Get4Momentum();
+         G4double totQM=tot4M.m();              // Real Mass of Quasmon                  ^
+         if(tQBN>0&&totQM>gsM)                  // => "Try Quasmon evaporation" case     ^
 										{                                      //                                       ^
-            G4QHadron* nuclQ = new G4QHadron(totQC,tot4M); //                             ^
+           G4QHadron* nuclQ = new G4QHadron(totQC,tot4M); //                             ^
 #ifdef fdebug
-            G4cout<<"G4QEnv::HadrQE:Vac,tQC"<<totQC<<",t4M="<<tot4M<<G4endl; //           ^
+           G4cout<<"G4QEnv::HadrQE:Vac,tQC"<<totQC<<",t4M="<<tot4M<<G4endl; //           ^
 #endif
-            EvaporateResidual(nuclQ);            // Evaporate ResNuc (del.equiv)          ^
-            theQuasmons[iq]->KillQuasmon();      // Kill evaporated Quasmon               ^
-            nlq--;                               //                                       ^
+           EvaporateResidual(nuclQ);            // Evaporate ResNuc (del.equiv)          ^
+           theQuasmons[iq]->KillQuasmon();      // Kill evaporated Quasmon               ^
+           nlq--;                               //                                       ^
 		        }
-          else if(iq+1<nQuasmons&&nlq>1)         // => "Try to merge with next" case      ^
+         else if(iq+1<nQuasmons&&nlq>1)         // => "Try to merge with next" case      ^
 		        {
-            G4int s=theQuasmons[iq+1]->GetStatus();//Status of the next Quasmon           ^
-            theQuasmons[iq+1]->IncreaseBy(theQuasmons[iq]);// Merge with the next Quasmon ^
-            theQuasmons[iq]->KillQuasmon();      // Kill the week Quasmon                 ^
-            if(s) nlq--;                         // Reduce a number of "living Quasmons"  ^
+           G4int s=theQuasmons[iq+1]->GetStatus();//Status of the next Quasmon           ^
+           theQuasmons[iq+1]->IncreaseBy(theQuasmons[iq]);// Merge with the next Quasmon ^
+           theQuasmons[iq]->KillQuasmon();      // Kill the week Quasmon                 ^
+           if(s) nlq--;                         // Reduce a number of "living Quasmons"  ^
 		        }
-          else if(iq+1==nQuasmons&&iq&&nlq>1)    // => "Quasmon stack is exhosted" case   ^
+         else if(iq+1==nQuasmons&&iq&&nlq>1)    // => "Quasmon stack is exhosted" case   ^
 		        {
-            G4int s=theQuasmons[0]->GetStatus(); // Status of the first Quasmon           ^
-            theQuasmons[0]->IncreaseBy(theQuasmons[iq]);// Merge with the first Quasmon   ^
-            theQuasmons[iq]->KillQuasmon();      // Kill the week Quasmon                 ^
-            if(s) nlq--;                         // Reduce a number of "living Quasmons"  ^
+           G4int s=theQuasmons[0]->GetStatus(); // Status of the first Quasmon           ^
+           theQuasmons[0]->IncreaseBy(theQuasmons[iq]);// Merge with the first Quasmon   ^
+           theQuasmons[iq]->KillQuasmon();      // Kill the week Quasmon                 ^
+           if(s) nlq--;                         // Reduce a number of "living Quasmons"  ^
 		        }
 		        else                                   // "Have a chance to recover" case       ^
 		        {                                      //                                       ^
@@ -1462,3741 +1462,3739 @@ G4QHadronVector  G4QEnvironment::HadronizeQEnvironment()
 		          G4cout<<"***G4QE::HQE:"<<iq<<",n="<<nHadrons<<",Tot="<<totQC<<totQM<<G4endl;//^
 		          for (G4int kq=0; kq<nQuasmons; kq++) // LOOP over Quasmons for DEBUG PRINTING ^
 														G4cout<<kq<<",St/QC="<<theQuasmons[kq]->GetStatus()<<theQuasmons[kq] //     ^
-                    ->GetQC()<<",M="<<theQuasmons[kq]->Get4Momentum().m()<<G4endl; //     ^
+                   ->GetQC()<<",M="<<theQuasmons[kq]->Get4Momentum().m()<<G4endl; //     ^
 #endif
-            G4int nOfOUT = theQHadrons.size();   // Total #of QHadrons at this point      ^
-            G4double  dM = totQM-gsM;            // Excitation of the Quasmon             ^
-            G4bool corrf = true;                 // False when corrected & needs to quit  ^
-            while(nOfOUT && corrf)               // LOOP over all existing QHadrons       ^
+           G4int nOfOUT = theQHadrons.size();   // Total #of QHadrons at this point      ^
+           G4double  dM = totQM-gsM;            // Excitation of the Quasmon             ^
+           G4bool corrf = true;                 // False when corrected & needs to quit  ^
+           while(nOfOUT && corrf)               // LOOP over all existing QHadrons       ^
 			         {                                    //                                       ^
-              G4QHadron*     theLast = theQHadrons[nOfOUT-1];     //  Remember            ^
-              G4LorentzVector last4M = theLast->Get4Momentum();   //  all                 ^
-              G4QContent      lastQC = theLast->GetQC();          //  content             ^
-              G4int           lastS  = lastQC.GetStrangeness();   //  of    // Only       ^
-              G4int           totS   = totQC.GetStrangeness();    //  the   // for        ^
-              G4int           nFr    = theLast->GetNFragments();  //  Last  // if()       ^
-              G4int           gam    = theLast->GetPDGCode();     //        //            ^
+             G4QHadron*     theLast = theQHadrons[nOfOUT-1];     //  Remember            ^
+             G4LorentzVector last4M = theLast->Get4Momentum();   //  all                 ^
+             G4QContent      lastQC = theLast->GetQC();          //  content             ^
+             G4int           lastS  = lastQC.GetStrangeness();   //  of    // Only       ^
+             G4int           totS   = totQC.GetStrangeness();    //  the   // for        ^
+             G4int           nFr    = theLast->GetNFragments();  //  Last  // if()       ^
+             G4int           gam    = theLast->GetPDGCode();     //        //            ^
 			           if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1)//=> Skip K,gam & decayed ^
-              {                                  //                                       ^
-                G4QHadron* thePrev = theQHadrons[nOfOUT-2];// Kill Prev & make Last->Prev ^
-                theQHadrons.pop_back();          // theLastQHadron is excluded from OUTPUT^
-                theQHadrons.pop_back();          // thePrevQHadron is excluded from OUTPUT^
-                theQHadrons.push_back(thePrev);  // thePrev becomes theLast as an object  ^
-                delete     theLast;              // the Last QHadron is destructed        ^
-                theLast = thePrev;               // Update parameters (thePrev*->theLast*)^
-                last4M = theLast->Get4Momentum();// 4Mom of the previouse Quasmon         ^
-                lastQC = theLast->GetQC();       // Quark Content of the previouse Quasmon^
+             {                                  //                                       ^
+               G4QHadron* thePrev = theQHadrons[nOfOUT-2];// Kill Prev & make Last->Prev ^
+               theQHadrons.pop_back();          // theLastQHadron is excluded from OUTPUT^
+               theQHadrons.pop_back();          // thePrevQHadron is excluded from OUTPUT^
+               theQHadrons.push_back(thePrev);  // thePrev becomes theLast as an object  ^
+               delete     theLast;              // the Last QHadron is destructed        ^
+               theLast = thePrev;               // Update parameters (thePrev*->theLast*)^
+               last4M = theLast->Get4Momentum();// 4Mom of the previouse Quasmon         ^
+               lastQC = theLast->GetQC();       // Quark Content of the previouse Quasmon^
 			           }                                  //                                       ^
-              else                               // Just Clear and destroy theLast        ^
+             else                               // Just Clear and destroy theLast        ^
 			           {                                  //                                       ^
-                theQHadrons.pop_back();          // theLastQHadron is excluded from OUTPUT^
-                delete         theLast;          // theLastQHadron is deleated as instance^
+               theQHadrons.pop_back();          // theLastQHadron is excluded from OUTPUT^
+               delete         theLast;          // theLastQHadron is deleated as instance^
 			           }                                  //                                       ^
-              totQC+=lastQC;                     // Update (increase) the total QC        ^
-              tot4M+=last4M;                     // Update (increase) the total 4-momentum^
-              totQM=tot4M.m();                   // Calculate new real total mass         ^
-              G4QNucleus nN(totQC);              // Define the Quasmon as a nucleus       ^
-              gsM=nN.GetMZNS();                  // Calculate the new GS Mass             ^
-              dM = totQM-gsM;                    // Escitation energy for the Quasmon     ^
-              if(dM>0)                           // "Mass of Q is big enough" case        ^
+             totQC+=lastQC;                     // Update (increase) the total QC        ^
+             tot4M+=last4M;                     // Update (increase) the total 4-momentum^
+             totQM=tot4M.m();                   // Calculate new real total mass         ^
+             G4QNucleus nN(totQC);              // Define the Quasmon as a nucleus       ^
+             gsM=nN.GetMZNS();                  // Calculate the new GS Mass             ^
+             dM = totQM-gsM;                    // Escitation energy for the Quasmon     ^
+             if(dM>0)                           // "Mass of Q is big enough" case        ^
 			           {                                  //                                       ^
-                theQuasmons[iq]->InitQuasmon(totQC,tot4M);// Update the week Quasmon      ^
-                G4QHadronVector* curout=theQuasmons[iq]->Fragment(vE,1);//!DESTROY! <---+ ^
-                G4int ast=theQuasmons[iq]->GetStatus();  // Status of the Quasmon       ^ ^
-                if(!ast) nlq--;                  // Reduce nlq if Quasmon decayed       ^ ^
-                G4int nHadrons=curout->size();   // A#of outputQHadrons in theDecayedQ  ^ ^
+               theQuasmons[iq]->InitQuasmon(totQC,tot4M);// Update the week Quasmon      ^
+               G4QHadronVector* curout=theQuasmons[iq]->Fragment(vE,1);//!DESTROY! <---+ ^
+               G4int ast=theQuasmons[iq]->GetStatus();  // Status of the Quasmon       ^ ^
+               if(!ast) nlq--;                  // Reduce nlq if Quasmon decayed       ^ ^
+               G4int nHadrons=curout->size();   // A#of outputQHadrons in theDecayedQ  ^ ^
 #ifdef pdebug
-                G4cout<<"G4QEnv::HadrQE:VacuumRecoverQ#"<<iq<<",n="<<nHadrons<<G4endl;//^ ^
+               G4cout<<"G4QEnv::HadrQE:VacuumRecoverQ#"<<iq<<",n="<<nHadrons<<G4endl;//^ ^
 #endif
-                if(nHadrons>0)                   // => "QHadrons from Quasmon to Output"^ ^
+               if(nHadrons>0)                   // => "QHadrons from Quasmon to Output"^ ^
 				            {                                //                                     ^ ^
-    	             for (G4int ih=0; ih<nHadrons; ih++) // LOOP over Hadrons of theQuasmon^ ^
+   	             for (G4int ih=0; ih<nHadrons; ih++) // LOOP over Hadrons of theQuasmon^ ^
 				              {                              //                                     ^ ^
-                    //G4QHadron* curH = new G4QHadron(curout->operator[](ih)); //       ^ ^
-                    G4QHadron* curH = new G4QHadron((*curout)[ih]); //                  ^ ^
+                   //G4QHadron* curH = new G4QHadron(curout->operator[](ih)); //       ^ ^
+                   G4QHadron* curH = new G4QHadron((*curout)[ih]); //                  ^ ^
 #ifdef pdebug
-                    G4cout<<"G4QEnv::HadrQE:Recovered, H#"<<ih<<", QPDG=" //            ^ ^
-                          <<curH->GetQPDG()<<",4M="<<curH->Get4Momentum()<<G4endl;  //  ^ ^
+                   G4cout<<"G4QEnv::HadrQE:Recovered, H#"<<ih<<", QPDG=" //            ^ ^
+                         <<curH->GetQPDG()<<",4M="<<curH->Get4Momentum()<<G4endl;  //  ^ ^
 #endif
-                    totQC-=curH->GetQC();        // totQC recalculation                 ^ ^
+                   totQC-=curH->GetQC();        // totQC recalculation                 ^ ^
 					               tot4M-=curH->Get4Momentum(); // tot4M recalculation                 ^ ^
-                    theQHadrons.push_back(curH); // Fill hadron-copy (delete equivalent)^ ^
-                    //delete curout->operator[](ih);//>-Necessary to delete instances*>-^ ^
-                    delete (*curout)[ih];        // >-*Necessary to delete instances*>--^ ^
-                  } // End of LOOP over Hadrons of the Quasmon                          ^ ^
-                  curout->clear();               //                                     ^ ^
-                  delete curout;                 //>*Necessary to delete VectPointers*>=^ ^
-                  corrf = false;                 // Corrected: go out of the while loop ^ ^
-                  //break;                       // @@ ??                               ^ ^
+                   theQHadrons.push_back(curH); // Fill hadron-copy (delete equivalent)^ ^
+                   //delete curout->operator[](ih);//>-Necessary to delete instances*>-^ ^
+                   delete (*curout)[ih];        // >-*Necessary to delete instances*>--^ ^
+                 } // End of LOOP over Hadrons of the Quasmon                          ^ ^
+                 curout->clear();               //                                     ^ ^
+                 delete curout;                 //>*Necessary to delete VectPointers*>=^ ^
+                 corrf = false;                 // Corrected: go out of the while loop ^ ^
+                 //break;                       // @@ ??                               ^ ^
 	               } // End of check for existing output Hadrons in the Quasmon            ^ ^
-                else                             //                                     ^ ^
+               else                             //                                     ^ ^
 				            {                                //                                     ^ ^
-                  for_each(curout->begin(), curout->end(), DeleteQHadron()); // >-------^ ^
-                  curout->clear();               //                                     ^ ^
-                  delete curout;                 //>*Necessary to delete VectPointers>--^ ^
+                 for_each(curout->begin(), curout->end(), DeleteQHadron()); // >-------^ ^
+                 curout->clear();               //                                     ^ ^
+                 delete curout;                 //>*Necessary to delete VectPointers>--^ ^
 				            }                                //                                       ^
 			           }                                  //                                       ^
-              nOfOUT  = theQHadrons.size();      // Update the value of OUTPUT entries    ^
+             nOfOUT  = theQHadrons.size();      // Update the value of OUTPUT entries    ^
 #ifdef rdebug
-              G4int tC=totInC;                   // Vacuum: No ResidualEnvironCharge      ^
-              G4LorentzVector t4M=totIn4M;       // Vacuum: No ResidualEnvironment 4-Mom  ^
+             G4int tC=totInC;                   // Vacuum: No ResidualEnvironCharge      ^
+             G4LorentzVector t4M=totIn4M;       // Vacuum: No ResidualEnvironment 4-Mom  ^
 	             for (G4int js=0; js<nQuasmons; js++) // Subtract 4mom's of Quasmons from dif^
 			           {                                  //                                       ^
 	               G4Quasmon*      pQ = theQuasmons[js]; //                                  ^
-                if(pQ->GetStatus())              // Subtract only if Quasmon is alive     ^
+               if(pQ->GetStatus())              // Subtract only if Quasmon is alive     ^
 				            {                                //                                       ^
-                  G4LorentzVector Q4M= pQ->Get4Momentum(); //                             ^
-                  t4M               -= Q4M;                //                             ^
-                  tC                -= pQ->GetQC().GetCharge(); //                        ^
-                }                                //                                       ^
-                else G4cout<<"G4QE::HQ:SUM-4-Mom s("<<js<<")="<<pQ->GetStatus()<<G4endl;//^
+                 G4LorentzVector Q4M= pQ->Get4Momentum(); //                             ^
+                 t4M               -= Q4M;                //                             ^
+                 tC                -= pQ->GetQC().GetCharge(); //                        ^
+               }                                //                                       ^
+               else G4cout<<"G4QE::HQ:SUM-4-Mom s("<<js<<")="<<pQ->GetStatus()<<G4endl;//^
 	             } // End of Quasmons4Momentum subtractions                                  ^
-              if(nOfOUT) for(G4int jpo=0; jpo<nOfOUT; jpo++)// LOOP over output hadrons   ^
+             if(nOfOUT) for(G4int jpo=0; jpo<nOfOUT; jpo++)// LOOP over output hadrons   ^
 			           {                                  //                                       ^
-                G4int hsNF  = theQHadrons[jpo]->GetNFragments();//A#of secondary fragments^
-                if(!hsNF)                                   // Subtract only final hadrons^
-                {
-                  G4LorentzVector hs4Mom = theQHadrons[jpo]->Get4Momentum(); //           ^
-                  t4M                   -= hs4Mom;                           //           ^
-                  tC                    -= theQHadrons[jpo]->GetCharge();    //           ^
-                }                                //                                       ^
-              }                                  //                                       ^
-              G4cout<<"G4QE::HQ:|||Vacuum|||4-MomCHECK|||d4M="<<t4M<<",dC="<<tC<<G4endl;//^
+               G4int hsNF  = theQHadrons[jpo]->GetNFragments();//A#of secondary fragments^
+               if(!hsNF)                                   // Subtract only final hadrons^
+               {
+                 G4LorentzVector hs4Mom = theQHadrons[jpo]->Get4Momentum(); //           ^
+                 t4M                   -= hs4Mom;                           //           ^
+                 tC                    -= theQHadrons[jpo]->GetCharge();    //           ^
+               }                                //                                       ^
+             }                                  //                                       ^
+             G4cout<<"G4QE::HQ:|||Vacuum|||4-MomCHECK|||d4M="<<t4M<<",dC="<<tC<<G4endl;//^
 #endif
 		          }                                    // End of the WHILE LOOP                 ^
 		          //if(!nOfOUT&&nQuasmons==1)          // TRY TO EVAPORATE THE TOTAL SYSTEM     ^
 		          if((!nOfOUT&&nQuasmons==1)||theEnvironment.GetPDGCode()==NUCPDG)//EvaporTotal ^
 			         {                                    //                                       ^
-              G4int totS=totQC.GetStrangeness(); //  Total Strangeness                    ^
-              //G4int totBN=totQC.GetBaryonNumber();// Total Baryon Number                ^
-              G4int totPDG=totQC.GetZNSPDGCode();// Convert QC to PDGCOde for the nucleus ^
-              if(totS) totPDG-=totS*999999;      // @@ ??                                 ^
+             G4int totS=totQC.GetStrangeness(); //  Total Strangeness                    ^
+             //G4int totBN=totQC.GetBaryonNumber();// Total Baryon Number                ^
+             G4int totPDG=totQC.GetZNSPDGCode();// Convert QC to PDGCOde for the nucleus ^
+             if(totS) totPDG-=totS*999999;      // @@ ??                                 ^
 #ifdef fdebug
 		            G4cout<<"G4QE::HQE: totPDG="<<totPDG<<",totM="<<totQM<<G4endl; //           ^
 #endif
-              G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create a Hadron-ResidualNucl^
-              CleanUp();                         //                                       ^
-              EvaporateResidual(evH);            // Evaporate ResNuc (del.equiv)          ^
-              for_each(output->begin(), output->end(), DeleteQHadron());// >--------------^
-              output->clear();                   //                                       ^
-              delete output;                     // >=====================================^
-              return theQHadrons;                //                                       ^
-            }                                    //                                       ^
+             G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create a Hadron-ResidualNucl^
+             CleanUp();                         //                                       ^
+             EvaporateResidual(evH);            // Evaporate ResNuc (del.equiv)          ^
+             for_each(output->begin(), output->end(), DeleteQHadron());// >--------------^
+             output->clear();                   //                                       ^
+             delete output;                     // >=====================================^
+             return theQHadrons;                //                                       ^
+           }                                    //                                       ^
 		          else if(!nOfOUT)                     // Still remain not used Quasmons        ^
 			         {                                    //                                       ^
 		            G4cerr<<"***G4QE::HQ:T="<<tot4M<<totQC<<",M="<<totQM<<"< gsM=" //           ^
-                    <<gsM<<",d="<<dM<<",Env="<<theEnvironment<<G4endl; //                 ^
-              throw G4QException("G4QEnvironment::HadronizeQEnv: Can't decay Quasmon");// ^
+                   <<gsM<<",d="<<dM<<",Env="<<theEnvironment<<G4endl; //                 ^
+             throw G4QException("G4QEnvironment::HadronizeQEnv: Can't decay Quasmon");// ^
 	           }                                    //                                       ^
 		        } // End of PANIC treatment                                                     ^
 		      } // End of trouble handling with Quasmon decay in Vacuum                         ^
-        for_each(output->begin(), output->end(), DeleteQHadron());  // >------------------^
-        output->clear();                         //                                       ^
-        delete output;                           // >=====================================^
+       for_each(output->begin(), output->end(), DeleteQHadron());  // >------------------^
+       output->clear();                         //                                       ^
+       delete output;                           // >=====================================^
 	     } // End of check for the already decayed Quasmon
 	   } // End of the LOOP over Quasmons
-  }
-  else                                           // ==> "Nuclear environment" case
-  {
+ }
+ else                                           // ==> "Nuclear environment" case
+ {
 #ifdef rdebug
-    G4cout<<"G4QEnv::HadrQE:FRAGMENTATION IN NUCLEAR ENVIRONMENT nQ="<<nQuasmons<<G4endl;
-    G4int totInC=theEnvironment.GetZ();
-    G4LorentzVector totIn4M=theEnvironment.Get4Momentum();
+   G4cout<<"G4QEnv::HadrQE:FRAGMENTATION IN NUCLEAR ENVIRONMENT nQ="<<nQuasmons<<G4endl;
+   G4int totInC=theEnvironment.GetZ();
+   G4LorentzVector totIn4M=theEnvironment.Get4Momentum();
 	   for (G4int is=0; is<nQuasmons; is++) // Sum 4mom's of Quasmons for comparison
 	   {
 	     G4Quasmon*      pQ = theQuasmons[is];
-      G4LorentzVector Q4M= pQ->Get4Momentum();
-      totIn4M           += Q4M;
-      totInC            += pQ->GetQC().GetCharge();
+     G4LorentzVector Q4M= pQ->Get4Momentum();
+     totIn4M           += Q4M;
+     totInC            += pQ->GetQC().GetCharge();
 	   } // End of TotInitial4Momentum summation LOOP over Quasmons
-    G4int nsHadr  = theQHadrons.size();        // Update the value of OUTPUT entries
-    if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
-    {
-      G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
-      if(!hsNF)                                        // Add only final hadrons
-      {
-        G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum();
-        totIn4M          += hs4Mom;
-        totInC           += theQHadrons[jso]->GetCharge();
-      }
-    }
-#endif
-    //G4int   c3Max = 27;
-    //G4int   c3Max = 9;                    // Max#of "no hadrons" steps (reduced below?)
-    //G4int   c3Max = 3;
-    G4int   c3Max = 1;
-    //G4int   premC = 27;
-    //G4int   premC = 3;
-    G4int   premC = 1;
-    G4int   envA=theEnvironment.GetA();
-    //if(envA>1&&envA<13) premC = 24/envA;
-    //if(envA>1&&envA<19) premC = 36/envA;
-    //if(envA>1&&envA<25) premC = 48/envA;
-    if(envA>1&&envA<41) premC = 80/envA;
-    G4int  sumstat= 2;                     // Sum of statuses of all Quasmons
-    G4bool force  = false;                 // Prototype of the Force Major Flag
-    G4int cbR     =0;                      // Counter of the "Stoped by Coulomb Barrier"
-    //
-    G4int cbRM    =1;                      // MaxCounter of the "StopedByCoulombBarrier"
-    //G4int cbRM    =3;                      // MaxCounter of the "StopedByCoulombBarrier"
-    //G4int cbRM    =9;                      // MaxCounter of the "Stoped byCoulombBarrier"
-    G4int totC    = 0;                     // Counter to break the "infinit" loop
-    //G4int totCM   = 227;                   // Limit for the "infinit" loop counter
-    G4int totCM   = envA;                   // Limit for the "infinit" loop counter
-    //G4int totCM   = 27;                    // Limit for this counter
-    G4int nCnMax = 1;                      // MaxCounterOfHadrFolts for shortCutSolutions
-    //G4int nCnMax = 3;                      // MaxCounterOfHadrFolts for shortCutSolutions
-    //G4int nCnMax = 9;                      // MaxCounterOfHadrFolts for shortCutSolutions
-    G4bool first=true;                     // Flag of the first interaction (only NucMedia)
-    while (sumstat||totC<totCM)            // ===***=== The MAIN "FOREVER" LOOP ===***===
+   G4int nsHadr  = theQHadrons.size();        // Update the value of OUTPUT entries
+   if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
+   {
+     G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
+     if(!hsNF)                                        // Add only final hadrons
+     {
+       G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum();
+       totIn4M          += hs4Mom;
+       totInC           += theQHadrons[jso]->GetCharge();
+     }
+   }
+#endif
+   //G4int   c3Max = 27;
+   //G4int   c3Max = 9;                    // Max#of "no hadrons" steps (reduced below?)
+   //G4int   c3Max = 3;
+   G4int   c3Max = 1;
+   //G4int   premC = 27;
+   //G4int   premC = 3;
+   G4int   premC = 1;
+   G4int   envA=theEnvironment.GetA();
+   //if(envA>1&&envA<13) premC = 24/envA;
+   //if(envA>1&&envA<19) premC = 36/envA;
+   //if(envA>1&&envA<25) premC = 48/envA;
+   if(envA>1&&envA<41) premC = 80/envA;
+   G4int  sumstat= 2;                     // Sum of statuses of all Quasmons
+   G4bool force  = false;                 // Prototype of the Force Major Flag
+   G4int cbR     =0;                      // Counter of the "Stoped by Coulomb Barrier"
+   //
+   G4int cbRM    =1;                      // MaxCounter of the "StopedByCoulombBarrier"
+   //G4int cbRM    =3;                      // MaxCounter of the "StopedByCoulombBarrier"
+   //G4int cbRM    =9;                      // MaxCounter of the "Stoped byCoulombBarrier"
+   G4int totC    = 0;                     // Counter to break the "infinit" loop
+   //G4int totCM   = 227;                   // Limit for the "infinit" loop counter
+   G4int totCM   = envA;                   // Limit for the "infinit" loop counter
+   //G4int totCM   = 27;                    // Limit for this counter
+   G4int nCnMax = 1;                      // MaxCounterOfHadrFolts for shortCutSolutions
+   //G4int nCnMax = 3;                      // MaxCounterOfHadrFolts for shortCutSolutions
+   //G4int nCnMax = 9;                      // MaxCounterOfHadrFolts for shortCutSolutions
+   G4bool first=true;                     // Flag of the first interaction (only NucMedia)
+   while (sumstat||totC<totCM)            // ===***=== The MAIN "FOREVER" LOOP ===***===
 	   {
 #ifdef chdebug
-      G4int f2Charge=0;
-      G4int f2BaryoN=0;
-      if(theEnvironment.GetMass()>0.)
-      {
-        f2Charge=theEnvironment.GetCharge();
-        f2BaryoN=theEnvironment.GetA();
-      }
-      G4int nHad=theQHadrons.size();
-      if(nHad) for(G4int ih=0; ih<nHad; ih++)
-      {
-        f2Charge+=theQHadrons[ih]->GetCharge();
-        f2BaryoN+=theQHadrons[ih]->GetBaryonNumber();
-      }
-      G4int nQuas=theQuasmons.size();
-      if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
-      {
-        f2Charge+=theQuasmons[iqs]->GetCharge();
-        f2BaryoN+=theQuasmons[iqs]->GetBaryonNumber();
-      }
-      if(f2Charge!=totCharge || f2BaryoN!=totBaryoN)
-      {
-        G4cout<<"**G4QE::HQ:(NucEnv)i#"<<totC<<",tC="<<totCharge<<",C="<<f2Charge<<",tB="
-              <<totBaryoN<<",B="<<f2BaryoN<<",E="<<theEnvironment<<G4endl;
-        if(nHad) for(G4int h=0; h<nHad; h++)
-        {
-          G4QHadron* cH = theQHadrons[h];
-          G4cout<<"G4QE::HQ:#"<<h<<",QC="<<cH->GetQC()<<",P="<<cH->GetPDGCode()<<G4endl;
-        }
-        if(nQuas) for(G4int q=0; q<nQuas; q++)
-        {
-          G4Quasmon* cQ = theQuasmons[q];
-          G4cout<<"G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
-        }
-      }
-#endif
-      totC++;
-      if(nQuasmons==1&&sumstat==3) cbR++;
-      else cbR=0;
-      G4QContent envQC=theEnvironment.GetQCZNS();// QuarkCont of current NuclearEnvironment
-      G4QContent totQC=envQC;                    // Total QuarkContent in the system
-      G4double   envM =theEnvironment.GetMass(); // mass of NuclEnvironment (@@GetMZNS())
-      G4double   sumM =envM;                     // Sum of all residual masses in theSystem
-      G4LorentzVector env4M=theEnvironment.Get4Momentum();      
-      G4LorentzVector tot4M=env4M;               // 4-momentum of the Total System
-      sumstat         =0;
-      G4int     nCount=0;                        // Counter of notsuccessful fragmentations
-      G4int     fCount=0;                        // Counter of successful(notFinal) fragm's
+     G4int f2Charge=0;
+     G4int f2BaryoN=0;
+     if(theEnvironment.GetMass()>0.)
+     {
+       f2Charge=theEnvironment.GetCharge();
+       f2BaryoN=theEnvironment.GetA();
+     }
+     G4int nHad=theQHadrons.size();
+     if(nHad) for(G4int ih=0; ih<nHad; ih++)
+     {
+       f2Charge+=theQHadrons[ih]->GetCharge();
+       f2BaryoN+=theQHadrons[ih]->GetBaryonNumber();
+     }
+     G4int nQuas=theQuasmons.size();
+     if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
+     {
+       f2Charge+=theQuasmons[iqs]->GetCharge();
+       f2BaryoN+=theQuasmons[iqs]->GetBaryonNumber();
+     }
+     if(f2Charge!=totCharge || f2BaryoN!=totBaryoN)
+     {
+       G4cout<<"**G4QE::HQ:(NucEnv)i#"<<totC<<",tC="<<totCharge<<",C="<<f2Charge<<",tB="
+             <<totBaryoN<<",B="<<f2BaryoN<<",E="<<theEnvironment<<G4endl;
+       if(nHad) for(G4int h=0; h<nHad; h++)
+       {
+         G4QHadron* cH = theQHadrons[h];
+         G4cout<<"G4QE::HQ:#"<<h<<",QC="<<cH->GetQC()<<",P="<<cH->GetPDGCode()<<G4endl;
+       }
+       if(nQuas) for(G4int q=0; q<nQuas; q++)
+       {
+         G4Quasmon* cQ = theQuasmons[q];
+         G4cout<<"G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
+       }
+     }
+#endif
+     totC++;
+     if(nQuasmons==1&&sumstat==3) cbR++;
+     else cbR=0;
+     G4QContent envQC=theEnvironment.GetQCZNS();// QuarkCont of current NuclearEnvironment
+     G4QContent totQC=envQC;                    // Total QuarkContent in the system
+     G4double   envM =theEnvironment.GetMass(); // mass of NuclEnvironment (@@GetMZNS())
+     G4double   sumM =envM;                     // Sum of all residual masses in theSystem
+     G4LorentzVector env4M=theEnvironment.Get4Momentum();      
+     G4LorentzVector tot4M=env4M;               // 4-momentum of the Total System
+     sumstat         =0;
+     G4int     nCount=0;                        // Counter of notsuccessful fragmentations
+     G4int     fCount=0;                        // Counter of successful(notFinal) fragm's
 	     G4int     eCount=0;                        // Counter of not yet decayed Quasmons
 	     for (G4int iq=0; iq<nQuasmons; iq++)       // Sum up Quasmons for making a decision
 	     {
 	       G4Quasmon*      pQ = theQuasmons[iq];
-        G4QContent      QQC= pQ->GetQC();
-        totQC             += QQC;
-        G4LorentzVector Q4M= pQ->Get4Momentum();
-        tot4M             += Q4M;
-        G4double        QM = Q4M.m();
-        sumM              += QM;
-        G4int           Qst= pQ->GetStatus();
-        sumstat           += Qst;
+       G4QContent      QQC= pQ->GetQC();
+       totQC             += QQC;
+       G4LorentzVector Q4M= pQ->Get4Momentum();
+       tot4M             += Q4M;
+       G4double        QM = Q4M.m();
+       sumM              += QM;
+       G4int           Qst= pQ->GetStatus();
+       sumstat           += Qst;
 #ifdef pdebug
 	       G4cout<<"G4QEnv::HadrQE:#"<<iq<<", Qst="<<Qst<<", Q="<<Q4M<<Q4M.m()<<QQC<<", Env="
-              <<theEnvironment<<G4endl;
-#endif
-        if(Qst==1||Qst==3||Qst==4)
-        {
-          fCount++;                              // Incr. counterSuccessfulFragmentations
-          nCount=0;                             // SetCounterNotSuccessfulFragmentations
-        }
-        if(Qst>0)                  eCount++;     // Incr. counter of existing Quasmons 
+             <<theEnvironment<<G4endl;
+#endif
+       if(Qst==1||Qst==3||Qst==4)
+       {
+         fCount++;                              // Incr. counterSuccessfulFragmentations
+         nCount=0;                             // SetCounterNotSuccessfulFragmentations
+       }
+       if(Qst>0)                  eCount++;     // Incr. counter of existing Quasmons 
 	     } // End of summation LOOP over Quasmons
-      G4int      totS  =totQC.GetStrangeness();  // Total Strangeness of the Total System
-      G4int      totBN =totQC.GetBaryonNumber(); // Total Baryon Number of the Total System
-      G4int      totPDG=0;                       // Total PDG Code for the Current compound
-      G4double   totM  =0.;                      // min(GroundSt)Mass of theResidualSystem
-      if(totBN<2)  
+     G4int      totS  =totQC.GetStrangeness();  // Total Strangeness of the Total System
+     G4int      totBN =totQC.GetBaryonNumber(); // Total Baryon Number of the Total System
+     G4int      totPDG=0;                       // Total PDG Code for the Current compound
+     G4double   totM  =0.;                      // min(GroundSt)Mass of theResidualSystem
+     if(totBN<2)  
 	     {
-        totPDG=totQC.GetSPDGCode();              // Min totPDGCode for theCurrentCompound
-        if(totPDG) totM=G4QPDGCode(totPDG).GetMass(); // min Mass of the Residual System
-        else throw G4QException("G4QEnv::HadrQEnv: Impossible PDG for B=1");
-      }
-      else
+       totPDG=totQC.GetSPDGCode();              // Min totPDGCode for theCurrentCompound
+       if(totPDG) totM=G4QPDGCode(totPDG).GetMass(); // min Mass of the Residual System
+       else throw G4QException("G4QEnv::HadrQEnv: Impossible PDG for B=1");
+     }
+     else
 	     {
-        G4QNucleus totN(totQC,tot4M);            // Excited nucleus for theResidualSystem
-        totM=totN.GetMZNS();                     // min(GroundSt)Mass of theResidualSystem
-        totPDG=totN.GetPDG();                    // Total PDG Code for the Current compound
+       G4QNucleus totN(totQC,tot4M);            // Excited nucleus for theResidualSystem
+       totM=totN.GetMZNS();                     // min(GroundSt)Mass of theResidualSystem
+       totPDG=totN.GetPDG();                    // Total PDG Code for the Current compound
 	     }
 #ifdef fdebug
 	     G4cout<<"G4QEnv::HadrQE:totC="<<totC<<"<totCM="<<totCM<<",ss="<<sumstat<<G4endl;
 #endif
-      if(totC>=totCM||cbR>cbRM)
-      {
-        CleanUp();
-        G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl
-        EvaporateResidual(evH);             // Try to evaporate residual (del. equiv.)
-        return theQHadrons;
+     if(totC>=totCM||cbR>cbRM)
+     {
+       CleanUp();
+       G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl
+       EvaporateResidual(evH);             // Try to evaporate residual (del. equiv.)
+       return theQHadrons;
 	     }
-      // === Now we should be prepared for evaporation ===
-      G4int      totChg=totQC.GetCharge();    // Total Electric Charge of the Total System
+     // === Now we should be prepared for evaporation ===
+     G4int      totChg=totQC.GetCharge();    // Total Electric Charge of the Total System
 #ifdef pdebug
-      if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)
+     if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)
 		    G4cout<<"***G4QEnv::HadrQEnv: Meson (1) PDG="<<totPDG<<", M="<<tot4M.m()<<G4endl;
-      G4int           nOH=theQHadrons.size(); // A#of output hadrons
-      G4LorentzVector s4M=tot4M;              // Total 4-momentum (@@ only for checking)
-      if(nOH) for(G4int ih=0; ih<nOH; ih++) s4M+=theQHadrons[ih]->Get4Momentum();     
+     G4int           nOH=theQHadrons.size(); // A#of output hadrons
+     G4LorentzVector s4M=tot4M;              // Total 4-momentum (@@ only for checking)
+     if(nOH) for(G4int ih=0; ih<nOH; ih++) s4M+=theQHadrons[ih]->Get4Momentum();     
 	     G4cout<<"G4QEnv::HadrQE:tBN="<<totBN<<",s="<<sumstat<<",fC="<<fCount<<",eC="<<eCount
-            <<",En="<<theEnvironment<<",nH="<<nOH<<",tLV="<<s4M<<totQC<<nCount<<G4endl;
-#endif
-      if(totBN<2)                             // => "Baryons or Mesons" case (@@antiBaryon)
-      {
-        totPDG =totQC.GetSPDGCode();
-        if(totPDG && totPDG!=10 && totPDG!=1114 && totPDG!=2224)
-                                                         totM=G4QPDGCode(totPDG).GetMass();
-        else if(totPDG==1114) totM=mNeut+mPi;
-        else if(totPDG==2224) totM=mProt+mPi;
-        else if(totPDG==10)
+           <<",En="<<theEnvironment<<",nH="<<nOH<<",tLV="<<s4M<<totQC<<nCount<<G4endl;
+#endif
+     if(totBN<2)                             // => "Baryons or Mesons" case (@@antiBaryon)
+     {
+       totPDG =totQC.GetSPDGCode();
+       if(totPDG && totPDG!=10 && totPDG!=1114 && totPDG!=2224)
+                                                        totM=G4QPDGCode(totPDG).GetMass();
+       else if(totPDG==1114) totM=mNeut+mPi;
+       else if(totPDG==2224) totM=mProt+mPi;
+       else if(totPDG==10)
 		      {
-          G4QChipolino totChip(totQC);        // define the residual as a Chipolino
-          totM  =totChip.GetQPDG1().GetMass()+totChip.GetQPDG2().GetMass();
+         G4QChipolino totChip(totQC);        // define the residual as a Chipolino
+         totM  =totChip.GetQPDG1().GetMass()+totChip.GetQPDG2().GetMass();
 		      }
-        else
+       else
 		      {
-          G4cerr<<"***G4QEnv::HadrQE:totPDG="<<totPDG<<", totQC="<<totQC<<G4endl;
-          throw G4QException("G4QEnvironment::HadronizeQEnvir: ImpossibleHadron in CHIPS");
+         G4cerr<<"***G4QEnv::HadrQE:totPDG="<<totPDG<<", totQC="<<totQC<<G4endl;
+         throw G4QException("G4QEnvironment::HadronizeQEnvir: ImpossibleHadron in CHIPS");
 		      }
 	     }
-      G4double totMass = tot4M.m();           // Total effective Mass
-      G4bool   Premium = eCount&&premC&&envM; // Premium condition
-      G4int    count3  =0;
-      if(sumstat&&(fCount||Premium)&&!force&&count3<c3Max)//=>"Still try to decay Quasmons"
+     G4double totMass = tot4M.m();           // Total effective Mass
+     G4bool   Premium = eCount&&premC&&envM; // Premium condition
+     G4int    count3  =0;
+     if(sumstat&&(fCount||Premium)&&!force&&count3<c3Max)//=>"Still try to decay Quasmons"
 	     {
-        if(!fCount) premC--;                  // Reduce premium efforts counter
+       if(!fCount) premC--;                  // Reduce premium efforts counter
 	       if(nQuasmons) for (G4int jq=0; jq<nQuasmons; jq++)//FragmentationLOOP over Quasmons
 	       {
 	         G4Quasmon* pQ     = theQuasmons[jq];// Pointer to the CurrentQuasmon <--<--<--+
-          G4int      status = pQ->GetStatus();// Old status of the Quasmon              ^
+         G4int      status = pQ->GetStatus();// Old status of the Quasmon              ^
 #ifdef pdebug
 	         G4cout<<"G4QE::HQE:Status of Q#"<<jq<<" (before Fragment)="<<status<<G4endl;//^
 #endif
-          if(status)                          // Skip dead Quasmons                     ^
-          {                                   //                                        ^
-            G4int nQuas=eCount;
-            if(nQuas==1&&first) nQuas=-nQuas;
- 	          G4QHadronVector* output=pQ->Fragment(theEnvironment,nQuas);//<DESTRUCT<--<--^-+
+         if(status)                          // Skip dead Quasmons                     ^
+         {                                   //                                        ^
+           G4int nQuas=eCount;
+           if(nQuas==1&&first) nQuas=-nQuas;
+	          G4QHadronVector* output=pQ->Fragment(theEnvironment,nQuas);//<DESTRUCT<--<--^-+
 #ifdef pdebug
 	           G4cout<<"G4QE::HQE:Q#"<<jq<<",*afterFragm* Env="<<theEnvironment<<G4endl;// ^ ^
 #endif
-            envM =theEnvironment.GetMass();   // new mass of Nuclear Environment        ^ ^
-            status = pQ->GetStatus();         // NewStatus after FragmentationAttempt   ^ ^
-            if(!status) eCount--;             // Dec. ExistingQuasmonsCounter for Q=0   ^ ^
-            G4int nHadrons = output->size();  //                                        ^ ^
+           envM =theEnvironment.GetMass();   // new mass of Nuclear Environment        ^ ^
+           status = pQ->GetStatus();         // NewStatus after FragmentationAttempt   ^ ^
+           if(!status) eCount--;             // Dec. ExistingQuasmonsCounter for Q=0   ^ ^
+           G4int nHadrons = output->size();  //                                        ^ ^
 #ifdef rdebug
 	           G4cout<<"G4QE::HQE:**AfterFragmAttempt**#"<<jq<<",stat="<<status<<", Q4M="//^ ^
-                  <<pQ->Get4Momentum()<<", Env="<<theEnvironment<<",nH="<<nHadrons //   ^ ^
-                  <<",c3="<<count3<<" < "<<c3Max<<",eC="<<eCount<<G4endl;          //   ^ ^
-            G4int tC=totInC-theEnvironment.GetZ(); // Subtract theResidualEnvironCharge ^ ^
-            G4LorentzVector t4M=totIn4M;      // Compare with the total                 ^ ^
+                 <<pQ->Get4Momentum()<<", Env="<<theEnvironment<<",nH="<<nHadrons //   ^ ^
+                 <<",c3="<<count3<<" < "<<c3Max<<",eC="<<eCount<<G4endl;          //   ^ ^
+           G4int tC=totInC-theEnvironment.GetZ(); // Subtract theResidualEnvironCharge ^ ^
+           G4LorentzVector t4M=totIn4M;      // Compare with the total                 ^ ^
 			         G4LorentzVector theEnv4m=theEnvironment.Get4Momentum(); // Environment 4Mom ^ ^
 			         t4M-=theEnv4m;                    // Subtract the Environment 4-momentum    ^ ^
-            G4cout<<"G4QEnv::HadrQE:SUM-4Mom e4M="<<theEnv4m<<theEnvironment<<G4endl;// ^ ^
+           G4cout<<"G4QEnv::HadrQE:SUM-4Mom e4M="<<theEnv4m<<theEnvironment<<G4endl;// ^ ^
 	           for (G4int js=0; js<nQuasmons; js++)// Subtract 4mom's of Quasmons (compare)^ ^
-            {                                 //                                        ^ ^
+           {                                 //                                        ^ ^
 	             G4Quasmon*      prQ = theQuasmons[js];//                                  ^ ^
-              if(prQ->GetStatus())            // Subtract only if Quasmon is alive      ^ ^
-              {                               //                                        ^ ^
-                G4LorentzVector Q4M= prQ->Get4Momentum(); //                            ^ ^
-                G4QContent qQC= prQ->GetQC(); //                                        ^ ^
-                G4cout<<"G4QE::HQE:SUM-4Mom q("<<js<<")4M="<<Q4M<<",QC="<<qQC<<G4endl;//^ ^
-                t4M          -= Q4M;          //                                        ^ ^
-                tC           -= prQ->GetQC().GetCharge(); //                            ^ ^
+             if(prQ->GetStatus())            // Subtract only if Quasmon is alive      ^ ^
+             {                               //                                        ^ ^
+               G4LorentzVector Q4M= prQ->Get4Momentum(); //                            ^ ^
+               G4QContent qQC= prQ->GetQC(); //                                        ^ ^
+               G4cout<<"G4QE::HQE:SUM-4Mom q("<<js<<")4M="<<Q4M<<",QC="<<qQC<<G4endl;//^ ^
+               t4M          -= Q4M;          //                                        ^ ^
+               tC           -= prQ->GetQC().GetCharge(); //                            ^ ^
 			           }                               //                                        ^ ^
-              else G4cout<<"G4QE::HQE:SUM-4M,st("<<js<<")="<<prQ->GetStatus()<<G4endl;//^ ^
+             else G4cout<<"G4QE::HQE:SUM-4M,st("<<js<<")="<<prQ->GetStatus()<<G4endl;//^ ^
 	           } // End of Quasmons4Momentum subtractions                                  ^ ^
-            G4int nsbHadr=theQHadrons.size(); // Update the value of OUTPUT entries     ^ ^
-            if(nsbHadr) for(G4int jpo=0; jpo<nsbHadr; jpo++)// LOOP over output hadrons ^ ^
+           G4int nsbHadr=theQHadrons.size(); // Update the value of OUTPUT entries     ^ ^
+           if(nsbHadr) for(G4int jpo=0; jpo<nsbHadr; jpo++)// LOOP over output hadrons ^ ^
 			         {                                 //                                        ^ ^
-              G4int hsNF  = theQHadrons[jpo]->GetNFragments();// A#of out fragments     ^ ^
-              if(!hsNF)                       // Subtract only final hadrons            ^ ^
-              {                               //                                        ^ ^
-                G4LorentzVector hs4Mom = theQHadrons[jpo]->Get4Momentum(); //           ^ ^
-                G4int hPDG = theQHadrons[jpo]->GetPDGCode(); //                         ^ ^
-                G4cout<<"G4QE::HQE:SUM-4-Mom eh("<<jpo<<")4M="<<hs4Mom<<hPDG<<G4endl;// ^ ^
-                t4M          -= hs4Mom;       //                                        ^ ^
-                tC           -= theQHadrons[jpo]->GetCharge(); //                       ^ ^
+             G4int hsNF  = theQHadrons[jpo]->GetNFragments();// A#of out fragments     ^ ^
+             if(!hsNF)                       // Subtract only final hadrons            ^ ^
+             {                               //                                        ^ ^
+               G4LorentzVector hs4Mom = theQHadrons[jpo]->Get4Momentum(); //           ^ ^
+               G4int hPDG = theQHadrons[jpo]->GetPDGCode(); //                         ^ ^
+               G4cout<<"G4QE::HQE:SUM-4-Mom eh("<<jpo<<")4M="<<hs4Mom<<hPDG<<G4endl;// ^ ^
+               t4M          -= hs4Mom;       //                                        ^ ^
+               tC           -= theQHadrons[jpo]->GetCharge(); //                       ^ ^
 	  		         }                               // End of the "FinalHadron" IF            ^ ^
-            }                                 // End of the LOOP over output hadrons    ^ ^
-            if(nHadrons) for(G4int kpo=0; kpo<nHadrons; kpo++)//LOOP over out QHadrons  ^ ^
-            {                                 //                                        ^ ^
+           }                                 // End of the LOOP over output hadrons    ^ ^
+           if(nHadrons) for(G4int kpo=0; kpo<nHadrons; kpo++)//LOOP over out QHadrons  ^ ^
+           {                                 //                                        ^ ^
 	  		         //G4QHadron* insH =output->operator[](kpo);// Pointer to theOutputQHadron ^ ^
 	  		         G4QHadron* insH = (*output)[kpo];// Pointer to the Output QHadron         ^ ^
-              G4int qhsNF  = insH->GetNFragments(); // A#of secondary fragments         ^ ^
-              if(!qhsNF)                      // Subtract only final hadrons            ^ ^
+             G4int qhsNF  = insH->GetNFragments(); // A#of secondary fragments         ^ ^
+             if(!qhsNF)                      // Subtract only final hadrons            ^ ^
 			           {                               //                                        ^ ^
-                G4LorentzVector qhs4Mom = insH->Get4Momentum();// 4M of theOutputQHadron^ ^
-                G4int hPDG = insH->GetPDGCode(); //  PDG Code of the Q-output Hadron    ^ ^
-                G4cout<<"G4QE::HQE:SUM-4-Mom qh("<<kpo<<")4M="<<qhs4Mom<<hPDG<<G4endl;//^ ^
-                t4M          -= qhs4Mom;      //                                        ^ ^
-                tC           -= insH->GetCharge(); //                                   ^ ^
+               G4LorentzVector qhs4Mom = insH->Get4Momentum();// 4M of theOutputQHadron^ ^
+               G4int hPDG = insH->GetPDGCode(); //  PDG Code of the Q-output Hadron    ^ ^
+               G4cout<<"G4QE::HQE:SUM-4-Mom qh("<<kpo<<")4M="<<qhs4Mom<<hPDG<<G4endl;//^ ^
+               t4M          -= qhs4Mom;      //                                        ^ ^
+               tC           -= insH->GetCharge(); //                                   ^ ^
 			           }                               //                                        ^ ^
-            }                                 // End of the LOOP over output QHadrons   ^ ^
-            G4cout<<"G4QEnv::HadrQE:|||||4-MomCHECK||||d4M="<<t4M<<",dC="<<tC<<G4endl;//^ ^
-#endif
-            if(!status||status==1||nHadrons)  //OutHadronVector was filled in G4Q::Frag ^ ^
-            {                                 //                                        ^ ^
-              nCount=0;                       // Reset the NotSuccessfulFragmCounter    ^ ^
-              if(nHadrons>0)                  // Transfer QHadrons from Quasm to Output ^ ^
-              {                               //                                        ^ ^
-    	           for (G4int ih=0; ih<nHadrons; ih++) // LOOP over Q-output QHadrons      ^ ^
-                {                             //                                        ^ ^
+           }                                 // End of the LOOP over output QHadrons   ^ ^
+           G4cout<<"G4QEnv::HadrQE:|||||4-MomCHECK||||d4M="<<t4M<<",dC="<<tC<<G4endl;//^ ^
+#endif
+           if(!status||status==1||nHadrons)  //OutHadronVector was filled in G4Q::Frag ^ ^
+           {                                 //                                        ^ ^
+             nCount=0;                       // Reset the NotSuccessfulFragmCounter    ^ ^
+             if(nHadrons>0)                  // Transfer QHadrons from Quasm to Output ^ ^
+             {                               //                                        ^ ^
+   	           for (G4int ih=0; ih<nHadrons; ih++) // LOOP over Q-output QHadrons      ^ ^
+               {                             //                                        ^ ^
 				              //G4QHadron* inpH = output->operator[](ih); //                        ^ ^
 				              G4QHadron* inpH = (*output)[ih]; //                                   ^ ^
-                  G4int hC=inpH->GetCharge(); // Charge of the Hadron                   ^ ^
-                  G4int hF=inpH->GetNFragments();// Number of fragments                 ^ ^
-                  G4double hCB=0.;            // Coulomb Barrier                        ^ ^
-                  G4double hKE=0.;            // Kinetic Energy of the Hadron           ^ ^
-                  G4LorentzVector hLV=inpH->Get4Momentum(); //                          ^ ^
-#ifdef pdebug
-                  G4cout<<"G4QEnv::HadrQE:H#"<<ih<<", hC="<<hC<<",hF="<<hF<<",4M=" //   ^ ^
-                        <<hLV<<inpH->GetPDGCode()<<G4endl;  //                          ^ ^
-#endif
-                  G4bool can=hC&&!hF;         // Charged and not yet decayed hadron     ^ ^
-                  if(can)                     //                                        ^ ^
-                  {                           //                                        ^ ^
-                    G4int hB=inpH->GetBaryonNumber(); //                                ^ ^
-                    hCB=theEnvironment.CoulombBarrier(hC,hB); //                        ^ ^
-                    hKE=hLV.e()-hLV.m();      //                                        ^ ^
+                 G4int hC=inpH->GetCharge(); // Charge of the Hadron                   ^ ^
+                 G4int hF=inpH->GetNFragments();// Number of fragments                 ^ ^
+                 G4double hCB=0.;            // Coulomb Barrier                        ^ ^
+                 G4double hKE=0.;            // Kinetic Energy of the Hadron           ^ ^
+                 G4LorentzVector hLV=inpH->Get4Momentum(); //                          ^ ^
+#ifdef pdebug
+                 G4cout<<"G4QEnv::HadrQE:H#"<<ih<<", hC="<<hC<<",hF="<<hF<<",4M=" //   ^ ^
+                       <<hLV<<inpH->GetPDGCode()<<G4endl;  //                          ^ ^
+#endif
+                 G4bool can=hC&&!hF;         // Charged and not yet decayed hadron     ^ ^
+                 if(can)                     //                                        ^ ^
+                 {                           //                                        ^ ^
+                   G4int hB=inpH->GetBaryonNumber(); //                                ^ ^
+                   hCB=theEnvironment.CoulombBarrier(hC,hB); //                        ^ ^
+                   hKE=hLV.e()-hLV.m();      //                                        ^ ^
 				              }                           //                                        ^ ^
-                  if(can&&hKE<hCB)            // => "Suck Hadron in Quasm or Env" case  ^ ^
+                 if(can&&hKE<hCB)            // => "Suck Hadron in Quasm or Env" case  ^ ^
 				              {                           //                                        ^ ^
-                    if(status)                // => "Suck in the existing Quasmon" case ^ ^
-                    {                         //                                        ^ ^
-                      G4QContent tQC=inpH->GetQC()+pQ->GetQC();  //                     ^ ^
-                      G4LorentzVector tLV=hLV+pQ->Get4Momentum();//                     ^ ^
-                      pQ->InitQuasmon(tQC,tLV); // Reinitialize the current Quasmon     ^ ^
+                   if(status)                // => "Suck in the existing Quasmon" case ^ ^
+                   {                         //                                        ^ ^
+                     G4QContent tQC=inpH->GetQC()+pQ->GetQC();  //                     ^ ^
+                     G4LorentzVector tLV=hLV+pQ->Get4Momentum();//                     ^ ^
+                     pQ->InitQuasmon(tQC,tLV); // Reinitialize the current Quasmon     ^ ^
 #ifdef pdebug
 	                     G4cout<<"G4QE::HQE:Medium, H#"<<ih<<", QPDG="<<inpH->GetQPDG() // ^ ^
-                            <<",4M="<<inpH->Get4Momentum()<<" is suckedInQ"<<G4endl; // ^ ^
+                           <<",4M="<<inpH->Get4Momentum()<<" is suckedInQ"<<G4endl; // ^ ^
 #endif
 				                }                         //                                        ^ ^
-                    else                      // => "Suck in the existing Quasmon" case ^ ^
-                    {                         //                                        ^ ^
-                      G4QContent tQC=inpH->GetQC()+theEnvironment.GetQCZNS();//         ^ ^
-                      G4LorentzVector tLV=hLV+theEnvironment.Get4Momentum(); //         ^ ^
-                      theEnvironment=G4QNucleus(tQC,tLV); // Reinit currentEnvironment  ^ ^
+                   else                      // => "Suck in the existing Quasmon" case ^ ^
+                   {                         //                                        ^ ^
+                     G4QContent tQC=inpH->GetQC()+theEnvironment.GetQCZNS();//         ^ ^
+                     G4LorentzVector tLV=hLV+theEnvironment.Get4Momentum(); //         ^ ^
+                     theEnvironment=G4QNucleus(tQC,tLV); // Reinit currentEnvironment  ^ ^
 #ifdef pdebug
 	                     G4cout<<"G4QE::HQE:Med,H#"<<ih<<",PDG="<<inpH->GetQPDG()<<",4M="//^ ^
-                            <<inpH->Get4Momentum()<<" is suckedInEnvironment"<<G4endl;//^ ^
+                           <<inpH->Get4Momentum()<<" is suckedInEnvironment"<<G4endl;//^ ^
 #endif
 				                }                         // End of the STATUS IF                   ^ ^
 				              }                           // End of the E/Q suck Hdron IF           ^ ^
-                  else if(!hF)                // => "Hadron can go out" case            ^ ^
-                  {                           //                                        ^ ^
-                    G4QHadron* curH = new G4QHadron(inpH); //                           ^ ^
-#ifdef pdebug
-                    G4LorentzVector ph4M=curH->Get4Momentum(); // 4-mom of the hadron   ^ ^
-                    G4double phX=ph4M.x();    // p_x of the hadron                      ^ ^
-                    G4double phY=ph4M.y();    // p_y of the hadron                      ^ ^
-                    G4double phZ=ph4M.z();    // p_x of the hadron                      ^ ^
-                    G4double phCost=phZ/sqrt(phX*phX+phY*phY+phZ*phZ);// Hadr cos(theta)^ ^
+                 else if(!hF)                // => "Hadron can go out" case            ^ ^
+                 {                           //                                        ^ ^
+                   G4QHadron* curH = new G4QHadron(inpH); //                           ^ ^
+#ifdef pdebug
+                   G4LorentzVector ph4M=curH->Get4Momentum(); // 4-mom of the hadron   ^ ^
+                   G4double phX=ph4M.x();    // p_x of the hadron                      ^ ^
+                   G4double phY=ph4M.y();    // p_y of the hadron                      ^ ^
+                   G4double phZ=ph4M.z();    // p_x of the hadron                      ^ ^
+                   G4double phCost=phZ/sqrt(phX*phX+phY*phY+phZ*phZ);// Hadr cos(theta)^ ^
 	                   G4cout<<"G4QEnv::HadrQE:Medium, H#"<<ih<<",QPDG="<<curH->GetQPDG()//^ ^
-                          <<", 4M="<<ph4M<<", ct="<<phCost<<G4endl; //                  ^ ^
+                         <<", 4M="<<ph4M<<", ct="<<phCost<<G4endl; //                  ^ ^
 #endif
-                    theQHadrons.push_back(curH); // Fill hadron-copy (delete equivalent)^ ^
-                    totQC-=curH->GetQC();     //                                        ^ ^
-                    tot4M-=curH->Get4Momentum(); //                                     ^ ^
+                   theQHadrons.push_back(curH); // Fill hadron-copy (delete equivalent)^ ^
+                   totQC-=curH->GetQC();     //                                        ^ ^
+                   tot4M-=curH->Get4Momentum(); //                                     ^ ^
 				              }                           //                                        ^ ^
 				            }                             // ==> End of the LOOP over outQHadrons   ^ ^
-                pQ->ClearOutput();            // Hadrons are filled, Clear Frag-out <-<-^ ^
-                count3=0;                     // Reset counter of empty hadronizations    ^
-                //c3Max=1;                    // Reduce repetition Max to accelerate      ^
-                first=false;                  // First hadronization is for sure is over  ^
+               pQ->ClearOutput();            // Hadrons are filled, Clear Frag-out <-<-^ ^
+               count3=0;                     // Reset counter of empty hadronizations    ^
+               //c3Max=1;                    // Reduce repetition Max to accelerate      ^
+               first=false;                  // First hadronization is for sure is over  ^
 	             }                               //                                          ^
-              else count3++;                  // Increment counter of empty hadronizations^
+             else count3++;                  // Increment counter of empty hadronizations^
 			         }                                 //                                          ^
-            else if(status<0||status==2)      // => "PANIC or NOTHING was done" case      ^
-            {                                 //                                          ^
+           else if(status<0||status==2)      // => "PANIC or NOTHING was done" case      ^
+           {                                 //                                          ^
 #ifdef pdebug
 	             G4cout<<"G4QE::HQE:***PANIC***,status="<<status<<",nC="<<nCount<<G4endl; // ^
 #endif
 														nCount++;                       //                                          ^
-              if(eCount==1 && status<0 && CheckGroundState(pQ,true))// Correct & Finish   ^
-              {                               //                                          ^
-                for_each(output->begin(), output->end(), DeleteQHadron()); // ->->->------^
-                output->clear();              //                                          ^
-                delete output;                // >========================================^
-                pQ->KillQuasmon();            // If BackFusion succeeded, kill the Quasmon^
-                delete pQ;
-                eCount--;                     // Reduce the number of the living Quasmons ^
-                return theQHadrons;           //                                          ^
-              }                               //                                          ^
-              else if(status<0&&nHadrons)     // This is just a confusion in the status...^
-              {                               //                                          ^
+             if(eCount==1 && status<0 && CheckGroundState(pQ,true))// Correct & Finish   ^
+             {                               //                                          ^
+               for_each(output->begin(), output->end(), DeleteQHadron()); // ->->->------^
+               output->clear();              //                                          ^
+               delete output;                // >========================================^
+               pQ->KillQuasmon();            // If BackFusion succeeded, kill the Quasmon^
+               delete pQ;
+               eCount--;                     // Reduce the number of the living Quasmons ^
+               return theQHadrons;           //                                          ^
+             }                               //                                          ^
+             else if(status<0&&nHadrons)     // This is just a confusion in the status...^
+             {                               //                                          ^
 		              G4cerr<<"***G4QEnv::HadrQE: nH="<<nHadrons<<"< status="<<status<<G4endl;//^
-                for_each(output->begin(), output->end(), DeleteQHadron()); // -->-->-->---^
-                output->clear();              //                                          ^
-                delete output;                // >========================================^
-                throw G4QException("G4QEnvironment::HadronizeQEnvironment:DoNothingEr");//^
+               for_each(output->begin(), output->end(), DeleteQHadron()); // -->-->-->---^
+               output->clear();              //                                          ^
+               delete output;                // >========================================^
+               throw G4QException("G4QEnvironment::HadronizeQEnvironment:DoNothingEr");//^
 			           }                               //                                          ^
-              else if(status==2&&nCount>nCnMax)// Treat PANIC for stat=2 (NothingWasDone) ^
-              {                               //                                          ^
-                G4QContent qQC=pQ->GetQC();   // QuarkContent of the Quasmon              ^
-                G4int      pqC=qQC.GetCharge(); // Charge (nP) of the Current Quasmon     ^
-                G4int      pqS=qQC.GetStrangeness(); // Strangeness (nL) of theCurrQuasmon^
-                G4int      pqB=qQC.GetBaryonNumber(); // BaryNumber of the CurrentQuasmon ^
-                G4LorentzVector cq4M=pQ->Get4Momentum(); // 4Mom of the Current Quasmon   ^
-                G4double cqMass=cq4M.m();     // Real Mass of the current Quasmon         ^
-                G4double fqMass=G4QPDGCode(22).GetNuclMass(pqC,pqB-pqC-pqS,pqS);//CQ FreeM^
+             else if(status==2&&nCount>nCnMax)// Treat PANIC for stat=2 (NothingWasDone) ^
+             {                               //                                          ^
+               G4QContent qQC=pQ->GetQC();   // QuarkContent of the Quasmon              ^
+               G4int      pqC=qQC.GetCharge(); // Charge (nP) of the Current Quasmon     ^
+               G4int      pqS=qQC.GetStrangeness(); // Strangeness (nL) of theCurrQuasmon^
+               G4int      pqB=qQC.GetBaryonNumber(); // BaryNumber of the CurrentQuasmon ^
+               G4LorentzVector cq4M=pQ->Get4Momentum(); // 4Mom of the Current Quasmon   ^
+               G4double cqMass=cq4M.m();     // Real Mass of the current Quasmon         ^
+               G4double fqMass=G4QPDGCode(22).GetNuclMass(pqC,pqB-pqC-pqS,pqS);//CQ FreeM^
 #ifdef edebug
-    		          G4cout<<"G4QEnv::HQE:M="<<cqMass<<">fM="<<fqMass<<",S="<<pqS<<",C="<<pqC//^
-                      <<",ePDG="<<theEnvironment.GetPDG()<<",qQC="<<qQC<<",eC="<<eCount //^
-                      <<G4endl;                                                     //    ^
+   		          G4cout<<"G4QEnv::HQE:M="<<cqMass<<">fM="<<fqMass<<",S="<<pqS<<",C="<<pqC//^
+                     <<",ePDG="<<theEnvironment.GetPDG()<<",qQC="<<qQC<<",eC="<<eCount //^
+                     <<G4endl;                                                     //    ^
 #endif
-                if(pqB>0&&pqS<0&&cqMass>fqMass)// "AntiStrangeNucleus-Chipolino" case     ^
+               if(pqB>0&&pqS<0&&cqMass>fqMass)// "AntiStrangeNucleus-Chipolino" case     ^
 				            {                             //                                          ^
-                  G4QHadron* nuclQ = new G4QHadron(qQC,cq4M);// Hadron for AntiStrangeNuc.^
-                  theEnvironment.DecayAntiStrange(nuclQ,&theQHadrons);// AntiStrange(D.E.)^
-                  pQ->KillQuasmon();          // If BackFusion succeeded, kill theQuasmon ^
+                 G4QHadron* nuclQ = new G4QHadron(qQC,cq4M);// Hadron for AntiStrangeNuc.^
+                 theEnvironment.DecayAntiStrange(nuclQ,&theQHadrons);// AntiStrange(D.E.)^
+                 pQ->KillQuasmon();          // If BackFusion succeeded, kill theQuasmon ^
 #ifdef edebug
-     		           G4cout<<"G4QEnv::HQE:Status after kill (#"<<jq<<")="<<pQ->GetStatus()// ^
-                        <<", nH="<<theQHadrons.size()<<G4endl;                         // ^
-#endif
-                  tot4M-=cq4M;                // Update TotalResidNucleus for hadronizPro.^
-                  totQC-=qQC;                 // Update total QC for the HadronizationPro.^
-                  eCount--;                   // Reduce the number of the living Quasmons ^
-                }                             //                                          ^
-                else if(theEnvironment.GetPDG()!=NUCPDG) // ==> "NuclearEnvironment" case ^
+    		           G4cout<<"G4QEnv::HQE:Status after kill (#"<<jq<<")="<<pQ->GetStatus()// ^
+                       <<", nH="<<theQHadrons.size()<<G4endl;                         // ^
+#endif
+                 tot4M-=cq4M;                // Update TotalResidNucleus for hadronizPro.^
+                 totQC-=qQC;                 // Update total QC for the HadronizationPro.^
+                 eCount--;                   // Reduce the number of the living Quasmons ^
+               }                             //                                          ^
+               else if(theEnvironment.GetPDG()!=NUCPDG) // ==> "NuclearEnvironment" case ^
 				            {                             //                                          ^
-                  if(eCount>1)                //                                          ^
+                 if(eCount>1)                //                                          ^
 																		{                           //                                          ^
 #ifdef fdebug
 		                  G4cout<<"G4QE::HQE:TOTEVAP tPDG="<<totPDG<<",t4M="<<tot4M<<G4endl; // ^
 #endif
-                    G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create Hadron-ResidNuc^
-                    CleanUp();                //                                          ^
-                    EvaporateResidual(evH);   // Evaporate ResNuc (delete equivalemt)     ^
-                    for_each(output->begin(), output->end(), DeleteQHadron());// >--------^
-                    output->clear();          //                                          ^
-                    delete output;            // >==========>===========>=================^
-                    return theQHadrons;       //                                          ^
-                  }                           //                                          ^
-                  G4LorentzVector t4M=cq4M+theEnvironment.Get4Momentum(); // Q+E tot4Mom  ^
-                  G4double      tM=t4M.m();   // Real total (Quasmon+Environment) mass    ^
-                  G4QContent envQC=theEnvironment.GetQCZNS(); // QuarkCont of NucEnviron  ^
-                  G4QContent curQC=envQC+qQC; // Total Quark Content                      ^
-                  G4QNucleus curE(curQC);     // Pseudo nucleus for the Total System      ^
-                  G4double   curM=curE.GetGSMass();// min mass of the Total System        ^
+                   G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create Hadron-ResidNuc^
+                   CleanUp();                //                                          ^
+                   EvaporateResidual(evH);   // Evaporate ResNuc (delete equivalemt)     ^
+                   for_each(output->begin(), output->end(), DeleteQHadron());// >--------^
+                   output->clear();          //                                          ^
+                   delete output;            // >==========>===========>=================^
+                   return theQHadrons;       //                                          ^
+                 }                           //                                          ^
+                 G4LorentzVector t4M=cq4M+theEnvironment.Get4Momentum(); // Q+E tot4Mom  ^
+                 G4double      tM=t4M.m();   // Real total (Quasmon+Environment) mass    ^
+                 G4QContent envQC=theEnvironment.GetQCZNS(); // QuarkCont of NucEnviron  ^
+                 G4QContent curQC=envQC+qQC; // Total Quark Content                      ^
+                 G4QNucleus curE(curQC);     // Pseudo nucleus for the Total System      ^
+                 G4double   curM=curE.GetGSMass();// min mass of the Total System        ^
 #ifdef edebug
-    		            G4cout<<"G4QEnv::HQE:Q#"<<jq<<",tM="<<tM<<">gsM="<<curM<<curE<<G4endl;//^
+   		            G4cout<<"G4QEnv::HQE:Q#"<<jq<<",tM="<<tM<<">gsM="<<curM<<curE<<G4endl;//^
 #endif
-                  if(tM<curM)                 //                                          ^
-                  {
-                    G4int qPDG=qQC.GetZNSPDGCode();// PDG Code of the Quasmon             ^
-                    G4double qMass=G4QPDGCode(qPDG).GetMass(); // GroundStM of theQuasmon ^
+                 if(tM<curM)                 //                                          ^
+                 {
+                   G4int qPDG=qQC.GetZNSPDGCode();// PDG Code of the Quasmon             ^
+                   G4double qMass=G4QPDGCode(qPDG).GetMass(); // GroundStM of theQuasmon ^
 #ifdef edebug
-    		              G4cout<<"G4QE::HQE:nQ="<<nQuasmons<<",eC="<<eCount<<",qPDG="<<qPDG // ^
-                          <<",qM="<<qMass<<",eM="<<envM<<",tM="<<tM<<",Q+E="<<qMass+envM//^
-                          <<G4endl;           //                                          ^
+   		              G4cout<<"G4QE::HQE:nQ="<<nQuasmons<<",eC="<<eCount<<",qPDG="<<qPDG // ^
+                         <<",qM="<<qMass<<",eM="<<envM<<",tM="<<tM<<",Q+E="<<qMass+envM//^
+                         <<G4endl;           //                                          ^
 #endif
-                    if(eCount==1&&qPDG&&qMass&&tM>qMass+envM)//==> Q+E decay for one Quasm^
+                   if(eCount==1&&qPDG&&qMass&&tM>qMass+envM)//==> Q+E decay for one Quasm^
 					               //if(nQuasmons==1 && qPDG && qMass && tM>qMass+envM) // ==> Q+E decay ^
-                    {                         //                                          ^
-                      G4int envPDG = theEnvironment.GetPDG(); // PDGCode of the NuclQEnv. ^
+                   {                         //                                          ^
+                     G4int envPDG = theEnvironment.GetPDG(); // PDGCode of the NuclQEnv. ^
 #ifdef edebug
 		                    G4cout<<"G4QEnv::HadrQEnv: Q+E decay, nQ=1, qPDG=="<<qPDG<<G4endl;//^
 #endif
-                      // => "Quasmon-Chipolino or Environment-Dibaryon" case              ^
-                      if(qPDG==10 || qPDG==92000000 || qPDG==90002000 || qPDG==90000002)//^
+                     // => "Quasmon-Chipolino or Environment-Dibaryon" case              ^
+                     if(qPDG==10 || qPDG==92000000 || qPDG==90002000 || qPDG==90000002)//^
 																						{                          //                                       ^
-                        G4QPDGCode h1QPDG=nQPDG; // QPDG of the first hadron              ^
-                        G4double   h1M   =mNeut; // Mass of the first hadron              ^
-                        G4QPDGCode h2QPDG=h1QPDG;// QPDG of the second hadron             ^
-                        G4double   h2M   =mNeut; // Mass of the second hadron             ^
-                        if(qPDG==10)             // CHIPOLINO decay case                  ^
+                       G4QPDGCode h1QPDG=nQPDG; // QPDG of the first hadron              ^
+                       G4double   h1M   =mNeut; // Mass of the first hadron              ^
+                       G4QPDGCode h2QPDG=h1QPDG;// QPDG of the second hadron             ^
+                       G4double   h2M   =mNeut; // Mass of the second hadron             ^
+                       if(qPDG==10)             // CHIPOLINO decay case                  ^
 						                  {                     //                                          ^
-                          G4QChipolino QChip(qQC);// define the Quasmon as a Chipolino    ^
-                          h1QPDG=QChip.GetQPDG1();// QPDG of the first hadron             ^
-                          h1M   =h1QPDG.GetMass();// Mass of the first hadron             ^
-                          h2QPDG=QChip.GetQPDG2();// QPDG of the second hadron            ^
-                          h2M   =h2QPDG.GetMass();// Mass of the second hadron            ^
+                         G4QChipolino QChip(qQC);// define the Quasmon as a Chipolino    ^
+                         h1QPDG=QChip.GetQPDG1();// QPDG of the first hadron             ^
+                         h1M   =h1QPDG.GetMass();// Mass of the first hadron             ^
+                         h2QPDG=QChip.GetQPDG2();// QPDG of the second hadron            ^
+                         h2M   =h2QPDG.GetMass();// Mass of the second hadron            ^
 			                     }                     //                                          ^
 			                     else if(qPDG==90002000) // DiProton decay case                    ^
-                        {                     //                                          ^
-                          h1QPDG=pQPDG;       // QPDG of the first hadron                 ^
-                          h1M   =mProt;       // Mass of the first hadron                 ^
-                          h2QPDG=h1QPDG;      // QPDG of the second hadron                ^
-                          h2M   =mProt;       // Mass of the second hadron                ^
+                       {                     //                                          ^
+                         h1QPDG=pQPDG;       // QPDG of the first hadron                 ^
+                         h1M   =mProt;       // Mass of the first hadron                 ^
+                         h2QPDG=h1QPDG;      // QPDG of the second hadron                ^
+                         h2M   =mProt;       // Mass of the second hadron                ^
 			                     }                     //                                          ^
 			                     else if(qPDG==92000000) // Two lambdas case                       ^
-                        {                     //                                          ^
-                          h1QPDG=lQPDG;       // QPDG of the first hadron                 ^
-                          h1M   =mLamb;       // Mass of the first hadron                 ^
-                          h2QPDG=h1QPDG;      // QPDG of the second hadron                ^
-                          h2M   =mLamb;       // Mass of the second hadron                ^
-                          G4double ddMass=totMass-envM; // Free CM energy                 ^
-                          if(ddMass>mSigZ+mSigZ) // Sigma0+Sigma0 is possible             ^
+                       {                     //                                          ^
+                         h1QPDG=lQPDG;       // QPDG of the first hadron                 ^
+                         h1M   =mLamb;       // Mass of the first hadron                 ^
+                         h2QPDG=h1QPDG;      // QPDG of the second hadron                ^
+                         h2M   =mLamb;       // Mass of the second hadron                ^
+                         G4double ddMass=totMass-envM; // Free CM energy                 ^
+                         if(ddMass>mSigZ+mSigZ) // Sigma0+Sigma0 is possible             ^
 						                    {                   // @@ Only two particles PS is used         ^
-                            G4double dd2=ddMass*ddMass; // Squared free energy            ^
-                            G4double sma=mLamb+mLamb; // Lambda+Lambda sum                ^
-                            G4double pr1=0.;          // Prototype to avoid sqrt(-)       ^
-                            if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS   ^
-                            sma=mLamb+mSigZ;          // Lambda+Sigma0 sum                ^
-                            G4double smi=mSigZ-mLamb; // Sigma0-Lambda difference         ^
-                            G4double pr2=pr1;         // Prototype of +L+S0 PS            ^
+                           G4double dd2=ddMass*ddMass; // Squared free energy            ^
+                           G4double sma=mLamb+mLamb; // Lambda+Lambda sum                ^
+                           G4double pr1=0.;          // Prototype to avoid sqrt(-)       ^
+                           if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS   ^
+                           sma=mLamb+mSigZ;          // Lambda+Sigma0 sum                ^
+                           G4double smi=mSigZ-mLamb; // Sigma0-Lambda difference         ^
+                           G4double pr2=pr1;         // Prototype of +L+S0 PS            ^
 																												if(ddMass>sma&&ddMass>smi) //                                 ^
 																													 pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi)); //                  ^
-                            sma=mSigZ+mSigZ;          // Sigma0+Sigma0 sum                ^
-                            G4double pr3=pr2;         // Prototype of +Sigma0+Sigma0 PS   ^
-                            if(ddMass>sma) pr3+=sqrt((dd2-sma*sma)*dd2); //               ^
-                            G4double hhRND=pr3*G4UniformRand(); // Randomize PS           ^
-                            if(hhRND>pr2)     // --> "ENnv+Sigma0+Sigma0" case            ^
-                            {                 //                                          ^
-                              h1QPDG=s0QPDG;  // QPDG of the first hadron                 ^
-                              h1M   =mSigZ;   // Mass of the first hadron                 ^
-                              h2QPDG=h1QPDG;  // QPDG of the second hadron                ^
-                              h2M   =mSigZ;   // Mass of the second hadron                ^
-                            }                 //                                          ^
-                            else if(hhRND>pr1)// --> "ENnv+Sigma0+Lambda" case            ^
-                            {                 //                                          ^
-                              h1QPDG=s0QPDG;  // QPDG of the first hadron                 ^
-                              h1M   =mSigZ;   // Mass of the first hadron                 ^
-                            }                 //                                          ^
-                          }                   //                                          ^
-                          else if(ddMass>mSigZ+mLamb) // Lambda+Sigma0 is possible        ^
+                           sma=mSigZ+mSigZ;          // Sigma0+Sigma0 sum                ^
+                           G4double pr3=pr2;         // Prototype of +Sigma0+Sigma0 PS   ^
+                           if(ddMass>sma) pr3+=sqrt((dd2-sma*sma)*dd2); //               ^
+                           G4double hhRND=pr3*G4UniformRand(); // Randomize PS           ^
+                           if(hhRND>pr2)     // --> "ENnv+Sigma0+Sigma0" case            ^
+                           {                 //                                          ^
+                             h1QPDG=s0QPDG;  // QPDG of the first hadron                 ^
+                             h1M   =mSigZ;   // Mass of the first hadron                 ^
+                             h2QPDG=h1QPDG;  // QPDG of the second hadron                ^
+                             h2M   =mSigZ;   // Mass of the second hadron                ^
+                           }                 //                                          ^
+                           else if(hhRND>pr1)// --> "ENnv+Sigma0+Lambda" case            ^
+                           {                 //                                          ^
+                             h1QPDG=s0QPDG;  // QPDG of the first hadron                 ^
+                             h1M   =mSigZ;   // Mass of the first hadron                 ^
+                           }                 //                                          ^
+                         }                   //                                          ^
+                         else if(ddMass>mSigZ+mLamb) // Lambda+Sigma0 is possible        ^
 						                    {                   // @@ Only two particles PS is used         ^
-                            G4double dd2=ddMass*ddMass; // Squared free energy            ^
-                            G4double sma=mLamb+mLamb; // Lambda+Lambda sum                ^
-                            G4double pr1=0.;          // Prototype to avoid sqrt(-)       ^
-                            if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS   ^
-                            sma=mLamb+mSigZ;          // Lambda+Sigma0 sum                ^
-                            G4double smi=mSigZ-mLamb; // Sigma0-Lambda difference         ^
-                            G4double pr2=pr1;         //+L+S0 PS                          ^
-                            if(ddMass>sma && ddMass>smi) //                               ^
+                           G4double dd2=ddMass*ddMass; // Squared free energy            ^
+                           G4double sma=mLamb+mLamb; // Lambda+Lambda sum                ^
+                           G4double pr1=0.;          // Prototype to avoid sqrt(-)       ^
+                           if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS   ^
+                           sma=mLamb+mSigZ;          // Lambda+Sigma0 sum                ^
+                           G4double smi=mSigZ-mLamb; // Sigma0-Lambda difference         ^
+                           G4double pr2=pr1;         //+L+S0 PS                          ^
+                           if(ddMass>sma && ddMass>smi) //                               ^
 																														pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi)); //                  ^
-                            if(pr2*G4UniformRand()>pr1) // --> "ENnv+Sigma0+Lambda" case  ^
-                            {                 //                                          ^
-                              h1QPDG=s0QPDG;  // QPDG of the first hadron                 ^
-                              h1M   =mSigZ;   // Mass of the first hadron                 ^
-                            }                 //                                          ^
-                          }                   //                                          ^
+                           if(pr2*G4UniformRand()>pr1) // --> "ENnv+Sigma0+Lambda" case  ^
+                           {                 //                                          ^
+                             h1QPDG=s0QPDG;  // QPDG of the first hadron                 ^
+                             h1M   =mSigZ;   // Mass of the first hadron                 ^
+                           }                 //                                          ^
+                         }                   //                                          ^
 			                     }                     //                                          ^
-                        if(h1M+h2M+envM<totMass) // => "Three parts decay" case           ^
-                        {                     //                                          ^
-                          G4LorentzVector h14M(0.,0.,0.,h1M);           //                ^
-                          G4LorentzVector h24M(0.,0.,0.,h2M);           //                ^
-                          G4LorentzVector e4M(0.,0.,0.,envM);           //                ^
-                          if(!G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M)) //                ^
-                          {                   //                                          ^
+                       if(h1M+h2M+envM<totMass) // => "Three parts decay" case           ^
+                       {                     //                                          ^
+                         G4LorentzVector h14M(0.,0.,0.,h1M);           //                ^
+                         G4LorentzVector h24M(0.,0.,0.,h2M);           //                ^
+                         G4LorentzVector e4M(0.,0.,0.,envM);           //                ^
+                         if(!G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M)) //                ^
+                         {                   //                                          ^
 				                        G4cerr<<"***G4QE::HQE:(0)tM="<<tot4M.m()<<"->h1="<<h1QPDG //  ^
-                                  <<"("<<h1M<<")+h2="<<h1QPDG<<"("<<h2M<<")+envM="<<envM//^
-                                  <<"=="<<h1M+h2M+envM<<G4endl; //                        ^
+                                 <<"("<<h1M<<")+h2="<<h1QPDG<<"("<<h2M<<")+envM="<<envM//^
+                                 <<"=="<<h1M+h2M+envM<<G4endl; //                        ^
 				                        throw G4QException("**G4QE::HadrQEnv:QChip+E DecIn3 error");//^
 			                       }                   //                                          ^
-                          G4QHadron* h1H = new G4QHadron(h1QPDG.GetPDGCode(),h14M); //    ^
-                          theQHadrons.push_back(h1H);        // (delete equivalent)       ^
+                         G4QHadron* h1H = new G4QHadron(h1QPDG.GetPDGCode(),h14M); //    ^
+                         theQHadrons.push_back(h1H);        // (delete equivalent)       ^
 #ifdef pdebug
 						                    G4cout<<"G4QE::HQE:(1) H1="<<h1QPDG<<h14M<<G4endl;        //    ^
 #endif
-                          G4QHadron* h2H = new G4QHadron(h2QPDG.GetPDGCode(),h24M); //    ^
-                          theQHadrons.push_back(h2H);        // (delete equivalent)       ^
+                         G4QHadron* h2H = new G4QHadron(h2QPDG.GetPDGCode(),h24M); //    ^
+                         theQHadrons.push_back(h2H);        // (delete equivalent)       ^
 #ifdef pdebug
-                          G4cout<<"G4QE::HQE:(1) H2="<<h2QPDG<<h24M<<G4endl;        //    ^
+                         G4cout<<"G4QE::HQE:(1) H2="<<h2QPDG<<h24M<<G4endl;        //    ^
 #endif
-                          G4QHadron* qeH = new G4QHadron(envPDG,e4M);               //    ^
-                          theQHadrons.push_back(qeH);        // (delete equivalent)       ^
+                         G4QHadron* qeH = new G4QHadron(envPDG,e4M);               //    ^
+                         theQHadrons.push_back(qeH);        // (delete equivalent)       ^
 #ifdef pdebug
-                          G4cout<<"G4QE::HQE:(1) QEnv="<<envPDG<<e4M<<G4endl;       //    ^
+                         G4cout<<"G4QE::HQE:(1) QEnv="<<envPDG<<e4M<<G4endl;       //    ^
 #endif
 			                     }                     //                                          ^
 			                     else                  // Try to recover                           ^
-                        {                     //                                          ^
-                          //if(eCount==1&&CheckGroundState(pQ,true)) // @@ BackFusion     ^
-                          if(eCount==1&&CheckGroundState(pQ))// BackFusion attempt        ^
+                       {                     //                                          ^
+                         //if(eCount==1&&CheckGroundState(pQ,true)) // @@ BackFusion     ^
+                         if(eCount==1&&CheckGroundState(pQ))// BackFusion attempt        ^
 						                    {                   //                                          ^
-                            pQ->KillQuasmon();// ??                                       ^
-                            eCount--;         // Reduce a#of theLivingQuasmons            ^
-                            for_each(output->begin(),output->end(),DeleteQHadron()); //   ^
-                            output->clear();  // -->-->-->-->-->-->-->-->-->-->-->-->-->--^
-                            delete output;    // >========================================^
-                            return theQHadrons; //                                        ^
-                          }                   //                                          ^
-                          for_each(output->begin(),output->end(),DeleteQHadron()); //-->--^
-                          output->clear();    // -->-->-->-->-->-->-->-->-->-->-->-->-->--^
-                          delete output;      // >========================================^
+                           pQ->KillQuasmon();// ??                                       ^
+                           eCount--;         // Reduce a#of theLivingQuasmons            ^
+                           for_each(output->begin(),output->end(),DeleteQHadron()); //   ^
+                           output->clear();  // -->-->-->-->-->-->-->-->-->-->-->-->-->--^
+                           delete output;    // >========================================^
+                           return theQHadrons; //                                        ^
+                         }                   //                                          ^
+                         for_each(output->begin(),output->end(),DeleteQHadron()); //-->--^
+                         output->clear();    // -->-->-->-->-->-->-->-->-->-->-->-->-->--^
+                         delete output;      // >========================================^
 #ifdef fdebug
-                          G4cout<<"--Warning--G4QE::HQE:tM="<<tot4M.m()<<"< h1="<<h1QPDG//^
-                                <<"(M="<<h1M<<")+h2="<<h1QPDG<<"(M="<<h2M<<")+EM="<<envM//^
-                                <<"="<<h1M+h2M+envM<<G4endl; //                           ^
+                         G4cout<<"--Warning--G4QE::HQE:tM="<<tot4M.m()<<"< h1="<<h1QPDG//^
+                               <<"(M="<<h1M<<")+h2="<<h1QPDG<<"(M="<<h2M<<")+EM="<<envM//^
+                               <<"="<<h1M+h2M+envM<<G4endl; //                           ^
 			                       //throw G4QException("G4QEnv::HQE:(0)Chi+Env mass > totMass");//^
 #endif
-                          CleanUp();          //                                          ^
-                          G4QHadron* evH = new G4QHadron(totQC,tot4M);// ResidualNuclHadr ^
-                          EvaporateResidual(evH);  // Evaporate residual (del. equiv.)    ^
-                          return theQHadrons; //                                          ^
+                         CleanUp();          //                                          ^
+                         G4QHadron* evH = new G4QHadron(totQC,tot4M);// ResidualNuclHadr ^
+                         EvaporateResidual(evH);  // Evaporate residual (del. equiv.)    ^
+                         return theQHadrons; //                                          ^
 			                     }                     //                                          ^
 		                    }                       //                                          ^
-                      else                    // => "Two particles decay" case            ^
-                      {                       //                                          ^
-                        G4LorentzVector fq4M(0.,0.,0.,qMass); //                          ^
-                        G4LorentzVector qe4M(0.,0.,0.,envM);  //                          ^
-                        if(!G4QHadron(tot4M).RelDecayIn2(fq4M,qe4M,cq4M,1.,1.))//Q ch.dir.^
-                        {                     //                                          ^
-                          G4cerr<<"***G4QEnv::HadQE:(0)tM="<<tot4M.m()<<"-> qPDG="<<qPDG//^
-                                <<"(M="<<qMass<<") + envM="<<envM<<")"<<G4endl;         //^
-                          for_each(output->begin(),output->end(),DeleteQHadron()); //->->-^
-                          output->clear();    // -->-->-->-->-->-->-->-->-->-->-->-->-->--^
-                          delete output;      // >========================================^
+                     else                    // => "Two particles decay" case            ^
+                     {                       //                                          ^
+                       G4LorentzVector fq4M(0.,0.,0.,qMass); //                          ^
+                       G4LorentzVector qe4M(0.,0.,0.,envM);  //                          ^
+                       if(!G4QHadron(tot4M).RelDecayIn2(fq4M,qe4M,cq4M,1.,1.))//Q ch.dir.^
+                       {                     //                                          ^
+                         G4cerr<<"***G4QEnv::HadQE:(0)tM="<<tot4M.m()<<"-> qPDG="<<qPDG//^
+                               <<"(M="<<qMass<<") + envM="<<envM<<")"<<G4endl;         //^
+                         for_each(output->begin(),output->end(),DeleteQHadron()); //->->-^
+                         output->clear();    // -->-->-->-->-->-->-->-->-->-->-->-->-->--^
+                         delete output;      // >========================================^
 				                      throw G4QException("***G4QEnv::HadrQEnv: Q+Env DecIn2 error");//^
 			                     }                     //                                          ^
-                        G4QHadron* qH = new G4QHadron(qPDG,fq4M);// the out going Quasmon ^
-                        theQHadrons.push_back(qH); // (delete equivalent)                 ^
+                       G4QHadron* qH = new G4QHadron(qPDG,fq4M);// the out going Quasmon ^
+                       theQHadrons.push_back(qH); // (delete equivalent)                 ^
 #ifdef pdebug
 						                  G4cout<<"G4QE::HQE:QuasmH="<<qPDG<<fq4M<<G4endl;         //       ^
 #endif
-                        G4QHadron* qeH = new G4QHadron(envPDG,qe4M);//theRecoilEnvironment^
+                       G4QHadron* qeH = new G4QHadron(envPDG,qe4M);//theRecoilEnvironment^
 #ifdef pdebug
 						                  G4cout<<"G4QE::HQE:EnvironH="<<envPDG<<qe4M<<G4endl;     //       ^
 #endif
-                        if(envPDG==92000000||envPDG==90002000||envPDG==90000002) //       ^
-                          theEnvironment.DecayDibaryon(qeH,&theQHadrons);        //       ^
-                        else theQHadrons.push_back(qeH);// (del.equiv.) *** this too ***  ^
+                       if(envPDG==92000000||envPDG==90002000||envPDG==90000002) //       ^
+                         theEnvironment.DecayDibaryon(qeH,&theQHadrons);        //       ^
+                       else theQHadrons.push_back(qeH);// (del.equiv.) *** this too ***  ^
 		                    }                       //                                          ^
-                      for_each(output->begin(),output->end(),DeleteQHadron());//-->-->-->-^
-                      output->clear();        //                                          ^
-                      delete output;          // >========================================^
-                      CleanUp();              // Clean up Environ and Quasmon             ^
-                      return theQHadrons;     // Finish the hadronization process         ^
-                    }                         //                                          ^
-                    else status=-1;           // Q+E && totM below MassShell - PANIC      ^
-                  }                           //                                          ^
-                  else if(eCount>1&&(nCount>nCnMax||theEnvironment.GetA()<2))// 2Quasmons ^
+                     for_each(output->begin(),output->end(),DeleteQHadron());//-->-->-->-^
+                     output->clear();        //                                          ^
+                     delete output;          // >========================================^
+                     CleanUp();              // Clean up Environ and Quasmon             ^
+                     return theQHadrons;     // Finish the hadronization process         ^
+                   }                         //                                          ^
+                   else status=-1;           // Q+E && totM below MassShell - PANIC      ^
+                 }                           //                                          ^
+                 else if(eCount>1&&(nCount>nCnMax||theEnvironment.GetA()<2))// 2Quasmons ^
 																		{                                  //                                   ^
-                    theEnvironment.InitByPDG(NUCPDG);// KillEnvironment(@@ Q's? CleanUp)) ^
+                   theEnvironment.InitByPDG(NUCPDG);// KillEnvironment(@@ Q's? CleanUp)) ^
 #ifdef fdebug
 					               G4cout<<"G4QEnv::HQE:Evaporate Env+Quasm Env="<<curE<<G4endl;//       ^
 #endif
-                    G4QHadron* nucQE = new G4QHadron(curQC,t4M);// Hadron for Quasm+Envir.^
-                    EvaporateResidual(nucQE); // Evaporate residual Quasm+Env(del.equiv.) ^
-                    pQ->KillQuasmon();        // If BackFusion succeeded, kill theQuasmon ^
+                   G4QHadron* nucQE = new G4QHadron(curQC,t4M);// Hadron for Quasm+Envir.^
+                   EvaporateResidual(nucQE); // Evaporate residual Quasm+Env(del.equiv.) ^
+                   pQ->KillQuasmon();        // If BackFusion succeeded, kill theQuasmon ^
 #ifdef edebug
-     		             G4cout<<"G4QEnv::HQE:StatusAfterKill (#"<<jq<<")="<<pQ->GetStatus()// ^
-                          <<", nH="<<theQHadrons.size()<<G4endl;                       // ^
-#endif
-                    tot4M-=t4M;               // Update TotalResidNucleus for hadronizPro.^
-                    totQC-=curQC;             // Update total QC for the HadronizationPro.^
-                    eCount--;                 // Reduce the number of the living Quasmons ^
-                  }                           //                                          ^
-                  if(eCount==1 && tM>=curM)   //==>for one Quasmon evaporate ResTotN      ^
-                  {                           //                                          ^
-                    theEnvironment.InitByPDG(NUCPDG); // Cancele the Environment          ^
-                    G4int ttPDG=totQC.GetSPDGCode(); // Total PDG Code (10 - Chipolino)   ^
+    		             G4cout<<"G4QEnv::HQE:StatusAfterKill (#"<<jq<<")="<<pQ->GetStatus()// ^
+                         <<", nH="<<theQHadrons.size()<<G4endl;                       // ^
+#endif
+                   tot4M-=t4M;               // Update TotalResidNucleus for hadronizPro.^
+                   totQC-=curQC;             // Update total QC for the HadronizationPro.^
+                   eCount--;                 // Reduce the number of the living Quasmons ^
+                 }                           //                                          ^
+                 if(eCount==1 && tM>=curM)   //==>for one Quasmon evaporate ResTotN      ^
+                 {                           //                                          ^
+                   theEnvironment.InitByPDG(NUCPDG); // Cancele the Environment          ^
+                   G4int ttPDG=totQC.GetSPDGCode(); // Total PDG Code (10 - Chipolino)   ^
 #ifdef pcdebug
-                    G4cout<<"G4QE::HQE:BefEv 4M="<<tot4M<<",QC="<<totQC<<ttPDG<<G4endl;// ^
-#endif
-                    for_each(output->begin(),output->end(),DeleteQHadron()); //-->-->-->--^
-                    output->clear();          //                                          ^
-                    delete output;            // >========================================^
-                    CleanUp();                // Clean up the Environ and Quasmons        ^
-                    G4int ttBN=totQC.GetBaryonNumber(); //                                ^
-                    if(ttPDG==10&&ttBN<2)     // Chipolino case                           ^
+                   G4cout<<"G4QE::HQE:BefEv 4M="<<tot4M<<",QC="<<totQC<<ttPDG<<G4endl;// ^
+#endif
+                   for_each(output->begin(),output->end(),DeleteQHadron()); //-->-->-->--^
+                   output->clear();          //                                          ^
+                   delete output;            // >========================================^
+                   CleanUp();                // Clean up the Environ and Quasmons        ^
+                   G4int ttBN=totQC.GetBaryonNumber(); //                                ^
+                   if(ttPDG==10&&ttBN<2)     // Chipolino case                           ^
 					               {                         //                                          ^
-                      G4QChipolino QCh(totQC);// define the TotalResidual as a Chipolino  ^
-                      G4QPDGCode   h1QPDG=QCh.GetQPDG1();  // QPDG of the first hadron    ^
-                      G4double     h1M   =h1QPDG.GetMass();// Mass of the first hadron    ^
-                      G4QPDGCode   h2QPDG=QCh.GetQPDG2();  // QPDG of the second hadron   ^
-                      G4double     h2M   =h2QPDG.GetMass();// Mass of the second hadron   ^
-                      G4double ttM=tot4M.m(); // Mass of the Chipolino                    ^
-                      if(h1M+h2M<ttM)         // Two particles decay of Chipolino is pos. ^
-                      {                       //                                          ^
-                        G4LorentzVector h14M(0.,0.,0.,h1M);       //                      ^
-                        G4LorentzVector h24M(0.,0.,0.,h2M);       //                      ^
-                        if(!G4QHadron(tot4M).DecayIn2(h14M,h24M)) //                      ^
-                        {                     //                                          ^
+                     G4QChipolino QCh(totQC);// define the TotalResidual as a Chipolino  ^
+                     G4QPDGCode   h1QPDG=QCh.GetQPDG1();  // QPDG of the first hadron    ^
+                     G4double     h1M   =h1QPDG.GetMass();// Mass of the first hadron    ^
+                     G4QPDGCode   h2QPDG=QCh.GetQPDG2();  // QPDG of the second hadron   ^
+                     G4double     h2M   =h2QPDG.GetMass();// Mass of the second hadron   ^
+                     G4double ttM=tot4M.m(); // Mass of the Chipolino                    ^
+                     if(h1M+h2M<ttM)         // Two particles decay of Chipolino is pos. ^
+                     {                       //                                          ^
+                       G4LorentzVector h14M(0.,0.,0.,h1M);       //                      ^
+                       G4LorentzVector h24M(0.,0.,0.,h2M);       //                      ^
+                       if(!G4QHadron(tot4M).DecayIn2(h14M,h24M)) //                      ^
+                       {                     //                                          ^
 				                      G4cerr<<"***G4QE::HQE:tM="<<ttM<<"->h1="<<h1QPDG<<"("<<h1M //   ^
-                                <<")+h2="<<h1QPDG<<"("<<h2M<<"="<<h1M+h2M<<G4endl;   //   ^
+                               <<")+h2="<<h1QPDG<<"("<<h2M<<"="<<h1M+h2M<<G4endl;   //   ^
 				                      throw G4QException("**G4QE::HadrQEnv:QChip (1) DecIn2 error");//^
 			                     }                     //                                          ^
-                        G4QHadron* h1H = new G4QHadron(h1QPDG.GetPDGCode(),h14M);    //   ^
-                        theQHadrons.push_back(h1H);               // (delete equivalent)  ^
+                       G4QHadron* h1H = new G4QHadron(h1QPDG.GetPDGCode(),h14M);    //   ^
+                       theQHadrons.push_back(h1H);               // (delete equivalent)  ^
 #ifdef pdebug
 						                  G4cout<<"G4QE::HQE: QCip-> H1="<<h1QPDG<<h14M<<G4endl;       //   ^
 #endif
-                        G4QHadron* h2H = new G4QHadron(h2QPDG.GetPDGCode(),h24M);    //   ^
-                        theQHadrons.push_back(h2H);               // (delete equivalent)  ^
+                       G4QHadron* h2H = new G4QHadron(h2QPDG.GetPDGCode(),h24M);    //   ^
+                       theQHadrons.push_back(h2H);               // (delete equivalent)  ^
 #ifdef pdebug
-                        G4cout<<"G4QE::HQE: QChip->H2="<<h2QPDG<<h24M<<G4endl;       //   ^
+                       G4cout<<"G4QE::HQE: QChip->H2="<<h2QPDG<<h24M<<G4endl;       //   ^
 #endif
-                      }                       //                                          ^
-                      else                    //                                          ^
-                      {                       //                                          ^
+                     }                       //                                          ^
+                     else                    //                                          ^
+                     {                       //                                          ^
 				                    G4cerr<<"***G4QE::HQE:tM="<<ttM<<totQC<<"->h1="<<h1QPDG<<"(" //   ^
-                              <<h1M<<")+h2="<<h1QPDG<<"("<<h2M<<"="<<h1M+h2M<<G4endl;//   ^
+                             <<h1M<<")+h2="<<h1QPDG<<"("<<h2M<<"="<<h1M+h2M<<G4endl;//   ^
 				                    throw G4QException("***G4QE::HadrQEnv:QChip (2) DecIn2 error");// ^
 			                   }                       //                                          ^
-                    }                         //                                          ^
-                    else                      //                                          ^
+                   }                         //                                          ^
+                   else                      //                                          ^
 					               {                         //                                          ^
 #ifdef edebug
-                      if(ttPDG<80000000&&ttBN<1) //                                       ^
-                        G4cout<<"---Warning---G4QE::HQE: NotNuc, tPDG="<<ttPDG<<G4endl;// ^
-#endif
-                      G4QHadron* evH = new G4QHadron(totQC,tot4M);// Hadron for ResidNucl ^
-                      EvaporateResidual(evH); // Evaporate residual (del.equiv.)          ^
-                    }                         //                                          ^
-                    return theQHadrons;       //                                          ^
-                  }                           //                                          ^
-                  else if(eCount==1 && CheckGroundState(pQ,true)) // Correct and Finish   ^
-                  {                           //                                          ^
-                    for_each(output->begin(), output->end(), DeleteQHadron()); // -->-->--^
-                    output->clear();          //                                          ^
-                    delete output;            // >========================================^
-                    pQ->KillQuasmon();        // If BackFusion succeeded, kill Quasm      ^
-                    delete pQ;
-                    eCount--;                 // Reduce a#of the living Quasmons          ^
-                    return theQHadrons;       //                                          ^
-                  }                           //                                          ^
-                }                             //                                          ^
-                else                          // "Vacuum" case                            ^
-                {                             //                                          ^
-                  G4QPDGCode QPDGQ=pQ->GetQPDG(); // QPDG Code for the Quasmon            ^
-                  G4int PDGQ=QPDGQ.GetPDGCode();  // PDG Code of the QUASMON              ^
+                     if(ttPDG<80000000&&ttBN<1) //                                       ^
+                       G4cout<<"---Warning---G4QE::HQE: NotNuc, tPDG="<<ttPDG<<G4endl;// ^
+#endif
+                     G4QHadron* evH = new G4QHadron(totQC,tot4M);// Hadron for ResidNucl ^
+                     EvaporateResidual(evH); // Evaporate residual (del.equiv.)          ^
+                   }                         //                                          ^
+                   return theQHadrons;       //                                          ^
+                 }                           //                                          ^
+                 else if(eCount==1 && CheckGroundState(pQ,true)) // Correct and Finish   ^
+                 {                           //                                          ^
+                   for_each(output->begin(), output->end(), DeleteQHadron()); // -->-->--^
+                   output->clear();          //                                          ^
+                   delete output;            // >========================================^
+                   pQ->KillQuasmon();        // If BackFusion succeeded, kill Quasm      ^
+                   delete pQ;
+                   eCount--;                 // Reduce a#of the living Quasmons          ^
+                   return theQHadrons;       //                                          ^
+                 }                           //                                          ^
+               }                             //                                          ^
+               else                          // "Vacuum" case                            ^
+               {                             //                                          ^
+                 G4QPDGCode QPDGQ=pQ->GetQPDG(); // QPDG Code for the Quasmon            ^
+                 G4int PDGQ=QPDGQ.GetPDGCode();  // PDG Code of the QUASMON              ^
 #ifdef edebug
 				              G4cout<<"G4QEnv::HadrQEnv: vacuum PDGQ="<<PDGQ<<G4endl; //              ^
 #endif
-                  if(!PDGQ) status=-1;        // Unknown Quasmon in Vaquum - PANIC        ^
-                  // @@ There still can be a case for 2pSigma+ or 2nSigma- (PDGCode?)     ^
-                  else if(PDGQ==3112||PDGQ==3222||PDGQ==90999001||PDGQ==91000999)// S+/S- ^
-                  {                           //                                          ^
+                 if(!PDGQ) status=-1;        // Unknown Quasmon in Vaquum - PANIC        ^
+                 // @@ There still can be a case for 2pSigma+ or 2nSigma- (PDGCode?)     ^
+                 else if(PDGQ==3112||PDGQ==3222||PDGQ==90999001||PDGQ==91000999)// S+/S- ^
+                 {                           //                                          ^
 #ifdef edebug
 				                G4cout<<"G4QEnv::HadrQEnv:Sigma Mass="<<cqMass<<G4endl;      //       ^
 #endif
-                    G4double hyM=mNeut;       // Prototype of the hyperon mass            ^
-                    G4int    hyPDG=2112;      // Prototype of the hyperon PDG Code        ^
-                    G4double pigM=mPi;        // Prototype of the gamma/pion mass         ^
-                    G4int    pigPDG=-211;     // Prototype of the gamma/pion PDG Code     ^
-                    if(PDGQ==3112||PDGQ==90999001) // --> "Sigma-" case                   ^
+                   G4double hyM=mNeut;       // Prototype of the hyperon mass            ^
+                   G4int    hyPDG=2112;      // Prototype of the hyperon PDG Code        ^
+                   G4double pigM=mPi;        // Prototype of the gamma/pion mass         ^
+                   G4int    pigPDG=-211;     // Prototype of the gamma/pion PDG Code     ^
+                   if(PDGQ==3112||PDGQ==90999001) // --> "Sigma-" case                   ^
 					               { //                                                                  ^
-                      if(cqMass>mPi+mLamb)    // "Lambda + Pi- is possible" case          ^
+                     if(cqMass>mPi+mLamb)    // "Lambda + Pi- is possible" case          ^
 					                 { //                                                                ^
-                        hyM   = mLamb;        // Lambda mass                              ^
-                        hyPDG = 3122;         // Lambda PDG Code                          ^
+                       hyM   = mLamb;        // Lambda mass                              ^
+                       hyPDG = 3122;         // Lambda PDG Code                          ^
 					                 } //                                                                ^
-                      else if(cqMass>mSigM)   // "Sigma- gamma decay" case                ^
+                     else if(cqMass>mSigM)   // "Sigma- gamma decay" case                ^
 					                 { //                                                                ^
-                        hyM=mSigM;            // Sigma- mass                              ^
-                        hyPDG=3112;           // Sigma- PDG Code                          ^
-                        pigM=0.;              // Gamma mass                               ^
-                        pigPDG=22;            // Gamma PDG Code                           ^
+                       hyM=mSigM;            // Sigma- mass                              ^
+                       hyPDG=3112;           // Sigma- PDG Code                          ^
+                       pigM=0.;              // Gamma mass                               ^
+                       pigPDG=22;            // Gamma PDG Code                           ^
 					                 } //                                                                ^
-                    } //                                                                  ^
-                    else if(PDGQ==3222||PDGQ==91000999) // --> "Sigma+" case              ^
+                   } //                                                                  ^
+                   else if(PDGQ==3222||PDGQ==91000999) // --> "Sigma+" case              ^
 					               { //                                                                  ^
-                      pigPDG= 211;            // Pi+ PDG Code                             ^
-                      if(cqMass>mPi+mLamb)    // --- "Lambda + Pi+ is possible" case      ^
+                     pigPDG= 211;            // Pi+ PDG Code                             ^
+                     if(cqMass>mPi+mLamb)    // --- "Lambda + Pi+ is possible" case      ^
 					                 { //                                                                ^
-                        hyM   = mLamb;        // Lambda mass                              ^
-                        hyPDG = 3122;         // Lambda PDG Code                          ^
-                        pigM  = mPi;          // Pi+ mass                                 ^
-                        pigPDG= 211;          // Pi+ PDG Code                             ^
-                      } //                                                                ^
-                      else if(cqMass>mSigP)   // "Sigma- gamma decay" case                ^
+                       hyM   = mLamb;        // Lambda mass                              ^
+                       hyPDG = 3122;         // Lambda PDG Code                          ^
+                       pigM  = mPi;          // Pi+ mass                                 ^
+                       pigPDG= 211;          // Pi+ PDG Code                             ^
+                     } //                                                                ^
+                     else if(cqMass>mSigP)   // "Sigma- gamma decay" case                ^
 					                 { //                                                                ^
-                        hyM=mSigP;            // Sigma+ mass                              ^
-                        hyPDG=3222;           // Sigma+ PDG Code                          ^
-                        pigM=0.;              // Gamma mass                               ^
-                        pigPDG=22;            // Gamma PDG Code                           ^
+                       hyM=mSigP;            // Sigma+ mass                              ^
+                       hyPDG=3222;           // Sigma+ PDG Code                          ^
+                       pigM=0.;              // Gamma mass                               ^
+                       pigPDG=22;            // Gamma PDG Code                           ^
 					                 } //                                                                ^
-                      else if(cqMass>mPi0+mProt&&G4UniformRand()>.5) // "P + Pi0" case    ^
+                     else if(cqMass>mPi0+mProt&&G4UniformRand()>.5) // "P + Pi0" case    ^
 					                 { //                                                                ^
-                        hyM   = mProt;        // Proton mass                              ^
-                        hyPDG = 2212;         // Proton PDG Code                          ^
-                        pigM  = mPi0;         // Pi0 mass                                 ^
-                        pigPDG= 111;          // Pi0 PDG Code                             ^
+                       hyM   = mProt;        // Proton mass                              ^
+                       hyPDG = 2212;         // Proton PDG Code                          ^
+                       pigM  = mPi0;         // Pi0 mass                                 ^
+                       pigPDG= 111;          // Pi0 PDG Code                             ^
 					                 } //                                                                ^
-                      else if(cqMass<mPi+mNeut)// "P+gamma" case as "N+Pi+" is impossible ^
+                     else if(cqMass<mPi+mNeut)// "P+gamma" case as "N+Pi+" is impossible ^
 					                 { //                                                                ^
-                        hyM   = mProt;        // Proton mass                              ^
-                        hyPDG = 2212;         // Proton PDG Code                          ^
-                        pigM=0.;              // Gamma mass                               ^
-                        pigPDG=22;            // Gamma PDG Code                           ^
+                       hyM   = mProt;        // Proton mass                              ^
+                       hyPDG = 2212;         // Proton PDG Code                          ^
+                       pigM=0.;              // Gamma mass                               ^
+                       pigPDG=22;            // Gamma PDG Code                           ^
 					                 } //                                                                ^
-                      // othing should be done for "N + P+" case                          ^
-                    } //                                                                  ^
-                    G4LorentzVector b4Mom(0.,0.,0.,hyM); // Hyperon mass                  ^
-                    G4LorentzVector m4Mom(0.,0.,0.,pigM);// pion/gamma mass               ^
-                    if(!G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom)) // "DecayIn2 failed" case ^
+                     // othing should be done for "N + P+" case                          ^
+                   } //                                                                  ^
+                   G4LorentzVector b4Mom(0.,0.,0.,hyM); // Hyperon mass                  ^
+                   G4LorentzVector m4Mom(0.,0.,0.,pigM);// pion/gamma mass               ^
+                   if(!G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom)) // "DecayIn2 failed" case ^
 					               { //                                                                  ^
-                      G4cout<<"---Warning---G4QE::HQE:H="<<hyPDG<<"(m="<<hyM<<")+G/Pi=" //^
+                     G4cout<<"---Warning---G4QE::HQE:H="<<hyPDG<<"(m="<<hyM<<")+G/Pi=" //^
 							                     <<pigPDG<<"(m="<<pigM<<")="<<hyM+pigM<<">"<<cqMass<<G4endl; //^
-                      G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC             ^
-                      CleanUp();              //                                          ^
+                     G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC             ^
+                     CleanUp();              //                                          ^
 		                    if(!CheckGroundState(quasH,true)) // Last posibility to correct     ^
 					                 { //                                                                ^
-                        G4QHadron* hadr = new G4QHadron(totQC,tot4M); //                  ^
-                        theQHadrons.push_back(hadr);    // Cor or fill as It Is           ^
+                       G4QHadron* hadr = new G4QHadron(totQC,tot4M); //                  ^
+                       theQHadrons.push_back(hadr);    // Cor or fill as It Is           ^
 #ifdef pdebug
-                        G4cout<<"-Warn-G4QE::HQE:Sig,QC="<<totQC<<",4M="<<tot4M<<G4endl;//^
+                       G4cout<<"-Warn-G4QE::HQE:Sig,QC="<<totQC<<",4M="<<tot4M<<G4endl;//^
 #endif
-    	                   //throw G4QException("G4QEnvironment::HadronizeQEnv:Sig error");//^
-                      } //                                                                ^
-                      delete quasH;          // Delete the temporary fake Quasmon         ^
-                      return theQHadrons;    //                                           ^
-                    } //                                                                  ^
+   	                   //throw G4QException("G4QEnvironment::HadronizeQEnv:Sig error");//^
+                     } //                                                                ^
+                     delete quasH;          // Delete the temporary fake Quasmon         ^
+                     return theQHadrons;    //                                           ^
+                   } //                                                                  ^
 #ifdef pdebug
 	                   G4cout<<"G4QEnv::HadronizeQEnv: Sigma="<<PDGQ<<cq4M<<" -> Hyperon="// ^
-                          <<hyPDG<<b4Mom<<" + Gamma/Pi="<<pigPDG<<m4Mom<<G4endl; //       ^
-#endif
-                    G4QHadron* curBar = new G4QHadron(hyPDG,b4Mom); //                    ^
-                    theQHadrons.push_back(curBar); // Fill the Hyperon (delete equivalent)^
-                    G4QHadron* curMes = new G4QHadron(pigPDG,m4Mom);  //                  ^
-                    theQHadrons.push_back(curMes); // Fill the gam/pi (delete equivalent) ^
-                    pQ->KillQuasmon();        // Make done the current Quasmon            ^
-                    tot4M-=cq4M;              // Update theTotalResidNucl of HadrPr.      ^
-                    totQC-=qQC;               // Update total residual QC of HadrPr.      ^
-                    eCount--;                 // Reduce a#of the living Quasmons          ^
+                         <<hyPDG<<b4Mom<<" + Gamma/Pi="<<pigPDG<<m4Mom<<G4endl; //       ^
+#endif
+                   G4QHadron* curBar = new G4QHadron(hyPDG,b4Mom); //                    ^
+                   theQHadrons.push_back(curBar); // Fill the Hyperon (delete equivalent)^
+                   G4QHadron* curMes = new G4QHadron(pigPDG,m4Mom);  //                  ^
+                   theQHadrons.push_back(curMes); // Fill the gam/pi (delete equivalent) ^
+                   pQ->KillQuasmon();        // Make done the current Quasmon            ^
+                   tot4M-=cq4M;              // Update theTotalResidNucl of HadrPr.      ^
+                   totQC-=qQC;               // Update total residual QC of HadrPr.      ^
+                   eCount--;                 // Reduce a#of the living Quasmons          ^
 				              }                           //                                          ^
-                  else if(PDGQ==90999002||PDGQ==91001999) // pS+/nS-                      ^
-                  {                           //                                          ^
+                 else if(PDGQ==90999002||PDGQ==91001999) // pS+/nS-                      ^
+                 {                           //                                          ^
 #ifdef edebug
 				                G4cout<<"G4QEnv::HadrQEnv: Nucleon+Sigma Mass="<<cqMass<<G4endl; //   ^
 #endif
-                    G4bool dinFlag = false;   // Di-nucleon flag                          ^
-                    G4double hyM=mSigM;       // Prototype of the hyperon mass (n+Sigma-) ^
-                    G4int    hyPDG=3112;      // Prototype of the hyperon PDG Code        ^
-                    G4double pigM=mNeut;      // Prototype of the nucleon mass            ^
-                    G4int    pigPDG=2112;     // Prototype of the nucleon PDG Code        ^
-                    if     (PDGQ==90999002)   // --> "n+Sigma-" case                      ^
+                   G4bool dinFlag = false;   // Di-nucleon flag                          ^
+                   G4double hyM=mSigM;       // Prototype of the hyperon mass (n+Sigma-) ^
+                   G4int    hyPDG=3112;      // Prototype of the hyperon PDG Code        ^
+                   G4double pigM=mNeut;      // Prototype of the nucleon mass            ^
+                   G4int    pigPDG=2112;     // Prototype of the nucleon PDG Code        ^
+                   if     (PDGQ==90999002)   // --> "n+Sigma-" case                      ^
 					               {                         //                                          ^
-                      if(cqMass<mNeut+mSigM)  // ----> "DiNeutron+Pi-" case               ^
+                     if(cqMass<mNeut+mSigM)  // ----> "DiNeutron+Pi-" case               ^
 					                 { //                                                                ^
-                        dinFlag = true;       // For the final decay                      ^
-                        hyM=mNeut+mNeut;      // Di-neutron                               ^
-                        hyPDG=2112;           // Neutron PDG Code                         ^
-                        pigM=mPi;             // Pi- mass                                 ^
-                        pigPDG=-211;          // Pi- PDG Code                             ^
+                       dinFlag = true;       // For the final decay                      ^
+                       hyM=mNeut+mNeut;      // Di-neutron                               ^
+                       hyPDG=2112;           // Neutron PDG Code                         ^
+                       pigM=mPi;             // Pi- mass                                 ^
+                       pigPDG=-211;          // Pi- PDG Code                             ^
 					                 } //                                                                ^
-                    } //                                                                  ^
-                    else if(PDGQ==91001999)   // --> "p+Sigma+" case                      ^
+                   } //                                                                  ^
+                   else if(PDGQ==91001999)   // --> "p+Sigma+" case                      ^
 					               { //                                                                  ^
-                      hyM=mSigP;              // Sigma+                                   ^
-                      hyPDG=3222;             // PDG Code of Sigma+                       ^
-                      pigM=mProt;             // Proton mass                              ^
-                      pigPDG=2212;            // PDG Code of proton                       ^
-                      if(cqMass<mProt+mSigP)  // ----> "Proton+Proton" case               ^
+                     hyM=mSigP;              // Sigma+                                   ^
+                     hyPDG=3222;             // PDG Code of Sigma+                       ^
+                     pigM=mProt;             // Proton mass                              ^
+                     pigPDG=2212;            // PDG Code of proton                       ^
+                     if(cqMass<mProt+mSigP)  // ----> "Proton+Proton" case               ^
 					                 { //                                                                ^
-                        hyM=mProt;            // Proton mass                              ^
-                        hyPDG=2212;           // Proton PDG Code                          ^
-                        pigM=mProt;           // Proton mass                              ^
-                        pigPDG=2212;          // Proton PDG Code                          ^
+                       hyM=mProt;            // Proton mass                              ^
+                       hyPDG=2212;           // Proton PDG Code                          ^
+                       pigM=mProt;           // Proton mass                              ^
+                       pigPDG=2212;          // Proton PDG Code                          ^
 					                 } //                                                                ^
-                    } //                                                                  ^
-                    G4LorentzVector b4Mom(0.,0.,0.,hyM); // Hyperon (di-nucleon) mass     ^
-                    G4LorentzVector m4Mom(0.,0.,0.,pigM);// Nucleon (pion) mass           ^
-                    if(!G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom)) // "DecayIn2 failed" case ^
+                   } //                                                                  ^
+                   G4LorentzVector b4Mom(0.,0.,0.,hyM); // Hyperon (di-nucleon) mass     ^
+                   G4LorentzVector m4Mom(0.,0.,0.,pigM);// Nucleon (pion) mass           ^
+                   if(!G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom)) // "DecayIn2 failed" case ^
 					               { //                                                                  ^
-                      G4cout<<"--Warning--G4QE::HQE:S/D="<<hyPDG<<"(m="<<hyM<<")+N/Pi=" //^
+                     G4cout<<"--Warning--G4QE::HQE:S/D="<<hyPDG<<"(m="<<hyM<<")+N/Pi=" //^
 							                     <<pigPDG<<"(m="<<pigM<<")="<<hyM+pigM<<">"<<cqMass<<G4endl; //^
-                      G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC             ^
-                      CleanUp();              //                                          ^
+                     G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC             ^
+                     CleanUp();              //                                          ^
 		                    if(!CheckGroundState(quasH,true)) // Last posibility to correct     ^
 					                 { //                                                                ^
-                        G4QHadron* hadr = new G4QHadron(totQC,tot4M); //                  ^
-                        theQHadrons.push_back(hadr);    // Cor or fill as It Is           ^
+                       G4QHadron* hadr = new G4QHadron(totQC,tot4M); //                  ^
+                       theQHadrons.push_back(hadr);    // Cor or fill as It Is           ^
 #ifdef pdebug
-                        G4cout<<"-Warn-G4QE::HQE:Sig,QC="<<totQC<<",4M="<<tot4M<<G4endl;//^
+                       G4cout<<"-Warn-G4QE::HQE:Sig,QC="<<totQC<<",4M="<<tot4M<<G4endl;//^
 #endif
-    	                   //throw G4QException("G4QEnvironment::HadronizeQEnv:Sig error");//^
-                      } //                                                                ^
-                      delete quasH;          // Delete the temporary fake Quasmon         ^
-                      return theQHadrons;    //                                           ^
-                    } //                                                                  ^
+   	                   //throw G4QException("G4QEnvironment::HadronizeQEnv:Sig error");//^
+                     } //                                                                ^
+                     delete quasH;          // Delete the temporary fake Quasmon         ^
+                     return theQHadrons;    //                                           ^
+                   } //                                                                  ^
 #ifdef pdebug
 	                   G4cout<<"G4QEnv::HadronizeQEnv: NSigma="<<PDGQ<<cq4M<<"-> Sigma/dN="//^
-                          <<hyPDG<<b4Mom<<" + N/Pi="<<pigPDG<<m4Mom<<G4endl; //           ^
+                         <<hyPDG<<b4Mom<<" + N/Pi="<<pigPDG<<m4Mom<<G4endl; //           ^
 #endif
-                    if(dinFlag) b4Mom/=2.;    // Split the 4-mom for the dinucleon        ^
-                    G4QHadron* curBar = new G4QHadron(hyPDG,b4Mom); //                    ^
-                    theQHadrons.push_back(curBar); // Fill the Hyperon (delete equivalent)^
-                    if(dinFlag)               //                                          ^
+                   if(dinFlag) b4Mom/=2.;    // Split the 4-mom for the dinucleon        ^
+                   G4QHadron* curBar = new G4QHadron(hyPDG,b4Mom); //                    ^
+                   theQHadrons.push_back(curBar); // Fill the Hyperon (delete equivalent)^
+                   if(dinFlag)               //                                          ^
 					               {                         //                                          ^
-                      G4QHadron* secBar = new G4QHadron(hyPDG,b4Mom);// Cre. 2-nd nucleon ^
-                      theQHadrons.push_back(secBar);// Fill 2-nd nucleon (delete equiv.)  ^
-                    }                         //                                          ^
-                    G4QHadron* curMes = new G4QHadron(pigPDG,m4Mom);  //                  ^
-                    theQHadrons.push_back(curMes); // Fill the gam/pi (delete equivalent) ^
-                    pQ->KillQuasmon();        // Make done the current Quasmon            ^
-                    tot4M-=cq4M;              // Update theTotalResidNucl of HadrPr.      ^
-                    totQC-=qQC;               // Update total residual QC of HadrPr.      ^
-                    eCount--;                 // Reduce a#of the living Quasmons          ^
+                     G4QHadron* secBar = new G4QHadron(hyPDG,b4Mom);// Cre. 2-nd nucleon ^
+                     theQHadrons.push_back(secBar);// Fill 2-nd nucleon (delete equiv.)  ^
+                   }                         //                                          ^
+                   G4QHadron* curMes = new G4QHadron(pigPDG,m4Mom);  //                  ^
+                   theQHadrons.push_back(curMes); // Fill the gam/pi (delete equivalent) ^
+                   pQ->KillQuasmon();        // Make done the current Quasmon            ^
+                   tot4M-=cq4M;              // Update theTotalResidNucl of HadrPr.      ^
+                   totQC-=qQC;               // Update total residual QC of HadrPr.      ^
+                   eCount--;                 // Reduce a#of the living Quasmons          ^
 				              }                           //                                          ^
-                  else if(PDGQ==90999003||PDGQ==91002999) // ppS+/nnS-                    ^
-                  {                           //                                          ^
+                 else if(PDGQ==90999003||PDGQ==91002999) // ppS+/nnS-                    ^
+                 {                           //                                          ^
 #ifdef edebug
 				                G4cout<<"G4QEnv::HadrQEnv: DiNucleon+Sigma Mass="<<cqMass<<G4endl; // ^
 #endif
-                    G4bool dinFlag = false;   // Di-nucleon flag                          ^
-                    G4double hyM=mSigM;       // Prototype of the hyperon mass (n+Sigma-) ^
-                    G4int    hyPDG=3112;      // Prototype of the hyperon PDG Code        ^
-                    G4double pigM=mNeut+mNeut;// Prototype of the di-nucleon mass         ^
-                    G4int    pigPDG=2112;     // Prototype of the nucleon PDG Code        ^
-                    if     (PDGQ==90999003)   // --> "n+Sigma-" case                      ^
+                   G4bool dinFlag = false;   // Di-nucleon flag                          ^
+                   G4double hyM=mSigM;       // Prototype of the hyperon mass (n+Sigma-) ^
+                   G4int    hyPDG=3112;      // Prototype of the hyperon PDG Code        ^
+                   G4double pigM=mNeut+mNeut;// Prototype of the di-nucleon mass         ^
+                   G4int    pigPDG=2112;     // Prototype of the nucleon PDG Code        ^
+                   if     (PDGQ==90999003)   // --> "n+Sigma-" case                      ^
 					               {                         //                                          ^
-                      if(cqMass<pigM+mSigM)   // ----> "DiNeutron+Pi-" case               ^
+                     if(cqMass<pigM+mSigM)   // ----> "DiNeutron+Pi-" case               ^
 					                 { //                                                                ^
-                        dinFlag = true;       // For the final decay                      ^
-                        pigM=mNeut+mNeut+mNeut;// Tri-neutron                             ^
-                        pigPDG=2112;          // Neutron PDG Code                         ^
-                        hyM=mPi;              // Pi- mass                                 ^
-                        hyPDG=-211;           // Pi- PDG Code                             ^
+                       dinFlag = true;       // For the final decay                      ^
+                       pigM=mNeut+mNeut+mNeut;// Tri-neutron                             ^
+                       pigPDG=2112;          // Neutron PDG Code                         ^
+                       hyM=mPi;              // Pi- mass                                 ^
+                       hyPDG=-211;           // Pi- PDG Code                             ^
 					                 } //                                                                ^
-                    } //                                                                  ^
-                    else if(PDGQ==91002999)   // --> "p+Sigma+" case                      ^
+                   } //                                                                  ^
+                   else if(PDGQ==91002999)   // --> "p+Sigma+" case                      ^
 					               { //                                                                  ^
-                      hyM=mSigP;              // Sigma+                                   ^
-                      hyPDG=3222;             // PDG Code of Sigma+                       ^
-                      pigM=mProt+mProt;       // Di-Proton mass                           ^
-                      pigPDG=2212;            // PDG Code of proton                       ^
-                      if(cqMass<pigM+mSigP)   // ----> "DiProton+Pi+" case                ^
+                     hyM=mSigP;              // Sigma+                                   ^
+                     hyPDG=3222;             // PDG Code of Sigma+                       ^
+                     pigM=mProt+mProt;       // Di-Proton mass                           ^
+                     pigPDG=2212;            // PDG Code of proton                       ^
+                     if(cqMass<pigM+mSigP)   // ----> "DiProton+Pi+" case                ^
 					                 { //                                                                ^
-                        dinFlag = true;       // For the final decay                      ^
-                        pigM=mProt+mProt+mProt;// Tri-proton                              ^
-                        pigPDG=2212;          // Neutron PDG Code                         ^
-                        hyM=mPi;             // Pi+ mass                                  ^
-                        hyPDG=211;           // Pi+ PDG Code                              ^
+                       dinFlag = true;       // For the final decay                      ^
+                       pigM=mProt+mProt+mProt;// Tri-proton                              ^
+                       pigPDG=2212;          // Neutron PDG Code                         ^
+                       hyM=mPi;             // Pi+ mass                                  ^
+                       hyPDG=211;           // Pi+ PDG Code                              ^
 					                 } //                                                                ^
-                    } //                                                                  ^
-                    G4LorentzVector b4Mom(0.,0.,0.,hyM); // Hyperon (di-nucleon) mass     ^
-                    G4LorentzVector m4Mom(0.,0.,0.,pigM);// Nucleon (pion) mass           ^
-                    if(!G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom)) // "DecayIn2 failed" case ^
+                   } //                                                                  ^
+                   G4LorentzVector b4Mom(0.,0.,0.,hyM); // Hyperon (di-nucleon) mass     ^
+                   G4LorentzVector m4Mom(0.,0.,0.,pigM);// Nucleon (pion) mass           ^
+                   if(!G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom)) // "DecayIn2 failed" case ^
 					               { //                                                                  ^
-                      G4cout<<"--Warning--G4QE::HQE:S/Pi="<<hyPDG<<"(m="<<hyM<<")+D/T=" //^
+                     G4cout<<"--Warning--G4QE::HQE:S/Pi="<<hyPDG<<"(m="<<hyM<<")+D/T=" //^
 							                     <<pigPDG<<"(m="<<pigM<<")="<<hyM+pigM<<">"<<cqMass<<G4endl; //^
-                      G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC             ^
-                      CleanUp();              //                                          ^
+                     G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC             ^
+                     CleanUp();              //                                          ^
 		                    if(!CheckGroundState(quasH,true)) // Last posibility to correct     ^
 					                 { //                                                                ^
-                        G4QHadron* hadr = new G4QHadron(totQC,tot4M); //                  ^
-                        theQHadrons.push_back(hadr);    // Cor or fill as It Is           ^
+                       G4QHadron* hadr = new G4QHadron(totQC,tot4M); //                  ^
+                       theQHadrons.push_back(hadr);    // Cor or fill as It Is           ^
 #ifdef pdebug
-                        G4cout<<"-Warn-G4QE::HQE:Sig,QC="<<totQC<<",4M="<<tot4M<<G4endl;//^
+                       G4cout<<"-Warn-G4QE::HQE:Sig,QC="<<totQC<<",4M="<<tot4M<<G4endl;//^
 #endif
-    	                   //throw G4QException("G4QEnvironment::HadronizeQEnv:Sig error");//^
-                      } //                                                                ^
-                      delete quasH;          // Delete the temporary fake Quasmon         ^
-                      return theQHadrons;    //                                           ^
-                    } //                                                                  ^
+   	                   //throw G4QException("G4QEnvironment::HadronizeQEnv:Sig error");//^
+                     } //                                                                ^
+                     delete quasH;          // Delete the temporary fake Quasmon         ^
+                     return theQHadrons;    //                                           ^
+                   } //                                                                  ^
 #ifdef pdebug
 	                   G4cout<<"G4QEnv::HadronizeQEnv:2NSigma="<<PDGQ<<cq4M<<"-> Sigma/Pi="//^
-                          <<hyPDG<<b4Mom<<" + 2N/3N="<<pigPDG<<m4Mom<<dinFlag<<G4endl; // ^
-#endif
-                    G4QHadron* curBar = new G4QHadron(hyPDG,b4Mom); //                    ^
-                    theQHadrons.push_back(curBar); // Fill the Hyperon (delete equivalent)^
-                    if(dinFlag) m4Mom/=3.;   // Split the 4-mom for the dinucleon in 3    ^
-                    else m4Mom/=2.;          // Split the 4-mom for the dinucleon in 2    ^
-                    G4QHadron* curMes = new G4QHadron(pigPDG,m4Mom);  //                  ^
-                    theQHadrons.push_back(curMes); // Fill the gam/pi (delete equivalent) ^
-                    G4QHadron* secBar = new G4QHadron(pigPDG,m4Mom);  //                  ^
-                    theQHadrons.push_back(secBar); // Fill the gam/pi (delete equivalent) ^
-                    if(dinFlag)               //                                          ^
+                         <<hyPDG<<b4Mom<<" + 2N/3N="<<pigPDG<<m4Mom<<dinFlag<<G4endl; // ^
+#endif
+                   G4QHadron* curBar = new G4QHadron(hyPDG,b4Mom); //                    ^
+                   theQHadrons.push_back(curBar); // Fill the Hyperon (delete equivalent)^
+                   if(dinFlag) m4Mom/=3.;   // Split the 4-mom for the dinucleon in 3    ^
+                   else m4Mom/=2.;          // Split the 4-mom for the dinucleon in 2    ^
+                   G4QHadron* curMes = new G4QHadron(pigPDG,m4Mom);  //                  ^
+                   theQHadrons.push_back(curMes); // Fill the gam/pi (delete equivalent) ^
+                   G4QHadron* secBar = new G4QHadron(pigPDG,m4Mom);  //                  ^
+                   theQHadrons.push_back(secBar); // Fill the gam/pi (delete equivalent) ^
+                   if(dinFlag)               //                                          ^
 					               {                         //                                          ^
-                      G4QHadron* triBar = new G4QHadron(pigPDG,m4Mom);// Cre. 3-d nucleon ^
-                      theQHadrons.push_back(triBar);// Fill 3-d nucleon (delete equival.) ^
-                    }                         //                                          ^
-                    pQ->KillQuasmon();        // Make done the current Quasmon            ^
-                    tot4M-=cq4M;              // Update theTotalResidNucl of HadrPr.      ^
-                    totQC-=qQC;               // Update total residual QC of HadrPr.      ^
-                    eCount--;                 // Reduce a#of the living Quasmons          ^
+                     G4QHadron* triBar = new G4QHadron(pigPDG,m4Mom);// Cre. 3-d nucleon ^
+                     theQHadrons.push_back(triBar);// Fill 3-d nucleon (delete equival.) ^
+                   }                         //                                          ^
+                   pQ->KillQuasmon();        // Make done the current Quasmon            ^
+                   tot4M-=cq4M;              // Update theTotalResidNucl of HadrPr.      ^
+                   totQC-=qQC;               // Update total residual QC of HadrPr.      ^
+                   eCount--;                 // Reduce a#of the living Quasmons          ^
 				              }                           //                                          ^
-                  else if (PDGQ!=10)          // @@ Chipolino can wait @@                 ^
-                  {                           //                                          ^
-                    G4double qM =cq4M.m();    // Real mass of the Quasmon                 ^
-                    G4double gsM=QPDGQ.GetMass(); // GSmass of the Quasmon                ^
+                 else if (PDGQ!=10)          // @@ Chipolino can wait @@                 ^
+                 {                           //                                          ^
+                   G4double qM =cq4M.m();    // Real mass of the Quasmon                 ^
+                   G4double gsM=QPDGQ.GetMass(); // GSmass of the Quasmon                ^
 #ifdef edebug
-    		              G4cout<<"G4QEnv::HadrQEnv:#"<<jq<<",qM="<<qM<<">gsM="<<gsM<<G4endl;// ^
+   		              G4cout<<"G4QEnv::HadrQEnv:#"<<jq<<",qM="<<qM<<">gsM="<<gsM<<G4endl;// ^
 #endif
 					               if(fabs(qM-gsM)<0.0001)    // "Fill & Kill" Case                       ^
-                    {                         //                                          ^
-                      G4QHadron* resQ = new G4QHadron(PDGQ,cq4M); // GSM hadron for CurQ  ^
+                   {                         //                                          ^
+                     G4QHadron* resQ = new G4QHadron(PDGQ,cq4M); // GSM hadron for CurQ  ^
 #ifdef pdebug
 					                 G4cout<<"G4QEnv::HadrQEnv:ResQ="<<PDGQ<<cq4M<<G4endl;         //    ^
 #endif
-                      theQHadrons.push_back(resQ); // @@ Check Dibarions @@ (del.equiv.)  ^
-                      pQ->KillQuasmon();      // Make done the current Quasmon            ^
-                      tot4M-=cq4M;            // Update theTotalResidNucl of HadrPr.      ^
-                      totQC-=qQC;             // Update total residual QC of HadrPr.      ^
-                      eCount--;               // Reduce a#of the living Quasmons          ^
+                     theQHadrons.push_back(resQ); // @@ Check Dibarions @@ (del.equiv.)  ^
+                     pQ->KillQuasmon();      // Make done the current Quasmon            ^
+                     tot4M-=cq4M;            // Update theTotalResidNucl of HadrPr.      ^
+                     totQC-=qQC;             // Update total residual QC of HadrPr.      ^
+                     eCount--;               // Reduce a#of the living Quasmons          ^
 					               }                         //                                          ^
 					               else if(eCount==1 && qM<gsM && CheckGroundState(pQ,true))// Cor.& Fin.^
-                    {                         //                                          ^
+                   {                         //                                          ^
 #ifdef edebug
 					                 G4cout<<"G4QEnv::HadrQEnv:**>>** CGS Correction **>>**"<<G4endl; // ^
 #endif
-                      for_each(output->begin(), output->end(), DeleteQHadron()); //-->-->-^
-                      output->clear();        //                                          ^
-                      delete output;          // >========================================^
-                      pQ->KillQuasmon();      // If BackFusion -> kill theQuasmon         ^
-                      eCount--;               // Reduce a#of the living Quasmons          ^
-                      return theQHadrons;     //                                          ^
-                    }                         //                                          ^
+                     for_each(output->begin(), output->end(), DeleteQHadron()); //-->-->-^
+                     output->clear();        //                                          ^
+                     delete output;          // >========================================^
+                     pQ->KillQuasmon();      // If BackFusion -> kill theQuasmon         ^
+                     eCount--;               // Reduce a#of the living Quasmons          ^
+                     return theQHadrons;     //                                          ^
+                   }                         //                                          ^
 				                else if(qM<gsM&&(pQ->GetQC().GetSPDGCode()==1114     //               ^
 									                            || pQ->GetQC().GetSPDGCode()==2224) //               ^
-                          &&qM>theWorld->GetQParticle(QPDGQ)->MinMassOfFragm())//Del&Kill ^
-                    {                         //                                          ^
+                         &&qM>theWorld->GetQParticle(QPDGQ)->MinMassOfFragm())//Del&Kill ^
+                   {                         //                                          ^
 #ifdef edebug
 					                 G4cout<<"G4QEnv::HadrQEnv:**||** Copy&Decay **||**"<<G4endl; //     ^
 #endif
-                      G4QHadronVector* decHV=pQ->DecayQuasmon();//Dec.Quasm & fill decHV=*^
-                      CopyAndDeleteHadronVector(decHV);// Copy output to QHadrV of G4Env  ^
-                      tot4M-=pQ->Get4Momentum(); // tot4M recalculation                   ^
-                      totQC-=pQ->GetQC();     // totQC recalculation                      ^
-                      pQ->KillQuasmon();      // Make done the current Quasmon            ^
-                      eCount--;               // Reduce a#of the living Quasmons          ^
+                     G4QHadronVector* decHV=pQ->DecayQuasmon();//Dec.Quasm & fill decHV=*^
+                     CopyAndDeleteHadronVector(decHV);// Copy output to QHadrV of G4Env  ^
+                     tot4M-=pQ->Get4Momentum(); // tot4M recalculation                   ^
+                     totQC-=pQ->GetQC();     // totQC recalculation                      ^
+                     pQ->KillQuasmon();      // Make done the current Quasmon            ^
+                     eCount--;               // Reduce a#of the living Quasmons          ^
 					               }                         //                                          ^
 				              }                           //                                          ^
 				            }                             // End of the Medium/Vacuum IF              ^
 			           }                               // End of the status ELSE IF                ^
-              else if(status==3) count3++;    //                                          ^
-              if(status<0)                    // Panic: Quasmon is below theMassShell     ^
-              {                               //                                          ^
-                //if(eCount==1 && DecayInEnvQ(pQ)) //                                     ^
-                //{                             //                                        ^
-                //  for_each(output->begin(), output->end(), DeleteQHadron());//-->-->-->-^
-                //  output->clear();            //                                        ^
-                //  delete output;              // >======================================^
-                //  eCount--;                   // Reduce a#of the living Quasmons        ^
-                //  pQ->KillQuasmon();          //                                        ^
-                //  return theQHadrons;         //                                        ^
-                //}                             //                                        ^
-                G4int    ppm=jq;                // Initialized by PANIC Quasmon pointer   ^
-                G4int    nRQ=0;                 // Prot. of a#of additionalRealQuasmons   ^
+             else if(status==3) count3++;    //                                          ^
+             if(status<0)                    // Panic: Quasmon is below theMassShell     ^
+             {                               //                                          ^
+               //if(eCount==1 && DecayInEnvQ(pQ)) //                                     ^
+               //{                             //                                        ^
+               //  for_each(output->begin(), output->end(), DeleteQHadron());//-->-->-->-^
+               //  output->clear();            //                                        ^
+               //  delete output;              // >======================================^
+               //  eCount--;                   // Reduce a#of the living Quasmons        ^
+               //  pQ->KillQuasmon();          //                                        ^
+               //  return theQHadrons;         //                                        ^
+               //}                             //                                        ^
+               G4int    ppm=jq;                // Initialized by PANIC Quasmon pointer   ^
+               G4int    nRQ=0;                 // Prot. of a#of additionalRealQuasmons   ^
 #ifdef edebug
-    		          G4cout<<"G4QEnv::HadrQEnv: ***PANIC*** for jq="<<jq<<G4endl; //           ^
+   		          G4cout<<"G4QEnv::HadrQEnv: ***PANIC*** for jq="<<jq<<G4endl; //           ^
 #endif
-                G4ThreeVector vp= pQ->Get4Momentum().vect(); // PANICQuasmon momentum     ^
-                G4double dpm=1.e+30;            // Big number (dot product of momenta)    ^
+               G4ThreeVector vp= pQ->Get4Momentum().vect(); // PANICQuasmon momentum     ^
+               G4double dpm=1.e+30;            // Big number (dot product of momenta)    ^
 	               if(nQuasmons>1) for(G4int ir=0; ir<nQuasmons; ir++)// Search for partner  ^
-                {                               //                                        ^
-                  if(ir!=jq)                    // Skip the current (PANIC) Quasmon itself^
-                  {                             //                                        ^
+               {                               //                                        ^
+                 if(ir!=jq)                    // Skip the current (PANIC) Quasmon itself^
+                 {                             //                                        ^
 	                   G4Quasmon* rQ = theQuasmons[ir]; //                                   ^
-                    G4int Qst = rQ->GetStatus();// Status of a Quasmon                    ^
+                   G4int Qst = rQ->GetStatus();// Status of a Quasmon                    ^
 #ifdef edebug
 					               G4cout<<"G4QEnv::HadrQEnv: ir="<<ir<<",Qstatus="<<Qst<<G4endl; //     ^
 #endif
-                    if(Qst>0)                   // Skip the dead Quasmon                  ^
+                   if(Qst>0)                   // Skip the dead Quasmon                  ^
 				                {
 					                 nRQ++;                    // Increment real-Quasmon-counter         ^
-                      G4double dp=vp.dot(rQ->Get4Momentum().vect()); //                   ^
-                      if(dp<dpm)                // Search for the "moving in thesameDir"  ^
-                      {                         //                                        ^
-                        ppm=ir;                 // Remember the index of MinProj Quasmon  ^
-                        dpm=dp;                 // Remember the value of theMinProjection ^
+                     G4double dp=vp.dot(rQ->Get4Momentum().vect()); //                   ^
+                     if(dp<dpm)                // Search for the "moving in thesameDir"  ^
+                     {                         //                                        ^
+                       ppm=ir;                 // Remember the index of MinProj Quasmon  ^
+                       dpm=dp;                 // Remember the value of theMinProjection ^
 					                 }                         //                                        ^
 				                }                           //                                        ^
 				              } // End of the Quasmon LOOP 
-                } // End of the partner-search-for-the-PANIC-Quasmon LOOP                 ^
-                if(nRQ)                         // Merge with theBestPartnerQuasmonCandid ^
-                {                               //                                        ^
+               } // End of the partner-search-for-the-PANIC-Quasmon LOOP                 ^
+               if(nRQ)                         // Merge with theBestPartnerQuasmonCandid ^
+               {                               //                                        ^
 	                 G4Quasmon*      rQ = theQuasmons[ppm];   //                             ^
-                  G4QContent      rQC= rQ->GetQC();        //                             ^
-                  G4LorentzVector r4M= rQ->Get4Momentum(); //                             ^
-                  rQC               += pQ->GetQC();        //                             ^
-                  r4M               += pQ->Get4Momentum(); //                             ^
-                  rQ->InitQuasmon(rQC, r4M);    // Make new Quasmon                       ^
+                 G4QContent      rQC= rQ->GetQC();        //                             ^
+                 G4LorentzVector r4M= rQ->Get4Momentum(); //                             ^
+                 rQC               += pQ->GetQC();        //                             ^
+                 r4M               += pQ->Get4Momentum(); //                             ^
+                 rQ->InitQuasmon(rQC, r4M);    // Make new Quasmon                       ^
 #ifdef edebug
 		                G4cout<<"G4QE::HQE:"<<pQ->GetQC()<<"+"<<rQ->GetQC()<<"="<<rQC<<G4endl;//^
 #endif
-                  pQ->KillQuasmon();            // Delete old Quasmon                     ^
-                  eCount--;                     // Decrement counter of living Quasmons   ^
+                 pQ->KillQuasmon();            // Delete old Quasmon                     ^
+                 eCount--;                     // Decrement counter of living Quasmons   ^
 			             }                               //                                        ^
-                else // No candidate to resolve PANIC was found                           ^
-                {                               //                                        ^
+               else // No candidate to resolve PANIC was found                           ^
+               {                               //                                        ^
 #ifdef edebug
 		                G4cout<<"G4QEnv::HQE: No Q-cand. nRQ="<<nRQ<<",eC="<<eCount<<G4endl; // ^
 #endif
-                  //if(eCount==1 && CheckGroundState(pQ,true)) //  BackFusion attempt     ^
-                  if(CheckGroundState(pQ,true)) //  The only Q: BackFusion attempt        ^
-                  {
-                    for_each(output->begin(), output->end(), DeleteQHadron()); //-->-->---^
-                    output->clear();            //                                        ^
-                    delete output;              // >======================================^
-                    pQ->KillQuasmon();          //                                        ^
-                    eCount--;                   // Reduce a#of the living Quasmons        ^
+                 //if(eCount==1 && CheckGroundState(pQ,true)) //  BackFusion attempt     ^
+                 if(CheckGroundState(pQ,true)) //  The only Q: BackFusion attempt        ^
+                 {
+                   for_each(output->begin(), output->end(), DeleteQHadron()); //-->-->---^
+                   output->clear();            //                                        ^
+                   delete output;              // >======================================^
+                   pQ->KillQuasmon();          //                                        ^
+                   eCount--;                   // Reduce a#of the living Quasmons        ^
 					               return theQHadrons;         //                                        ^
-                  }                             //                                        ^
+                 }                             //                                        ^
 #ifdef fdebug
 		                G4cout<<"G4QEnv::HadrQEnv:NO PANICsolution,t="<<tot4M<<totQC<<G4endl;// ^
 #endif
-                  totQC=theEnvironment.GetQC(); //                                        ^
-                  tot4M=theEnvironment.Get4Momentum(); //                                 ^
+                 totQC=theEnvironment.GetQC(); //                                        ^
+                 tot4M=theEnvironment.Get4Momentum(); //                                 ^
 	                 if(nQuasmons) for(G4int jr=0; jr<nQuasmons; jr++) // Search for partner ^
-                  {                             //                                        ^
+                 {                             //                                        ^
 	                   G4Quasmon* rQ = theQuasmons[jr]; // Pointer to the Quasmon            ^
-                    G4int Qst = rQ->GetStatus();// Status of a Quasmon                    ^
-                    if(jr==jq)                  //                                        ^
+                   G4int Qst = rQ->GetStatus();// Status of a Quasmon                    ^
+                   if(jr==jq)                  //                                        ^
 					               {                           //                                        ^
-                      totQC+=rQ->GetQC();       // QuarkContent of the Quasmon            ^
-                      tot4M+=rQ->Get4Momentum();// QuarkContent of the Quasmon            ^
-                    }                           //                                        ^
-                    else if(Qst)                // Skip dead Quasmons                     ^
-                    {                           //                                        ^
-                      totQC+=rQ->GetQC();       // QuarkContent of the Quasmon            ^
-                      tot4M+=rQ->Get4Momentum();// QuarkContent of the Quasmon            ^
+                     totQC+=rQ->GetQC();       // QuarkContent of the Quasmon            ^
+                     tot4M+=rQ->Get4Momentum();// QuarkContent of the Quasmon            ^
+                   }                           //                                        ^
+                   else if(Qst)                // Skip dead Quasmons                     ^
+                   {                           //                                        ^
+                     totQC+=rQ->GetQC();       // QuarkContent of the Quasmon            ^
+                     tot4M+=rQ->Get4Momentum();// QuarkContent of the Quasmon            ^
 					               }                           //                                        ^
-                  } // End of the "No candidate to resolve PANIC" ELSE                    ^
-                  pQ->KillQuasmon();            // Kill the only Quasmon                  ^
-                  eCount--;                     // Reduce a#of the living Quasmons        ^
-                  CleanUp();                    // Clean up THIS Quasmon and Environment  ^
-                  G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create ResidNuclHadron  ^
-                  EvaporateResidual(evH);       // Try to evaporate residual (del.equiv.) ^
-                  for_each(output->begin(), output->end(), DeleteQHadron()); //-->-->-->--^
-                  output->clear();              //                                        ^
-                  delete output;                // >======================================^
-                  force=true;                   // Make the force decision                ^
-                  break;                        // Out of the fragmentation loop >->+     ^
+                 } // End of the "No candidate to resolve PANIC" ELSE                    ^
+                 pQ->KillQuasmon();            // Kill the only Quasmon                  ^
+                 eCount--;                     // Reduce a#of the living Quasmons        ^
+                 CleanUp();                    // Clean up THIS Quasmon and Environment  ^
+                 G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create ResidNuclHadron  ^
+                 EvaporateResidual(evH);       // Try to evaporate residual (del.equiv.) ^
+                 for_each(output->begin(), output->end(), DeleteQHadron()); //-->-->-->--^
+                 output->clear();              //                                        ^
+                 delete output;                // >======================================^
+                 force=true;                   // Make the force decision                ^
+                 break;                        // Out of the fragmentation loop >->+     ^
 			             }                               //                                  |     ^
 			           }                                 //                                  |     ^
 			         }                                   //                                  |     ^
-            for_each(output->begin(), output->end(), DeleteQHadron()); // ->-->-->--|-----^
-            output->clear();                    //                                  |     ^
-            delete output;                      // >================================|=====^
+           for_each(output->begin(), output->end(), DeleteQHadron()); // ->-->-->--|-----^
+           output->clear();                    //                                  |     ^
+           delete output;                      // >================================|=====^
 		        } // End of skip of the dead Quasmons                                     |
 #ifdef pdebug
 	         G4cout<<"G4QE::HQE:QStat("<<jq<<"="<<status<<pQ->Get4Momentum()<<G4endl;//|
 #endif
 	       } // End of fragmentation LOOP over Quasmons (jq) <--------<----------<-----+
-      }
-      else if(totMass>totM+.001)                // ==> "Try Evaporate or decay" case
+     }
+     else if(totMass>totM+.001)                // ==> "Try Evaporate or decay" case
 	     {
 #ifdef edebug
 		      G4cout<<"G4QEnv::HadrQE: NQ="<<nQuasmons<<",tM="<<totMass<<",tPDG="<<totPDG<<",tB="
-              <<totBN<<",GSM="<<totM<<",dM="<<totMass-totM<<",totQC="<<totQC<<G4endl;
+             <<totBN<<",GSM="<<totM<<",dM="<<totMass-totM<<",totQC="<<totQC<<G4endl;
 #endif
 		      //if(nQuasmons==1)
-        if(2>3)                                 // ** closed, because doesn't make a diff
+       if(2>3)                                 // ** closed, because doesn't make a diff
 		      {
-          G4QContent quasQC=totQC-envQC;        // Total QuarkContent of the Only Quasmon
-          G4int resQPDG=quasQC.GetSPDGCode();   // GS mass for the Only Quasmon-hadron
-          G4int resQB=quasQC.GetBaryonNumber(); // Baryon number of the Only Quasmon
-          G4int resQCh=quasQC.GetCharge();      // Charge of the Only Quasmon
-          //G4int resQS=quasQC.GetStrangeness();  // Strangeness of the Only Quasmon
-          if((resQPDG==0 || resQPDG==10) && resQB>0) resQPDG=quasQC.GetZNSPDGCode();
-          G4double resQM=G4QPDGCode(resQPDG).GetMass();// GS Mass of the Only Quasmon
-          G4double qCB=theEnvironment.CoulombBarrier(resQCh,resQB); // CoulombBarrier
-          G4double de=totMass-envM-resQM-qCB;
+         G4QContent quasQC=totQC-envQC;        // Total QuarkContent of the Only Quasmon
+         G4int resQPDG=quasQC.GetSPDGCode();   // GS mass for the Only Quasmon-hadron
+         G4int resQB=quasQC.GetBaryonNumber(); // Baryon number of the Only Quasmon
+         G4int resQCh=quasQC.GetCharge();      // Charge of the Only Quasmon
+         //G4int resQS=quasQC.GetStrangeness();  // Strangeness of the Only Quasmon
+         if((resQPDG==0 || resQPDG==10) && resQB>0) resQPDG=quasQC.GetZNSPDGCode();
+         G4double resQM=G4QPDGCode(resQPDG).GetMass();// GS Mass of the Only Quasmon
+         G4double qCB=theEnvironment.CoulombBarrier(resQCh,resQB); // CoulombBarrier
+         G4double de=totMass-envM-resQM-qCB;
 #ifdef debug
 		        G4cout<<"G4QEnv::HadrQE:NQ==1,tM="<<totMass<<",qM="<<resQM<<",eM="<<envM<<",CB="
-                <<qCB<<",dE="<<totMass-envM-resQM-qCB<<G4endl;
+               <<qCB<<",dE="<<totMass-envM-resQM-qCB<<G4endl;
 #endif
-          if(de>0.)                             // Make DecayIn2 conserving Q-direction
-          {
-            G4LorentzVector fq4M=G4LorentzVector(0.,0.,0.,resQM); // Prot. for outQuasmon
-            G4LorentzVector fe4M=env4M;         // Prototype for outEnvironment
-            G4LorentzVector dir4M=tot4M-env4M;  // Internall quasmon 4-momentum
+         if(de>0.)                             // Make DecayIn2 conserving Q-direction
+         {
+           G4LorentzVector fq4M=G4LorentzVector(0.,0.,0.,resQM); // Prot. for outQuasmon
+           G4LorentzVector fe4M=env4M;         // Prototype for outEnvironment
+           G4LorentzVector dir4M=tot4M-env4M;  // Internall quasmon 4-momentum
 	           if(!G4QHadron(tot4M).RelDecayIn2(fe4M,fq4M,dir4M,1.,1.))
-            {
-              G4cerr<<"***G4QEnv::HadrQE: Can't decay Q+E, t4M="<<tot4M<<",d="<<de<<G4endl;
-              throw G4QException("G4QEnvironment::HadronizeQEnvironment: Q+E RelDecayIn2");
-            }
-              G4QHadron* hQua = new G4QHadron(resQPDG,fq4M);
-              theQHadrons.push_back(hQua);      // Fill the hadron-quasmon (delete equiv.)
-              G4int envPDG=theEnvironment.GetPDGCode();
-              G4QHadron* hEnv = new G4QHadron(envPDG,fe4M);
-              theQHadrons.push_back(hEnv);      // Fill the hadron-environ (delete equiv.)
+           {
+             G4cerr<<"***G4QEnv::HadrQE: Can't decay Q+E, t4M="<<tot4M<<",d="<<de<<G4endl;
+             throw G4QException("G4QEnvironment::HadronizeQEnvironment: Q+E RelDecayIn2");
+           }
+             G4QHadron* hQua = new G4QHadron(resQPDG,fq4M);
+             theQHadrons.push_back(hQua);      // Fill the hadron-quasmon (delete equiv.)
+             G4int envPDG=theEnvironment.GetPDGCode();
+             G4QHadron* hEnv = new G4QHadron(envPDG,fe4M);
+             theQHadrons.push_back(hEnv);      // Fill the hadron-environ (delete equiv.)
 #ifdef debug
 			           G4cout<<"G4QEnv::HadrQEnv:fQ="<<resQPDG<<fq4M<<", fE="<<envPDG<<fe4M<<G4endl;
 #endif
-              return theQHadrons;
-          }
-        }
+             return theQHadrons;
+         }
+       }
 #ifdef debug
 		      G4cout<<"G4QEnv::HadrQE: M="<<totMass<<",PDG="<<totPDG<<",B="<<totBN<<",GSM="<<totM
-              <<",dM="<<totMass-totM<<",totQC="<<totQC<<G4endl;
+             <<",dM="<<totMass-totM<<",totQC="<<totQC<<G4endl;
 #endif
-        if(totBN<2)                             // ==> "Baryon/Meson residual Quasmon" case
+       if(totBN<2)                             // ==> "Baryon/Meson residual Quasmon" case
 		      {
-          if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)//"M"ca
+         if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)//"M"ca
 		        {
 		          G4cout<<"---Warning---G4QE::HQE:Meson(2) PDG="<<totPDG<<",M="<<totMass<<G4endl;
 		        }
-          else if(totPDG==1114||totPDG==2224)   //==> "DELTA- or DELTA++" case (?antiDELTA)
+         else if(totPDG==1114||totPDG==2224)   //==> "DELTA- or DELTA++" case (?antiDELTA)
 		        {
-            G4double   mBar=mProt;
+           G4double   mBar=mProt;
 			         G4int      bPDG=2212;
-            G4double   mMes=mPi;
+           G4double   mMes=mPi;
 			         G4int      mPDG=211;
-            if(totPDG==1114)                    // "DELTA-" case
+           if(totPDG==1114)                    // "DELTA-" case
 			         {
-              mBar=mNeut;
-              bPDG=2112;
-              mPDG=-211;
+             mBar=mNeut;
+             bPDG=2112;
+             mPDG=-211;
 		          }
-            if(totMass<mBar+mMes)
+           if(totMass<mBar+mMes)
 			         {
 		            G4cout<<"--Warning--G4QE::HQE:tM="<<totMass<<"<GSM+mPi0="<<totM+mPi0<<G4endl;
-              G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-              CleanUp();
+             G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+             CleanUp();
 		            if(!CheckGroundState(quasH,true))
-              {
-                G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                theQHadrons.push_back(hadr);   // Cor or fill as It Is
+             {
+               G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+               theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                G4cout<<"***G4QE::HQE:FillAsIs(-4),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+               G4cout<<"***G4QE::HQE:FillAsIs(-4),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-                //throw G4QException("G4QEnvironment::HadronizeQEnvironment:(1)DecayQEnv");
-              }
-              delete quasH;  
-              return theQHadrons;
+               //throw G4QException("G4QEnvironment::HadronizeQEnvironment:(1)DecayQEnv");
+             }
+             delete quasH;  
+             return theQHadrons;
 			         }
-            else
+           else
 			         {
-              //G4QHadron* delta = new G4QHadron(totQC,tot4M);
-              //delta->SetNFragments(2);           // Put a#of Fragments=2
-              //theQHadrons.push_back(delta);      // Fill the residual DELTA (del.Eq.)
-              // Instead
-              //delete delta;
-              //
-              G4LorentzVector b4Mom(0.,0.,0.,mBar);
-              G4LorentzVector m4Mom(0.,0.,0.,mMes);
-              if(!G4QHadron(tot4M).DecayIn2(b4Mom, m4Mom))
-              {
-                G4cout<<"---Warning---G4QEnv::HadronizeQE:B="<<bPDG<<"(m="<<mBar<<") + M="
+             //G4QHadron* delta = new G4QHadron(totQC,tot4M);
+             //delta->SetNFragments(2);           // Put a#of Fragments=2
+             //theQHadrons.push_back(delta);      // Fill the residual DELTA (del.Eq.)
+             // Instead
+             //delete delta;
+             //
+             G4LorentzVector b4Mom(0.,0.,0.,mBar);
+             G4LorentzVector m4Mom(0.,0.,0.,mMes);
+             if(!G4QHadron(tot4M).DecayIn2(b4Mom, m4Mom))
+             {
+               G4cout<<"---Warning---G4QEnv::HadronizeQE:B="<<bPDG<<"(m="<<mBar<<") + M="
 					                 <<mPDG<<"(m="<<mMes<<")="<<mBar+mMes<<" > mDel="<<totMass<<G4endl;
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QE::HQE:FillAsIs(-3),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QE::HQE:FillAsIs(-3),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-    	             //throw G4QException("G4QEnvironment::HadronizeQEnv:Del->Bar+Mes error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+   	             //throw G4QException("G4QEnvironment::HadronizeQEnv:Del->Bar+Mes error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef pdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: DELTA="<<totPDG<<tot4M<<" -> Bar="
-                    <<bPDG<<b4Mom<<" + Mes="<<mPDG<<m4Mom<<G4endl;
+                   <<bPDG<<b4Mom<<" + Mes="<<mPDG<<m4Mom<<G4endl;
 #endif
-              G4QHadron* curBar = new G4QHadron(bPDG,b4Mom);
-              theQHadrons.push_back(curBar);     // Fill the baryon (delete equivalent)
+             G4QHadron* curBar = new G4QHadron(bPDG,b4Mom);
+             theQHadrons.push_back(curBar);     // Fill the baryon (delete equivalent)
 #ifdef edebug
 			           G4cout<<"G4QEnv::HadrQEnv:BaryonH="<<bPDG<<b4Mom<<G4endl;
 #endif
-              G4QHadron* curMes = new G4QHadron(mPDG,m4Mom);
-              theQHadrons.push_back(curMes);     // Fill the meson (delete equivalent)
+             G4QHadron* curMes = new G4QHadron(mPDG,m4Mom);
+             theQHadrons.push_back(curMes);     // Fill the meson (delete equivalent)
 #ifdef edebug
 			           G4cout<<"G4QEnv::HadrQEnv:MesonH="<<mPDG<<m4Mom<<G4endl;
 #endif
-              return theQHadrons;
+             return theQHadrons;
 			         }
 		        }
-          else if(totPDG==10)                    // ==> "Chipolino" case
+         else if(totPDG==10)                    // ==> "Chipolino" case
 		        {
-            G4QChipolino resChip(totQC);         // define Residual as Chipolino
-            G4QPDGCode h1QPDG=resChip.GetQPDG1();// QPDG of the first hadron
-            G4int      h1PDG=h1QPDG.GetPDGCode();// PDG code of the first hadron
-            G4double   h1M  =h1QPDG.GetMass();   // Mass of the first hadron
-            G4QPDGCode h2QPDG=resChip.GetQPDG2();// QPDG of the second hadron
-            G4int      h2PDG=h2QPDG.GetPDGCode();// PDG code of the second hadron
-            G4double   h2M  =h2QPDG.GetMass();   // Mass of the second hadron
-            G4LorentzVector h14Mom(0.,0.,0.,h1M);
-            G4LorentzVector h24Mom(0.,0.,0.,h2M);
-            if(!G4QHadron(tot4M).DecayIn2(h14Mom, h24Mom))
-            {
-              G4cout<<"---Warning---G4QEnv::HadronizeQE:h1="<<h1PDG<<"(m="<<h1M<<") + h2="
+           G4QChipolino resChip(totQC);         // define Residual as Chipolino
+           G4QPDGCode h1QPDG=resChip.GetQPDG1();// QPDG of the first hadron
+           G4int      h1PDG=h1QPDG.GetPDGCode();// PDG code of the first hadron
+           G4double   h1M  =h1QPDG.GetMass();   // Mass of the first hadron
+           G4QPDGCode h2QPDG=resChip.GetQPDG2();// QPDG of the second hadron
+           G4int      h2PDG=h2QPDG.GetPDGCode();// PDG code of the second hadron
+           G4double   h2M  =h2QPDG.GetMass();   // Mass of the second hadron
+           G4LorentzVector h14Mom(0.,0.,0.,h1M);
+           G4LorentzVector h24Mom(0.,0.,0.,h2M);
+           if(!G4QHadron(tot4M).DecayIn2(h14Mom, h24Mom))
+           {
+             G4cout<<"---Warning---G4QEnv::HadronizeQE:h1="<<h1PDG<<"(m="<<h1M<<") + h2="
 				                <<h2PDG<<"(m="<<h2M<<")="<<h1M+h2M<<" > mChipo="<<totMass<<G4endl;
-              G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-              CleanUp();
+             G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+             CleanUp();
 		            if(!CheckGroundState(quasH,true))
-              {
-                G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                theQHadrons.push_back(hadr);   // Cor or fill as It Is
+             {
+               G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+               theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                G4cout<<"***G4QE::HQE:FillAsIs(-2),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+               G4cout<<"***G4QE::HQE:FillAsIs(-2),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-    	           //throw G4QException("G4QEnvironment::HadrQEnv: Chipo->1+2 decay failed");
-              }
-              delete quasH;  
-              return theQHadrons;
-            }
+   	           //throw G4QException("G4QEnvironment::HadrQEnv: Chipo->1+2 decay failed");
+             }
+             delete quasH;  
+             return theQHadrons;
+           }
 #ifdef pdebug
 	           G4cout<<"G4QEnv::HadronizeQEnv: Chipo="<<tot4M<<" -> h1="
-                  <<h1PDG<<h14Mom<<" + Mes="<<h2PDG<<h24Mom<<G4endl;
+                 <<h1PDG<<h14Mom<<" + Mes="<<h2PDG<<h24Mom<<G4endl;
 #endif
-            G4QHadron* curH1 = new G4QHadron(h1PDG,h14Mom);
-            theQHadrons.push_back(curH1);        // Fill the curH1 (delete equivalent)
+           G4QHadron* curH1 = new G4QHadron(h1PDG,h14Mom);
+           theQHadrons.push_back(curH1);        // Fill the curH1 (delete equivalent)
 #ifdef edebug
 			         G4cout<<"G4QEnv::HadrQEnv:HadronH="<<h1PDG<<h14Mom<<G4endl;
 #endif
-            G4QHadron* curH2 = new G4QHadron(h2PDG,h24Mom);
-            theQHadrons.push_back(curH2);        // Fill the curH2 (delete equivalent)
+           G4QHadron* curH2 = new G4QHadron(h2PDG,h24Mom);
+           theQHadrons.push_back(curH2);        // Fill the curH2 (delete equivalent)
 #ifdef edebug
 			         G4cout<<"G4QEnv::HadrQEnv:MesAsHadrPartnerH="<<h2PDG<<h24Mom<<G4endl;
 #endif
-            return theQHadrons;
+           return theQHadrons;
 		        }
-          else if(totBN<2&&totPDG&&totMass<totM+mPi0+.001)// ==> "Meson/Baryon+gamma" case
+         else if(totBN<2&&totPDG&&totMass<totM+mPi0+.001)// ==> "Meson/Baryon+gamma" case
 		        {
-            G4LorentzVector h4Mom(0.,0.,0.,totM);
-            G4LorentzVector g4Mom(0.,0.,0.,0.);
-            if(!G4QHadron(tot4M).DecayIn2(h4Mom, g4Mom))
-            {
-              G4cout<<"---Warning---G4QEnv::HadronizeQEnv: h="<<totPDG<<"(m="<<totM
-                    <<") + gamma > mTot="<<totMass<<G4endl;
-              G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-              CleanUp();
+           G4LorentzVector h4Mom(0.,0.,0.,totM);
+           G4LorentzVector g4Mom(0.,0.,0.,0.);
+           if(!G4QHadron(tot4M).DecayIn2(h4Mom, g4Mom))
+           {
+             G4cout<<"---Warning---G4QEnv::HadronizeQEnv: h="<<totPDG<<"(m="<<totM
+                   <<") + gamma > mTot="<<totMass<<G4endl;
+             G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+             CleanUp();
 		            if(!CheckGroundState(quasH,true))
-              {
-                G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                theQHadrons.push_back(hadr);   // Cor or fill as It Is
+             {
+               G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+               theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                G4cout<<"***G4QE::HQE:FillAsIs(-1),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+               G4cout<<"***G4QE::HQE:FillAsIs(-1),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-       	        //throw G4QException("G4QEnvironment::HadronizeQEnv:Gamma Decay failed");
-              }
-              delete quasH;  
-              return theQHadrons;
-            }
+      	        //throw G4QException("G4QEnvironment::HadronizeQEnv:Gamma Decay failed");
+             }
+             delete quasH;  
+             return theQHadrons;
+           }
 #ifdef pdebug
 	           G4cout<<"G4QE::HQE:"<<tot4M<<"->h="<<totPDG<<h4Mom<<" + gamma="<<g4Mom<<G4endl;
 #endif
-            G4QHadron* curG = new G4QHadron(22,g4Mom);
-            theQHadrons.push_back(curG);         // Fill the gamma (delete equivalent)
+           G4QHadron* curG = new G4QHadron(22,g4Mom);
+           theQHadrons.push_back(curG);         // Fill the gamma (delete equivalent)
 #ifdef edebug
 			         G4cout<<"G4QEnv::HadrQEnv:PhotonH="<<g4Mom<<G4endl;
 #endif
-            G4QHadron* curH = new G4QHadron(totPDG,h4Mom);
+           G4QHadron* curH = new G4QHadron(totPDG,h4Mom);
 #ifdef edebug
 			         G4cout<<"G4QEnv::HadrQEnv:GamPartnerH="<<totPDG<<h4Mom<<G4endl;
 #endif
-            if(totPDG==92000000||totPDG==90002000||totPDG==90000002)
-              theEnvironment.DecayDibaryon(curH,&theQHadrons);
-            else theQHadrons.push_back(curH);    // Fill the baryon (delete equivalent)
-            return theQHadrons;
+           if(totPDG==92000000||totPDG==90002000||totPDG==90000002)
+             theEnvironment.DecayDibaryon(curH,&theQHadrons);
+           else theQHadrons.push_back(curH);    // Fill the baryon (delete equivalent)
+           return theQHadrons;
 		        }
-          else if(totBN<2&&totPDG)               // ==> "Meson/Baryon+pi" case
+         else if(totBN<2&&totPDG)               // ==> "Meson/Baryon+pi" case
 		        {
-            G4int piPDG=111;
-            G4double mpi=mPi0;
-            G4int mbPDG=totPDG;
-            G4double mbm=totM;
-            if(totPDG==1114)
+           G4int piPDG=111;
+           G4double mpi=mPi0;
+           G4int mbPDG=totPDG;
+           G4double mbm=totM;
+           if(totPDG==1114)
 			         {
 			           piPDG=-211;
-              mpi=mPi;
-              mbPDG=2112;
-              mbm=mNeut;
-            }
-            else if(totPDG==2224)
+             mpi=mPi;
+             mbPDG=2112;
+             mbm=mNeut;
+           }
+           else if(totPDG==2224)
 			         {
 			           piPDG=211;
-              mpi=mPi;
-              mbPDG=2212;
-              mbm=mProt;
-            }
-            else if(totPDG==113)
+             mpi=mPi;
+             mbPDG=2212;
+             mbm=mProt;
+           }
+           else if(totPDG==113)
 			         {
 			           piPDG=-211;
-              mpi=mPi;
-              mbPDG=211;
-              mbm=mPi;
-            }
-            G4LorentzVector h4Mom(0.,0.,0.,mbm);
-            G4LorentzVector g4Mom(0.,0.,0.,mpi);
-            if(!G4QHadron(tot4M).DecayIn2(h4Mom, g4Mom))
-            {
-              G4cout<<"---Warning---G4QEnv::HadronizeQEnv: h="<<mbPDG<<"(m="<<mbm
-                    <<") + pi(m="<<mpi<<")="<<mbm+mpi<<" > mTot="<<totMass<<G4endl;
-              G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-              CleanUp();
+             mpi=mPi;
+             mbPDG=211;
+             mbm=mPi;
+           }
+           G4LorentzVector h4Mom(0.,0.,0.,mbm);
+           G4LorentzVector g4Mom(0.,0.,0.,mpi);
+           if(!G4QHadron(tot4M).DecayIn2(h4Mom, g4Mom))
+           {
+             G4cout<<"---Warning---G4QEnv::HadronizeQEnv: h="<<mbPDG<<"(m="<<mbm
+                   <<") + pi(m="<<mpi<<")="<<mbm+mpi<<" > mTot="<<totMass<<G4endl;
+             G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+             CleanUp();
 		            if(!CheckGroundState(quasH,true))
-              {
-                G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                theQHadrons.push_back(hadr);   // Cor or fill as It Is
+             {
+               G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+               theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                G4cout<<"***G4QE::HQE:FillAsIs(0),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+               G4cout<<"***G4QE::HQE:FillAsIs(0),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-       	        //throw G4QException("G4QEnvironment::HadronizeQE: DecIn2 mB+nPi failed");
-              }
-              delete quasH;  
-              return theQHadrons;
-            }
+      	        //throw G4QException("G4QEnvironment::HadronizeQE: DecIn2 mB+nPi failed");
+             }
+             delete quasH;  
+             return theQHadrons;
+           }
 #ifdef pdebug
 	           G4cout<<"G4QE::HQE:"<<tot4M<<"->h="<<mbPDG<<h4Mom<<"+p="<<piPDG<<g4Mom<<G4endl;
 #endif
-            G4QHadron* curH = new G4QHadron(mbPDG,h4Mom);
-            if(totPDG==92000000||totPDG==90002000||totPDG==90000002)
-              theEnvironment.DecayDibaryon(curH,&theQHadrons);
-            else theQHadrons.push_back(curH);    // Fill the baryon (delete equivalent)
-            G4QHadron* curG = new G4QHadron(piPDG,g4Mom);
+           G4QHadron* curH = new G4QHadron(mbPDG,h4Mom);
+           if(totPDG==92000000||totPDG==90002000||totPDG==90000002)
+             theEnvironment.DecayDibaryon(curH,&theQHadrons);
+           else theQHadrons.push_back(curH);    // Fill the baryon (delete equivalent)
+           G4QHadron* curG = new G4QHadron(piPDG,g4Mom);
 #ifdef edebug
 			         G4cout<<"G4QEnv::HadrQEnv:Gamma/Pi0H="<<piPDG<<g4Mom<<G4endl;
 #endif
-            theQHadrons.push_back(curG);         // Fill the pi0 (delete equivalent)
-            return theQHadrons;
+           theQHadrons.push_back(curG);         // Fill the pi0 (delete equivalent)
+           return theQHadrons;
 		        }
-          else                                   // ==> "|B|<2 new Quasmon" case
+         else                                   // ==> "|B|<2 new Quasmon" case
 		        {
-            G4Quasmon* resid = new G4Quasmon(totQC,tot4M); // delete is 3 lines below <-+
-            G4QNucleus vacuum(90000000);         //                                     ^
- 	          G4QHadronVector* curout=resid->Fragment(vacuum,1);//**!!DESTROY!!** <-<-+   ^
-            G4int rest = resid->GetStatus();     // New status after fragm attempt  ^   ^
-            if(!rest) eCount--;                  // Dec ExistingQuasmonsCounter     ^   ^
-            delete resid;                        //_________________________________^___^
-            G4int nHadrons = curout->size();     // a#of Hadrons in the outHV       ^
-            if(nHadrons>0)                       // Transfer QHadrons to Output     ^
+           G4Quasmon* resid = new G4Quasmon(totQC,tot4M); // delete is 3 lines below <-+
+           G4QNucleus vacuum(90000000);         //                                     ^
+	          G4QHadronVector* curout=resid->Fragment(vacuum,1);//**!!DESTROY!!** <-<-+   ^
+           G4int rest = resid->GetStatus();     // New status after fragm attempt  ^   ^
+           if(!rest) eCount--;                  // Dec ExistingQuasmonsCounter     ^   ^
+           delete resid;                        //_________________________________^___^
+           G4int nHadrons = curout->size();     // a#of Hadrons in the outHV       ^
+           if(nHadrons>0)                       // Transfer QHadrons to Output     ^
 	           {
-    	         for (G4int ih=0; ih<nHadrons; ih++)// LOOP over output QHadrons       ^
+   	         for (G4int ih=0; ih<nHadrons; ih++)// LOOP over output QHadrons       ^
 			           {                                  //                                 ^
 #ifdef pdebug
 				            G4cout<<"G4QEnv::HadrQE:NewB<2, H#"<<ih //                          ^
-                      <<", QPDG="<<(*curout)[ih]->GetQPDG() //                      ^
-                      <<", 4M="<<(*curout)[ih]->Get4Momentum()<<G4endl; //          ^
+                     <<", QPDG="<<(*curout)[ih]->GetQPDG() //                      ^
+                     <<", 4M="<<(*curout)[ih]->Get4Momentum()<<G4endl; //          ^
 #endif
-                //theQHadrons.push_back(curout->operator[](ih));//(delete equ.) <-<-^
-                theQHadrons.push_back((*curout)[ih]);          // (delete equ.) <-<-^
+               //theQHadrons.push_back(curout->operator[](ih));//(delete equ.) <-<-^
+               theQHadrons.push_back((*curout)[ih]);          // (delete equ.) <-<-^
 			           }                                  //                                 ^
 	           }                                    //                                 ^
 			         else                                 //                                 ^
 												{                                    //                                 ^
-              G4cerr<<"***G4QEnv::HadrQEnv:MQ="<<tot4M.m()<<",QC="<<totQC<<G4endl;//^
+             G4cerr<<"***G4QEnv::HadrQEnv:MQ="<<tot4M.m()<<",QC="<<totQC<<G4endl;//^
 			           throw G4QException("G4QEnvironment::HadronizeQEnv: Quasmon decay?");//^
 			         }                                    // *** Do not destroy instances ***^
-            curout->clear();                     // The instances are filled above  ^
-            delete curout;                       // >===============================^
-            return theQHadrons;
+           curout->clear();                     // The instances are filled above  ^
+           delete curout;                       // >===============================^
+           return theQHadrons;
 		        }
 		      }
-        else
+       else
 		      {
-          G4QContent tQC    =totQC;              // Not subtracted copy for error prints
-          G4int      NSi    =0;                  // a#of additional Sigma
-          G4int      SiPDG  =0;                  // PDG of additional Sigma
-          G4double   MSi    =0.;                 // TotalMass of additional Sigma
-          G4int      NaK    =0;                  // a#of additional Kaons/anti-Kaons
-          G4int      aKPDG  =0;                  // PDG of additional Kaons/anti-Kaons
-          G4double   MaK    =0.;                 // TotalMass of additionalKaons/anti-Kaons
-          G4int      NPi    =0;                  // a#of additional pions
-          G4int      PiPDG  =0;                  // PDG of additional pions
-          G4double   MPi    =0.;                 // Total Mass of additional pions
-          if    (totBN>0&&totS<0&&totChg+totChg>=totBN)// => "additional K+" case
+         G4QContent tQC    =totQC;              // Not subtracted copy for error prints
+         G4int      NSi    =0;                  // a#of additional Sigma
+         G4int      SiPDG  =0;                  // PDG of additional Sigma
+         G4double   MSi    =0.;                 // TotalMass of additional Sigma
+         G4int      NaK    =0;                  // a#of additional Kaons/anti-Kaons
+         G4int      aKPDG  =0;                  // PDG of additional Kaons/anti-Kaons
+         G4double   MaK    =0.;                 // TotalMass of additionalKaons/anti-Kaons
+         G4int      NPi    =0;                  // a#of additional pions
+         G4int      PiPDG  =0;                  // PDG of additional pions
+         G4double   MPi    =0.;                 // Total Mass of additional pions
+         if    (totBN>0&&totS<0&&totChg+totChg>=totBN)// => "additional K+" case
 	         {
-            aKPDG=321;
-            NaK=-totS;
-            MaK=mK*NaK;
-            tQC+=totS*KpQC;
-            totChg+=totS;                        // Charge reduction (totS<0!)
-            totS=0;                              // Anti-strangness goes to anti-Kaons
+           aKPDG=321;
+           NaK=-totS;
+           MaK=mK*NaK;
+           tQC+=totS*KpQC;
+           totChg+=totS;                        // Charge reduction (totS<0!)
+           totS=0;                              // Anti-strangness goes to anti-Kaons
 	         }
-          else if (totBN>0&&totS<0)              // => "additional aK0" case
+         else if (totBN>0&&totS<0)              // => "additional aK0" case
 	         {
-            aKPDG=311;
-            NaK=-totS;
-            MaK=mK0*NaK;
-            tQC+=totS*K0QC;
-            totS=0;                              // Anti-strangness goes to anti-Kaons
+           aKPDG=311;
+           NaK=-totS;
+           MaK=mK0*NaK;
+           tQC+=totS*K0QC;
+           totS=0;                              // Anti-strangness goes to anti-Kaons
 	         }
-          else if (totBN>1&&totS>0&&(totChg<0||totChg>totBN-totS))//=>"additional Sigma"
+         else if (totBN>1&&totS>0&&(totChg<0||totChg>totBN-totS))//=>"additional Sigma"
 	         {
-            NSi=totS;                            // Prototype of a#of Sigmas
-            if(totChg<0)                         // Negative Sigmas
+           NSi=totS;                            // Prototype of a#of Sigmas
+           if(totChg<0)                         // Negative Sigmas
 			         {
-              SiPDG=3112;
-              if(-totChg<NSi) NSi=-totChg;       // A#of Sigma- is restricted by charge
-              MSi=mSigM*NSi;                     // Total mass of Sigma-'s
-              tQC-=NSi*SiMQC;                    // Subtract QC of Sigma-'s from totQC
-              totChg+=NSi;                       // Increase the TotalResidualCharge
-            }
-            else
+             SiPDG=3112;
+             if(-totChg<NSi) NSi=-totChg;       // A#of Sigma- is restricted by charge
+             MSi=mSigM*NSi;                     // Total mass of Sigma-'s
+             tQC-=NSi*SiMQC;                    // Subtract QC of Sigma-'s from totQC
+             totChg+=NSi;                       // Increase the TotalResidualCharge
+           }
+           else
 			         {
-              SiPDG=3222;                        // Positive Sigmas
-              G4int exChg=totChg-totBN+totS;     // Excesive positive charge
-              if(exChg<NSi) NSi=exChg;           // A#of Sigma+ is restricted by charge
-              MSi=mSigP*NSi;                     // Total mass of Sigma+'s
-              tQC-=NSi*SiPQC;                    // Subtract QC of Sigma-'s from totQC
-              totChg-=NSi;                       // Reduce the TotalResidualCharge
-            }
-            totS-=NSi;                           // Reduce the TotalResidualStrangeness
-            totBN-=NSi;                          // A#of excessive pions is added below
+             SiPDG=3222;                        // Positive Sigmas
+             G4int exChg=totChg-totBN+totS;     // Excesive positive charge
+             if(exChg<NSi) NSi=exChg;           // A#of Sigma+ is restricted by charge
+             MSi=mSigP*NSi;                     // Total mass of Sigma+'s
+             tQC-=NSi*SiPQC;                    // Subtract QC of Sigma-'s from totQC
+             totChg-=NSi;                       // Reduce the TotalResidualCharge
+           }
+           totS-=NSi;                           // Reduce the TotalResidualStrangeness
+           totBN-=NSi;                          // A#of excessive pions is added below
 	         }
-          else if (totBN>0&&totS>totBN&&totBN<totS+totChg)// => "additional K0" case
+         else if (totBN>0&&totS>totBN&&totBN<totS+totChg)// => "additional K0" case
 	         {// @@ Here Ksi0 check should be added totS=2>totBN=1&&totBN=1<totS=2+totChg=0
-            aKPDG=-311;
-            NaK=totS-totBN;
-            MaK=mK0*NaK;
-            tQC+=NaK*K0QC;
-            totS-=NaK;                           // Reduce residualstrangeness
+           aKPDG=-311;
+           NaK=totS-totBN;
+           MaK=mK0*NaK;
+           tQC+=NaK*K0QC;
+           totS-=NaK;                           // Reduce residualstrangeness
 	         }
-          else if (totBN>0&&totS>totBN&&totChg<0)// => "additional K-" case
+         else if (totBN>0&&totS>totBN&&totChg<0)// => "additional K-" case
 	         {// @@ Here Ksi- check should be added totS=2>totBN=1&&totChg=-1<0
-            aKPDG=-321;
-            NaK=totS-totBN;
-            MaK=mK0*NaK;
-            tQC+=NaK*KpQC;
-            totChg+=NaK;                         // Increase residual charge
-            totS-=NaK;                           // Reduce residual strangeness
+           aKPDG=-321;
+           NaK=totS-totBN;
+           MaK=mK0*NaK;
+           tQC+=NaK*KpQC;
+           totChg+=NaK;                         // Increase residual charge
+           totS-=NaK;                           // Reduce residual strangeness
 	         }
-          // === Now residual DELTAS should be subtracted === 
-          if      (totBN>0&&totChg>totBN-totS)   // => "additional PI+" case
+         // === Now residual DELTAS should be subtracted === 
+         if      (totBN>0&&totChg>totBN-totS)   // => "additional PI+" case
 	         {// @@ Here Sigma+ check should be added totChg=1>totBn=1-totS=1
-            PiPDG=211;
-            NPi=totChg-totBN+totS;
-            MPi=mPi*NPi;
-            tQC-=NPi*PiQC;
-            totChg-=NPi;
+           PiPDG=211;
+           NPi=totChg-totBN+totS;
+           MPi=mPi*NPi;
+           tQC-=NPi*PiQC;
+           totChg-=NPi;
 	         }
-          else if (totBN>0&&totChg<0)            // => "additional PI-" case
+         else if (totBN>0&&totChg<0)            // => "additional PI-" case
 	         {// @@ Here Sigma- check should be added totChg<0
-            PiPDG=-211;
-            NPi=-totChg;
-            MPi=mPi*NPi;
-            tQC+=NPi*PiQC;                       // Now anti-Pions must be subtracted
-            totChg+=NPi;
+           PiPDG=-211;
+           NPi=-totChg;
+           MPi=mPi*NPi;
+           tQC+=NPi*PiQC;                       // Now anti-Pions must be subtracted
+           totChg+=NPi;
 	         }
-          else if (!totBN&&totChg>1-totS)        // => "additional PI+" case
+         else if (!totBN&&totChg>1-totS)        // => "additional PI+" case
 	         {// @@ Here Sigma+ check should be added totChg=1>totBn=1-totS=1
-            PiPDG=211;
-            NPi=totChg+totS-1;
-            MPi=mPi*NPi;
-            tQC-=NPi*PiQC;
-            totChg-=NPi;
+           PiPDG=211;
+           NPi=totChg+totS-1;
+           MPi=mPi*NPi;
+           tQC-=NPi*PiQC;
+           totChg-=NPi;
 	         }
-          else if (!totBN&&totChg<-1-totS)       // => "additional PI-" case
+         else if (!totBN&&totChg<-1-totS)       // => "additional PI-" case
 	         {// @@ Here Sigma- check should be added totChg<0
-            PiPDG=-211;
-            NPi-=totChg+totS+1;
-            MPi=mPi*NPi;
-            tQC+=NPi*PiQC;                       // Now anti-Pions must be subtracted
-            totChg+=NPi;
+           PiPDG=-211;
+           NPi-=totChg+totS+1;
+           MPi=mPi*NPi;
+           tQC+=NPi*PiQC;                       // Now anti-Pions must be subtracted
+           totChg+=NPi;
 	         }
-          G4double      totRM=0.;                // min (GS) Mass of the Residual System
-          if(totBN<2)                            // Calculate totPDG & totRM
+         G4double      totRM=0.;                // min (GS) Mass of the Residual System
+         if(totBN<2)                            // Calculate totPDG & totRM
 	         {
-            totPDG=tQC.GetSPDGCode();            // MinPDGCode for the Residual compound
-            if(totPDG==10&&tQC.GetBaryonNumber()>0) totPDG=tQC.GetZNSPDGCode();
-            if(totPDG) totRM=G4QPDGCode(totPDG).GetMass(); // minMass of theResidualSystem
-            else
-            {
-              G4cerr<<"***G4QEnvironment::HadronizeQEnv: totPDG=0"<<G4endl;
-              throw G4QException("G4QEnv::HadrQEnv: Impossible PDG for B=1");
-            }
-          }
-          else
+           totPDG=tQC.GetSPDGCode();            // MinPDGCode for the Residual compound
+           if(totPDG==10&&tQC.GetBaryonNumber()>0) totPDG=tQC.GetZNSPDGCode();
+           if(totPDG) totRM=G4QPDGCode(totPDG).GetMass(); // minMass of theResidualSystem
+           else
+           {
+             G4cerr<<"***G4QEnvironment::HadronizeQEnv: totPDG=0"<<G4endl;
+             throw G4QException("G4QEnv::HadrQEnv: Impossible PDG for B=1");
+           }
+         }
+         else
 	         {
-            G4QNucleus totN(tQC,tot4M);          // Excited nucleus for the Residual System
-            totRM=totN.GetMZNS();                // min (GS) Mass of the Residual System
-            totPDG=totN.GetPDG();                // Total PDG Code for the Current compound
+           G4QNucleus totN(tQC,tot4M);          // Excited nucleus for the Residual System
+           totRM=totN.GetMZNS();                // min (GS) Mass of the Residual System
+           totPDG=totN.GetPDG();                // Total PDG Code for the Current compound
 	         }
-          if(NaK)                                // ==> "Decay in K0 or K+ + NPi" case
+         if(NaK)                                // ==> "Decay in K0 or K+ + NPi" case
 	         {//@@ Can (must) be moved to EvaporateResidual ??
-            if(!NPi)                             // ==> "Only anti-strange K" case
+           if(!NPi)                             // ==> "Only anti-strange K" case
 		          {
-              G4LorentzVector m4Mom(0.,0.,0.,MaK);
-              G4LorentzVector n4Mom(0.,0.,0.,totRM);
-              G4double sum=MaK+totRM;
-              if(fabs(totMass-sum)<eps)
+             G4LorentzVector m4Mom(0.,0.,0.,MaK);
+             G4LorentzVector n4Mom(0.,0.,0.,totRM);
+             G4double sum=MaK+totRM;
+             if(fabs(totMass-sum)<eps)
 			           {
-                m4Mom=tot4M*(MaK/sum);
-                n4Mom=tot4M*(totRM/sum);
-              }
-              else if(totMass<sum || !G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
-              {
+               m4Mom=tot4M*(MaK/sum);
+               n4Mom=tot4M*(totRM/sum);
+             }
+             else if(totMass<sum || !G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
+             {
 #ifdef edebug
-                G4cout<<"***G4QE::HadronizeQE:M="<<aKPDG<<"(m="<<MaK<<")+N="<<totPDG<<"(m="
-                      <<totRM<<")="<<sum<<" > mSN="<<totMass<<",d="<<sum-totMass<<G4endl;
+               G4cout<<"***G4QE::HadronizeQE:M="<<aKPDG<<"(m="<<MaK<<")+N="<<totPDG<<"(m="
+                     <<totRM<<")="<<sum<<" > mSN="<<totMass<<",d="<<sum-totMass<<G4endl;
 #endif
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(1),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(1),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-                  //throw G4QException("G4QEnvironment::HadronizeQEnv:AntiS-Nuc error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+                 //throw G4QException("G4QEnvironment::HadronizeQEnv:AntiS-Nuc error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef pdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: SN="<<tot4M<<" -> M="
-                    <<aKPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<totQC<<G4endl;
+                   <<aKPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<totQC<<G4endl;
 #endif
-              G4LorentzVector oneK=m4Mom;        // 4-mom of only kaon  
-              if(NaK>1) oneK = m4Mom/NaK;        // 4-mom of one kaon  
-              for (G4int jp=0; jp<NaK; jp++)
+             G4LorentzVector oneK=m4Mom;        // 4-mom of only kaon  
+             if(NaK>1) oneK = m4Mom/NaK;        // 4-mom of one kaon  
+             for (G4int jp=0; jp<NaK; jp++)
 			           {
-                G4QHadron* curK = new G4QHadron(aKPDG,oneK);
-                theQHadrons.push_back(curK);     // Fill the curK (delete equivalent)
-              }
-              G4QHadron* curN = new G4QHadron(totPDG,n4Mom); // @@ Use DecayDib then Evap
-              EvaporateResidual(curN);           // Try to evaporate residual (del.eq.)
+               G4QHadron* curK = new G4QHadron(aKPDG,oneK);
+               theQHadrons.push_back(curK);     // Fill the curK (delete equivalent)
+             }
+             G4QHadron* curN = new G4QHadron(totPDG,n4Mom); // @@ Use DecayDib then Evap
+             EvaporateResidual(curN);           // Try to evaporate residual (del.eq.)
 		          }
-            else                                 // ==> "Anti-strange K's + DELTA's" case
+           else                                 // ==> "Anti-strange K's + DELTA's" case
 		          {
-              G4LorentzVector m4Mom(0.,0.,0.,MPi);
-              G4LorentzVector k4Mom(0.,0.,0.,MaK);
-              G4LorentzVector n4Mom(0.,0.,0.,totRM);
-              if(!G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
-              {
-                G4cout<<"---Warning---G4QE::HadronQE:K="<<aKPDG<<"(m="<<MaK<<")+PI="<<PiPDG
-                      <<"(m="<<MPi<<")+N="<<totPDG<<"(m="<<totRM<<")>tM="<<totMass<<G4endl;
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+             G4LorentzVector m4Mom(0.,0.,0.,MPi);
+             G4LorentzVector k4Mom(0.,0.,0.,MaK);
+             G4LorentzVector n4Mom(0.,0.,0.,totRM);
+             if(!G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
+             {
+               G4cout<<"---Warning---G4QE::HadronQE:K="<<aKPDG<<"(m="<<MaK<<")+PI="<<PiPDG
+                     <<"(m="<<MPi<<")+N="<<totPDG<<"(m="<<totRM<<")>tM="<<totMass<<G4endl;
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(2),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(2),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-      	           //throw G4QException("G4QEnvironment::HadronizeQE:2AntiS-Nucl(1) error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+     	           //throw G4QException("G4QEnvironment::HadronizeQE:2AntiS-Nucl(1) error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef fdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: SN="<<tot4M<<" -> nK="<<aKPDG<<k4Mom
-                    <<" + nPi="<<PiPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<G4endl;
+                   <<" + nPi="<<PiPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<G4endl;
 #endif
-              G4LorentzVector onePi=m4Mom;       // 4-mom of only pion  
-              if(NPi>1) onePi = m4Mom/NPi;       // 4-mom of one pion  
-              for (G4int ip=0; ip<NPi; ip++)
+             G4LorentzVector onePi=m4Mom;       // 4-mom of only pion  
+             if(NPi>1) onePi = m4Mom/NPi;       // 4-mom of one pion  
+             for (G4int ip=0; ip<NPi; ip++)
 			           {
-                G4QHadron* curP = new G4QHadron(PiPDG,onePi);
+               G4QHadron* curP = new G4QHadron(PiPDG,onePi);
 #ifdef pdebug
 			             G4cout<<"G4QEnv::HadrQEnv:SPion#"<<ip<<",H="<<PiPDG<<onePi<<G4endl;
 #endif
-                theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
+               theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
 	 		          }
-              G4LorentzVector oneK=k4Mom;        // 4-mom of one kaon  
-              if(NaK>1) oneK = k4Mom/NaK;        // 4-mom of one kaon  
-              for (G4int jp=0; jp<NaK; jp++)
+             G4LorentzVector oneK=k4Mom;        // 4-mom of one kaon  
+             if(NaK>1) oneK = k4Mom/NaK;        // 4-mom of one kaon  
+             for (G4int jp=0; jp<NaK; jp++)
 			           {
-                G4QHadron* curP = new G4QHadron(aKPDG,oneK);
+               G4QHadron* curP = new G4QHadron(aKPDG,oneK);
 #ifdef pdebug
 			             G4cout<<"G4QEnv::HadrQEnv:Kaon#"<<jp<<",H="<<aKPDG<<oneK<<G4endl;
 #endif
-                theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
+               theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
 	 		          }
-              G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
-              EvaporateResidual(curN);           // Try to evaporate residual (del.equiv.)
+             G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
+             EvaporateResidual(curN);           // Try to evaporate residual (del.equiv.)
 		          }
-            return theQHadrons;
-          }
-          else if(NSi)                           // ==> "Decay in Sig+ or Sig- + NPi" case
+           return theQHadrons;
+         }
+         else if(NSi)                           // ==> "Decay in Sig+ or Sig- + NPi" case
 	         {//@@ Can (must) be moved to EvaporateResidual ??
-            if(!NPi)                             // ==> "Only Sigma's" case
+           if(!NPi)                             // ==> "Only Sigma's" case
 		          {
-              G4LorentzVector m4Mom(0.,0.,0.,MSi);
-              G4LorentzVector n4Mom(0.,0.,0.,totRM);
-              G4double sum=MSi+totRM;
-              if(fabs(totMass-sum)<eps)
+             G4LorentzVector m4Mom(0.,0.,0.,MSi);
+             G4LorentzVector n4Mom(0.,0.,0.,totRM);
+             G4double sum=MSi+totRM;
+             if(fabs(totMass-sum)<eps)
 			           {
-                m4Mom=tot4M*(MSi/sum);
-                n4Mom=tot4M*(totRM/sum);
-              }
-              else if(totMass<sum || !G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
-              {
+               m4Mom=tot4M*(MSi/sum);
+               n4Mom=tot4M*(totRM/sum);
+             }
+             else if(totMass<sum || !G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
+             {
 #ifdef edebug
-                G4cout<<"***G4QE::HadronizeQE:M="<<aKPDG<<"(s="<<MSi<<")+N="<<totPDG<<"(m="
-                      <<totRM<<")="<<sum<<" > mSN="<<totMass<<",d="<<sum-totMass<<G4endl;
+               G4cout<<"***G4QE::HadronizeQE:M="<<aKPDG<<"(s="<<MSi<<")+N="<<totPDG<<"(m="
+                     <<totRM<<")="<<sum<<" > mSN="<<totMass<<",d="<<sum-totMass<<G4endl;
 #endif
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(2),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(2),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-                  //throw G4QException("G4QEnvironment::HadronizeQEnv:Sigma-Nuc error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+                 //throw G4QException("G4QEnvironment::HadronizeQEnv:Sigma-Nuc error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef pdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: SN="<<tot4M<<" -> Sig="
-                    <<SiPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<totQC<<G4endl;
+                   <<SiPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<totQC<<G4endl;
 #endif
-              G4LorentzVector oneS=m4Mom;        // 4-mom of the only sigma  
-              if(NSi>1) oneS = m4Mom/NSi;        // 4-mom of one sigma  
-              for (G4int jp=0; jp<NSi; jp++)
+             G4LorentzVector oneS=m4Mom;        // 4-mom of the only sigma  
+             if(NSi>1) oneS = m4Mom/NSi;        // 4-mom of one sigma  
+             for (G4int jp=0; jp<NSi; jp++)
 			           {
-                G4QHadron* curS = new G4QHadron(SiPDG,oneS);
-                theQHadrons.push_back(curS);     // Fill the curS (delete equivalent)
-              }
-              G4QHadron* curN = new G4QHadron(totPDG,n4Mom); // @@ Use DecayDib then Evap
-              EvaporateResidual(curN);           // Try to evaporate residual (del.eq.)
+               G4QHadron* curS = new G4QHadron(SiPDG,oneS);
+               theQHadrons.push_back(curS);     // Fill the curS (delete equivalent)
+             }
+             G4QHadron* curN = new G4QHadron(totPDG,n4Mom); // @@ Use DecayDib then Evap
+             EvaporateResidual(curN);           // Try to evaporate residual (del.eq.)
 		          }
-            else                                 // ==> "Sigma's + DELTA's" case
+           else                                 // ==> "Sigma's + DELTA's" case
 		          {
-              G4LorentzVector m4Mom(0.,0.,0.,MPi);
-              G4LorentzVector k4Mom(0.,0.,0.,MSi);
-              G4LorentzVector n4Mom(0.,0.,0.,totRM);
-              if(!G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
-              {
-                G4cout<<"---Warning---G4QE::HadronQE:S="<<SiPDG<<"(m="<<MSi<<")+PI="<<PiPDG
-                      <<"(m="<<MPi<<")+N="<<totPDG<<"(m="<<totRM<<")>tM="<<totMass<<G4endl;
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+             G4LorentzVector m4Mom(0.,0.,0.,MPi);
+             G4LorentzVector k4Mom(0.,0.,0.,MSi);
+             G4LorentzVector n4Mom(0.,0.,0.,totRM);
+             if(!G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
+             {
+               G4cout<<"---Warning---G4QE::HadronQE:S="<<SiPDG<<"(m="<<MSi<<")+PI="<<PiPDG
+                     <<"(m="<<MPi<<")+N="<<totPDG<<"(m="<<totRM<<")>tM="<<totMass<<G4endl;
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(3),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(3),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-       	          //throw G4QException("G4QEnvironment::HadronizeQE:2Sigma-Nucl(1) error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+      	          //throw G4QException("G4QEnvironment::HadronizeQE:2Sigma-Nucl(1) error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef fdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: SN="<<tot4M<<" -> nS="<<SiPDG<<k4Mom
-                    <<" + nPi="<<PiPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<G4endl;
+                   <<" + nPi="<<PiPDG<<m4Mom<<" + N="<<totPDG<<n4Mom<<G4endl;
 #endif
-              G4LorentzVector onePi=m4Mom;       // 4-mom of the only pion  
-              if(NPi>1) onePi = m4Mom/NPi;       // 4-mom of one pion  
-              for (G4int ip=0; ip<NPi; ip++)
+             G4LorentzVector onePi=m4Mom;       // 4-mom of the only pion  
+             if(NPi>1) onePi = m4Mom/NPi;       // 4-mom of one pion  
+             for (G4int ip=0; ip<NPi; ip++)
 			           {
-                G4QHadron* curP = new G4QHadron(PiPDG,onePi);
+               G4QHadron* curP = new G4QHadron(PiPDG,onePi);
 #ifdef pdebug
 			             G4cout<<"G4QEnv::HadrQEnv:SPion#"<<ip<<",H="<<PiPDG<<onePi<<G4endl;
 #endif
-                theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
+               theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
 	 		          }
-              G4LorentzVector oneS=k4Mom;        // 4-mom of the only kaon  
-              if(NSi>1) oneS = k4Mom/NSi;        // 4-mom of one kaon  
-              for (G4int jp=0; jp<NSi; jp++)
+             G4LorentzVector oneS=k4Mom;        // 4-mom of the only kaon  
+             if(NSi>1) oneS = k4Mom/NSi;        // 4-mom of one kaon  
+             for (G4int jp=0; jp<NSi; jp++)
 			           {
-                G4QHadron* curP = new G4QHadron(SiPDG,oneS);
+               G4QHadron* curP = new G4QHadron(SiPDG,oneS);
 #ifdef pdebug
 			             G4cout<<"G4QEnv::HadrQEnv:Sigma#"<<jp<<",H="<<SiPDG<<oneS<<G4endl;
 #endif
-                theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
+               theQHadrons.push_back(curP);     // Fill the curM (delete equivalent)
 	 		          }
-              G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
-              EvaporateResidual(curN);           // Try to evaporate residual (del.equiv.)
+             G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
+             EvaporateResidual(curN);           // Try to evaporate residual (del.equiv.)
 		          }
-            return theQHadrons;
+           return theQHadrons;
 		        }
-          else if(NPi)                           // ==> "Decay in Pi+ or Pi-" case
+         else if(NPi)                           // ==> "Decay in Pi+ or Pi-" case
 	         {
-            if(NPi==1)                           // ==> "One isobar" case
+           if(NPi==1)                           // ==> "One isobar" case
 		          {
-              G4LorentzVector m4Mom(0.,0.,0.,MPi);
-              G4LorentzVector n4Mom(0.,0.,0.,totRM);
-              if(!G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
-              {
-                G4cout<<"---Warning---G4QEnv::HadronizeQEnv:M="<<PiPDG<<"(m="<<MPi<<")+N="
+             G4LorentzVector m4Mom(0.,0.,0.,MPi);
+             G4LorentzVector n4Mom(0.,0.,0.,totRM);
+             if(!G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
+             {
+               G4cout<<"---Warning---G4QEnv::HadronizeQEnv:M="<<PiPDG<<"(m="<<MPi<<")+N="
 				                  <<totPDG<<"(m="<<totRM<<")="<<MPi+totRM<<" > mSN="<<totMass<<G4endl;
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(5),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(5),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-    	             //throw G4QException("G4QEnvironment::HadronizeQEnv:Iso-Nucleus error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+   	             //throw G4QException("G4QEnvironment::HadronizeQEnv:Iso-Nucleus error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef pdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: SN="<<tot4M<<" -> M="<<PiPDG<<m4Mom<<" + N="
-                    <<totPDG<<n4Mom<<totQC<<G4endl;
+                   <<totPDG<<n4Mom<<totQC<<G4endl;
 #endif
-              G4QHadron* curK = new G4QHadron(PiPDG,m4Mom);
-              theQHadrons.push_back(curK);       // Fill the curK (delete equivalent)
-              G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
-              EvaporateResidual(curN);           // Evaporate residual (delete equivalent)
+             G4QHadron* curK = new G4QHadron(PiPDG,m4Mom);
+             theQHadrons.push_back(curK);       // Fill the curK (delete equivalent)
+             G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
+             EvaporateResidual(curN);           // Evaporate residual (delete equivalent)
 		          }
 		          else                                 // ==> "Many Isobars" case
 		          {
-              G4int N1Pi = NPi/2;                // First pion cluster
-              G4int N2Pi = NPi-N1Pi;             // Second pion cluster
-              G4double mM  = MPi/NPi;            // Mass of Pi
-              G4double m1M = mM*N1Pi;            // Mass of the first Pi-cluster
-              G4double m2M = mM*N2Pi;            // Mass of the second Pi-cluster
-              G4LorentzVector m4Mom(0.,0.,0.,m1M);
-              G4LorentzVector k4Mom(0.,0.,0.,m2M);
-              G4LorentzVector n4Mom(0.,0.,0.,totRM);
-              if(!G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
-              {
-                G4cout<<"---Warning---G4QEnv::HadronizeQE:N*Pi="<<PiPDG<<"(m="<<mM<<")+N="
-                      <<totPDG<<"(m="<<totRM<<") >(?)SN="<<totMass<<G4endl;
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+             G4int N1Pi = NPi/2;                // First pion cluster
+             G4int N2Pi = NPi-N1Pi;             // Second pion cluster
+             G4double mM  = MPi/NPi;            // Mass of Pi
+             G4double m1M = mM*N1Pi;            // Mass of the first Pi-cluster
+             G4double m2M = mM*N2Pi;            // Mass of the second Pi-cluster
+             G4LorentzVector m4Mom(0.,0.,0.,m1M);
+             G4LorentzVector k4Mom(0.,0.,0.,m2M);
+             G4LorentzVector n4Mom(0.,0.,0.,totRM);
+             if(!G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
+             {
+               G4cout<<"---Warning---G4QEnv::HadronizeQE:N*Pi="<<PiPDG<<"(m="<<mM<<")+N="
+                     <<totPDG<<"(m="<<totRM<<") >(?)SN="<<totMass<<G4endl;
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(5),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(5),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
-       	          //throw G4QException("G4QEnvironment::HadronizeQE:ManyIsoNucleus error");
-                }
-                delete quasH;  
-                return theQHadrons;
-              }
+      	          //throw G4QException("G4QEnvironment::HadronizeQE:ManyIsoNucleus error");
+               }
+               delete quasH;  
+               return theQHadrons;
+             }
 #ifdef pdebug
 	             G4cout<<"G4QEnv::HadronizeQEnv: SN="<<tot4M<<" -> N*PI="<<PiPDG
-                    <<" (4M1="<<m4Mom<<" + 4M2="<<k4Mom<<") + N="<<totPDG<<n4Mom<<G4endl;
+                   <<" (4M1="<<m4Mom<<" + 4M2="<<k4Mom<<") + N="<<totPDG<<n4Mom<<G4endl;
 #endif
-              G4LorentzVector one1=m4Mom;        // 4-mom of the 1st cluster only pion  
-              if(N1Pi>1) one1=m4Mom/N1Pi;        // 4-mom of the 1st cluster one pion  
-              for (G4int ip=0; ip<N1Pi; ip++)
+             G4LorentzVector one1=m4Mom;        // 4-mom of the 1st cluster only pion  
+             if(N1Pi>1) one1=m4Mom/N1Pi;        // 4-mom of the 1st cluster one pion  
+             for (G4int ip=0; ip<N1Pi; ip++)
 			           {
-                G4QHadron* curP = new G4QHadron(PiPDG,one1);
-                theQHadrons.push_back(curP);     // Fill the curP (delete equivalent)
+               G4QHadron* curP = new G4QHadron(PiPDG,one1);
+               theQHadrons.push_back(curP);     // Fill the curP (delete equivalent)
 	 		          }
-              G4LorentzVector one2=k4Mom;        // 4-mom of the 2nd cluster only pion  
-              if(N2Pi>1) one2=k4Mom/N2Pi;        // 4-mom of the 2nd cluster one pion  
-              for (G4int jp=0; jp<N2Pi; jp++)
+             G4LorentzVector one2=k4Mom;        // 4-mom of the 2nd cluster only pion  
+             if(N2Pi>1) one2=k4Mom/N2Pi;        // 4-mom of the 2nd cluster one pion  
+             for (G4int jp=0; jp<N2Pi; jp++)
 			           {
-                G4QHadron* curP = new G4QHadron(PiPDG,one2);
-                theQHadrons.push_back(curP);     // Fill the curP (delete equivalent)
+               G4QHadron* curP = new G4QHadron(PiPDG,one2);
+               theQHadrons.push_back(curP);     // Fill the curP (delete equivalent)
 	 		          }
-              G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
-              EvaporateResidual(curN);           // Try to evaporate residual (del.equiv.)
+             G4QHadron* curN = new G4QHadron(totPDG,n4Mom);
+             EvaporateResidual(curN);           // Try to evaporate residual (del.equiv.)
 		          }
-            return theQHadrons;
+           return theQHadrons;
 		        }
 		      }
 #ifdef fdebug
 		      G4cout<<"G4QE::HadrQEnv: Try FinalEvaporation t4M="<<tot4M<<",tQC="<<totQC<<G4endl;
 #endif
-        CleanUp();
-        G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create a Hadron for theResidualNucl
-        EvaporateResidual(evH);                  // Try to evaporate residual (del.equiv.)
-        return theQHadrons;
+       CleanUp();
+       G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create a Hadron for theResidualNucl
+       EvaporateResidual(evH);                  // Try to evaporate residual (del.equiv.)
+       return theQHadrons;
 	     }
-      else                                       // ==> "Only GSEnvironment exists" case
-      { 
-        if(totPDG==90000000 || fabs(totMass)<0.000001)
+     else                                       // ==> "Only GSEnvironment exists" case
+     { 
+       if(totPDG==90000000 || fabs(totMass)<0.000001)
 		      {
-          CleanUp();
-          return theQHadrons;
+         CleanUp();
+         return theQHadrons;
 		      }
-        G4double dM=totMass-totM;
+       G4double dM=totMass-totM;
 #ifdef pdebug
 		      G4cout<<"G4QEnv::HadrQEnv:GroundState tM-GSM="<<dM<<",GSM="<<totM<<",tPDG="<<totPDG
-              <<",nQ="<<nQuasmons<<G4endl;
+             <<",nQ="<<nQuasmons<<G4endl;
 #endif
 	       G4Quasmon*       pQ = theQuasmons[0];    // Pointer to the first Quasmon          
-        G4QPDGCode    QQPDG = pQ->GetQPDG();     // QPDG of the Quasmon
-        G4int          QPDG = QQPDG.GetPDGCode();
-        G4QNucleus    totRN(totQC,tot4M);        // Nucleus for theTotalResidualNuclearComp
-        G4int          spbRN=totRN.SplitBaryon();// PossibilityToSplit baryon from Residual
-        if(dM>-0.001)
+       G4QPDGCode    QQPDG = pQ->GetQPDG();     // QPDG of the Quasmon
+       G4int          QPDG = QQPDG.GetPDGCode();
+       G4QNucleus    totRN(totQC,tot4M);        // Nucleus for theTotalResidualNuclearComp
+       G4int          spbRN=totRN.SplitBaryon();// PossibilityToSplit baryon from Residual
+       if(dM>-0.001)
 		      {
 #ifdef fdebug
 		        G4cout<<"G4QE::HadrQE:ExcitedNucleus, dM="<<dM<<">0,tBN="<<totBN<<",nQ="<<G4endl;
 #endif
-          CleanUp();
-          G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl
-          EvaporateResidual(evH);                // Try to evaporate residual (del. equiv.)
+         CleanUp();
+         G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl
+         EvaporateResidual(evH);                // Try to evaporate residual (del. equiv.)
 		      }
-        else if(nQuasmons==1&&QPDG!=22&&QPDG!=111)// => "Decay Quasmon or Q+Environ" case
+       else if(nQuasmons==1&&QPDG!=22&&QPDG!=111)// => "Decay Quasmon or Q+Environ" case
 		      {
-          G4int envPDG = theEnvironment.GetPDG();// PDGCode of the NuclQEnvironment
+         G4int envPDG = theEnvironment.GetPDG();// PDGCode of the NuclQEnvironment
 #ifdef pdebug
 		        G4cout<<"G4QEnv::HadrQEnv: nQ=1, QPDG=="<<QPDG<<G4endl;
 #endif
-          if(!QPDG)
+         if(!QPDG)
 		        {
 			         G4cerr<<"***G4QEnv::HadrQE: Quasmon is an unknown QHadron: PDG="<<QPDG<<G4endl;
 			         throw G4QException("G4QEnvironment::HadronizeQEnvironment:(2)Cann'tDecayQEnv");
 		        }
-          // => "Quasmon-Chipolino or Environment-Dibaryon" case
-          else if(QPDG==10||QPDG==92000000||QPDG==90002000||QPDG==90000002)
+         // => "Quasmon-Chipolino or Environment-Dibaryon" case
+         else if(QPDG==10||QPDG==92000000||QPDG==90002000||QPDG==90000002)
 		        {
-            G4QContent QQC = pQ->GetQC();        // Quark Content of the Quasmon
-            G4QPDGCode h1QPDG=nQPDG;             // QPDG of the first hadron
-            G4double   h1M   =mNeut;             // Mass of the first hadron
-            G4QPDGCode h2QPDG=h1QPDG;            // QPDG of the second hadron
-            G4double   h2M   =mNeut;             // Mass of the second hadron
-            if(QPDG==10)
-            {
-              G4QChipolino QChip(QQC);           // define the Quasmon as a Chipolino
-              h1QPDG=QChip.GetQPDG1();           // QPDG of the first hadron
-              h1M   =h1QPDG.GetMass();           // Mass of the first hadron
-              h2QPDG=QChip.GetQPDG2();           // QPDG of the second hadron
-              h2M   =h2QPDG.GetMass();           // Mass of the second hadron
+           G4QContent QQC = pQ->GetQC();        // Quark Content of the Quasmon
+           G4QPDGCode h1QPDG=nQPDG;             // QPDG of the first hadron
+           G4double   h1M   =mNeut;             // Mass of the first hadron
+           G4QPDGCode h2QPDG=h1QPDG;            // QPDG of the second hadron
+           G4double   h2M   =mNeut;             // Mass of the second hadron
+           if(QPDG==10)
+           {
+             G4QChipolino QChip(QQC);           // define the Quasmon as a Chipolino
+             h1QPDG=QChip.GetQPDG1();           // QPDG of the first hadron
+             h1M   =h1QPDG.GetMass();           // Mass of the first hadron
+             h2QPDG=QChip.GetQPDG2();           // QPDG of the second hadron
+             h2M   =h2QPDG.GetMass();           // Mass of the second hadron
 			         }
 			         else if(QPDG==90002000)
 			         {
-              h1QPDG=pQPDG;                      // QPDG of the first hadron
-              h1M   =mProt;                      // Mass of the first hadron
-              h2QPDG=h1QPDG;                     // QPDG of the second hadron
-              h2M   =mProt;                      // Mass of the second hadron
+             h1QPDG=pQPDG;                      // QPDG of the first hadron
+             h1M   =mProt;                      // Mass of the first hadron
+             h2QPDG=h1QPDG;                     // QPDG of the second hadron
+             h2M   =mProt;                      // Mass of the second hadron
 			         }
 			         else if(QPDG==92000000)
 			         {
-              h1QPDG=lQPDG;                      // QPDG of the first hadron
-              h1M   =mLamb;                      // Mass of the first hadron
-              h2QPDG=h1QPDG;                     // QPDG of the second hadron
-              h2M   =mLamb;                      // Mass of the second hadron
-              G4double ddMass=totMass-envM;      // Free CM energy
-              if(ddMass>mSigZ+mSigZ)             // Sigma0+Sigma0 is possible
+             h1QPDG=lQPDG;                      // QPDG of the first hadron
+             h1M   =mLamb;                      // Mass of the first hadron
+             h2QPDG=h1QPDG;                     // QPDG of the second hadron
+             h2M   =mLamb;                      // Mass of the second hadron
+             G4double ddMass=totMass-envM;      // Free CM energy
+             if(ddMass>mSigZ+mSigZ)             // Sigma0+Sigma0 is possible
 			           {                                  // @@ Only two particles PS is used
-                G4double dd2=ddMass*ddMass;      // Squared free energy
-                G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
-                G4double pr1=0.;                 // Prototype to avoid sqrt(-)
-                if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS
-                sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
-                G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
-                G4double pr2=pr1;                // Prototype of +L+S0 PS
-                if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
-                sma=mSigZ+mSigZ;                 // Sigma0+Sigma0 sum
-                G4double pr3=pr2;                // Prototype of +Sigma0+Sigma0 PS
-                if(ddMass>sma) pr3+=sqrt((dd2-sma*sma)*dd2);
-                G4double hhRND=pr3*G4UniformRand(); // Randomize PS
-                if(hhRND>pr2)                    // --> "ENnv+Sigma0+Sigma0" case
-                {                                //
-                  h1QPDG=s0QPDG;                 // QPDG of the first hadron
-                  h1M   =mSigZ;                  // Mass of the first hadron
-                  h2QPDG=h1QPDG;                 // QPDG of the second hadron
-                  h2M   =mSigZ;                  // Mass of the second hadron
-                }                                //
-                else if(hhRND>pr1)               // --> "ENnv+Sigma0+Lambda" case
-                {                                //
-                  h1QPDG=s0QPDG;                 // QPDG of the first hadron
-                  h1M   =mSigZ;                  // Mass of the first hadron
-                }                                //
-              }                                  //
-              else if(ddMass>mSigZ+mLamb)        // Lambda+Sigma0 is possible
+               G4double dd2=ddMass*ddMass;      // Squared free energy
+               G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
+               G4double pr1=0.;                 // Prototype to avoid sqrt(-)
+               if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS
+               sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
+               G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
+               G4double pr2=pr1;                // Prototype of +L+S0 PS
+               if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
+               sma=mSigZ+mSigZ;                 // Sigma0+Sigma0 sum
+               G4double pr3=pr2;                // Prototype of +Sigma0+Sigma0 PS
+               if(ddMass>sma) pr3+=sqrt((dd2-sma*sma)*dd2);
+               G4double hhRND=pr3*G4UniformRand(); // Randomize PS
+               if(hhRND>pr2)                    // --> "ENnv+Sigma0+Sigma0" case
+               {                                //
+                 h1QPDG=s0QPDG;                 // QPDG of the first hadron
+                 h1M   =mSigZ;                  // Mass of the first hadron
+                 h2QPDG=h1QPDG;                 // QPDG of the second hadron
+                 h2M   =mSigZ;                  // Mass of the second hadron
+               }                                //
+               else if(hhRND>pr1)               // --> "ENnv+Sigma0+Lambda" case
+               {                                //
+                 h1QPDG=s0QPDG;                 // QPDG of the first hadron
+                 h1M   =mSigZ;                  // Mass of the first hadron
+               }                                //
+             }                                  //
+             else if(ddMass>mSigZ+mLamb)        // Lambda+Sigma0 is possible
 			           {                                  // @@ Only two particles PS is used
-                G4double dd2=ddMass*ddMass;      // Squared free energy
-                G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
-                G4double pr1=0.;                 // Prototype to avoid sqrt(-)
-                if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS
-                sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
-                G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
-                G4double pr2=pr1;                // Prototype of +L+S0 PS
-                if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
-                if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
-                {                                //
-                  h1QPDG=s0QPDG;                 // QPDG of the first hadron
-                  h1M   =mSigZ;                  // Mass of the first hadron
-                }                                //
-              }                                  //
+               G4double dd2=ddMass*ddMass;      // Squared free energy
+               G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
+               G4double pr1=0.;                 // Prototype to avoid sqrt(-)
+               if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Lamb PS
+               sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
+               G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
+               G4double pr2=pr1;                // Prototype of +L+S0 PS
+               if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
+               if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
+               {                                //
+                 h1QPDG=s0QPDG;                 // QPDG of the first hadron
+                 h1M   =mSigZ;                  // Mass of the first hadron
+               }                                //
+             }                                  //
 			         }                                    //
-            if(h1M+h2M+envM<totMass)             // => "Three parts decay" case
+           if(h1M+h2M+envM<totMass)             // => "Three parts decay" case
 			         {
-              G4LorentzVector h14M(0.,0.,0.,h1M);
-              G4LorentzVector h24M(0.,0.,0.,h2M);
-              G4LorentzVector e4M(0.,0.,0.,envM);
-              if(!G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M))
+             G4LorentzVector h14M(0.,0.,0.,h1M);
+             G4LorentzVector h24M(0.,0.,0.,h2M);
+             G4LorentzVector e4M(0.,0.,0.,envM);
+             if(!G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M))
 			           {
 				            G4cout<<"Warning->G4QE::HQE:M="<<tot4M.m()<<","<<totMass<<"->"<<h1QPDG<<"("
 					                 <<h1M<<")+"<<h1QPDG<<"("<<h2M<<")+"<<envM<<"="<<h1M+h2M+envM<<G4endl;
-                G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                CleanUp();
+               G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+               CleanUp();
 		              if(!CheckGroundState(quasH,true))
-                {
-                  G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                  theQHadrons.push_back(hadr);   // Cor or fill as It Is
+               {
+                 G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                 theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                  G4cout<<"***G4QEnv::HQE:FillAsItIs(6),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                 G4cout<<"***G4QEnv::HQE:FillAsItIs(6),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
 				              //throw G4QException("G4QEnv::HadrQEnv:QChipo+Environment DecIn3 Error");
-                }
-                delete quasH;  
-                return theQHadrons;
+               }
+               delete quasH;  
+               return theQHadrons;
 
 			           }
-              G4QHadron* h1H = new G4QHadron(h1QPDG.GetPDGCode(),h14M);
-              theQHadrons.push_back(h1H);        // (delete equivalent)
+             G4QHadron* h1H = new G4QHadron(h1QPDG.GetPDGCode(),h14M);
+             theQHadrons.push_back(h1H);        // (delete equivalent)
 #ifdef pdebug
 			           G4cout<<"G4QE::HQE:(2) H1="<<h1QPDG<<h14M<<G4endl;
 #endif
-              G4QHadron* h2H = new G4QHadron(h2QPDG.GetPDGCode(),h24M);
-              theQHadrons.push_back(h2H);        // (delete equivalent)
+             G4QHadron* h2H = new G4QHadron(h2QPDG.GetPDGCode(),h24M);
+             theQHadrons.push_back(h2H);        // (delete equivalent)
 #ifdef pdebug
-              G4cout<<"G4QE::HQE:(2) H2-"<<h2QPDG<<h24M<<G4endl;
+             G4cout<<"G4QE::HQE:(2) H2-"<<h2QPDG<<h24M<<G4endl;
 #endif
-              G4QHadron* qeH = new G4QHadron(envPDG,e4M);
-              theQHadrons.push_back(qeH);        // (delete equivalent)
+             G4QHadron* qeH = new G4QHadron(envPDG,e4M);
+             theQHadrons.push_back(qeH);        // (delete equivalent)
 #ifdef pdebug
-              G4cout<<"G4QE::HQE:(2) QEenv="<<envPDG<<e4M<<G4endl;
+             G4cout<<"G4QE::HQE:(2) QEenv="<<envPDG<<e4M<<G4endl;
 #endif
 			         }
 #ifdef fdebug
-            G4cout<<"***G4QEnv::HadQEnv:tM="<<tot4M.m()<<totQC<<"< h1="<<h1QPDG<<"(M="<<h1M
-                  <<")+h2="<<h1QPDG<<"(M="<<h2M<<")+eM="<<envM<<"="<<h1M+h2M+envM<<G4endl;
+           G4cout<<"***G4QEnv::HadQEnv:tM="<<tot4M.m()<<totQC<<"< h1="<<h1QPDG<<"(M="<<h1M
+                 <<")+h2="<<h1QPDG<<"(M="<<h2M<<")+eM="<<envM<<"="<<h1M+h2M+envM<<G4endl;
 			         //throw G4QException("G4QEnv::HadrQEnv:QChipo+Env mass > than decaying mass");
 #endif
-            CleanUp();
-            G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl
-            EvaporateResidual(evH);            // Try to evaporate residual (del. equiv.)
-            return theQHadrons;
+           CleanUp();
+           G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl
+           EvaporateResidual(evH);            // Try to evaporate residual (del. equiv.)
+           return theQHadrons;
 		        }
-        }
-        else if(spbRN)// => "Join all quasmons to the residual compound and evaporate" case
+       }
+       else if(spbRN)// => "Join all quasmons to the residual compound and evaporate" case
 		      {
 #ifdef fdebug
-          G4cout<<"***G4QEnv::HadQEnv: Evaporate the total residual tRN="<<totRN<<G4endl;
+         G4cout<<"***G4QEnv::HadQEnv: Evaporate the total residual tRN="<<totRN<<G4endl;
 #endif
-          CleanUp();
-          G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create Hadron for theResidNucleus
-          EvaporateResidual(evH);               // Try to evaporate residual (del.equiv.)
-          return theQHadrons;
+         CleanUp();
+         G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create Hadron for theResidNucleus
+         EvaporateResidual(evH);               // Try to evaporate residual (del.equiv.)
+         return theQHadrons;
 		      }
-        //else if(nQuasmons<3||theQHadrons.size()<12)//"Try to correct" case (change cond)
-        else if(2>3)  // "Try to correct" case (change condition)
+       //else if(nQuasmons<3||theQHadrons.size()<12)//"Try to correct" case (change cond)
+       else if(2>3)  // "Try to correct" case (change condition)
 		      {
 #ifdef pdebug
 		        G4cout<<"***G4QEnv::HadrQE: M="<<totMass<<",dM="<<dM<<",nQ="<<nQuasmons<<G4endl;
 #endif
-          G4int          nOfOUT  = theQHadrons.size();
-          while(nOfOUT)
-          {
-            G4QHadron*     theLast = theQHadrons[nOfOUT-1];
-            G4LorentzVector last4M = theLast->Get4Momentum();
-            G4QContent      lastQC = theLast->GetQC();
-            G4int           lastS  = lastQC.GetStrangeness();
-            G4int           totS   = totQC.GetStrangeness();
-            G4int           nFr    = theLast->GetNFragments();
-            G4int           gam    = theLast->GetPDGCode();
+         G4int          nOfOUT  = theQHadrons.size();
+         while(nOfOUT)
+         {
+           G4QHadron*     theLast = theQHadrons[nOfOUT-1];
+           G4LorentzVector last4M = theLast->Get4Momentum();
+           G4QContent      lastQC = theLast->GetQC();
+           G4int           lastS  = lastQC.GetStrangeness();
+           G4int           totS   = totQC.GetStrangeness();
+           G4int           nFr    = theLast->GetNFragments();
+           G4int           gam    = theLast->GetPDGCode();
 		          if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1) // => "Skip K,gam & decayed"
 		          {
-              G4QHadron* thePrev = theQHadrons[nOfOUT-2];
-              theQHadrons.pop_back();         // the last QHadron is excluded from OUTPUT
-              theQHadrons.pop_back();         // the prev QHadron is excluded from OUTPUT
-              theQHadrons.push_back(thePrev); // thePast becomes theLast as an instance
-              delete    theLast;              // theLast QHadron is deleated as an instance
-              theLast = thePrev;              // Update parameters(thePrev becomes theLast)
-              last4M = theLast->Get4Momentum();
-              lastQC = theLast->GetQC();
+             G4QHadron* thePrev = theQHadrons[nOfOUT-2];
+             theQHadrons.pop_back();         // the last QHadron is excluded from OUTPUT
+             theQHadrons.pop_back();         // the prev QHadron is excluded from OUTPUT
+             theQHadrons.push_back(thePrev); // thePast becomes theLast as an instance
+             delete    theLast;              // theLast QHadron is deleated as an instance
+             theLast = thePrev;              // Update parameters(thePrev becomes theLast)
+             last4M = theLast->Get4Momentum();
+             lastQC = theLast->GetQC();
 		          }
-            else
-            {
-              theQHadrons.pop_back();         // the last QHadron is excluded from OUTPUT 
-              delete         theLast;         // theLastQHadron is deleated as an instance
-            }
-            totQC+=lastQC;                    // Update (increase) the total QC
-            tot4M+=last4M;                    // Update (increase) the total 4-momentum
-            totMass=tot4M.m();                // Calculate new real total mass
-            G4int bn=totQC.GetBaryonNumber(); // The BaryNum after addition
-            totPDG=totQC.GetSPDGCode();
-            if(totPDG==10&&totQC.GetBaryonNumber()>0) totPDG=totQC.GetZNSPDGCode();
-            if(bn>1)
+           else
+           {
+             theQHadrons.pop_back();         // the last QHadron is excluded from OUTPUT 
+             delete         theLast;         // theLastQHadron is deleated as an instance
+           }
+           totQC+=lastQC;                    // Update (increase) the total QC
+           tot4M+=last4M;                    // Update (increase) the total 4-momentum
+           totMass=tot4M.m();                // Calculate new real total mass
+           G4int bn=totQC.GetBaryonNumber(); // The BaryNum after addition
+           totPDG=totQC.GetSPDGCode();
+           if(totPDG==10&&totQC.GetBaryonNumber()>0) totPDG=totQC.GetZNSPDGCode();
+           if(bn>1)
 		          {
-              totS  =totQC.GetStrangeness();  // Total Strangeness of this System
-              if(totS>=0)                     // => "This is a normal nucleus" case
+             totS  =totQC.GetStrangeness();  // Total Strangeness of this System
+             if(totS>=0)                     // => "This is a normal nucleus" case
 			           {
-                G4QNucleus newN(totQC,tot4M);
-                totPDG=newN.GetPDG();
-                totM  =newN.GetMZNS();           // Calculate new minimum (GS) mass
+               G4QNucleus newN(totQC,tot4M);
+               totPDG=newN.GetPDG();
+               totM  =newN.GetMZNS();           // Calculate new minimum (GS) mass
 			           }
-              else if(totS==-1)                  // => "Try to decay in K+/aK0 and finish"
+             else if(totS==-1)                  // => "Try to decay in K+/aK0 and finish"
 			           {
-                G4double m1=mK;         
-                G4int  PDG1=321;
-                G4QNucleus  newNp(totQC-KpQC);
-                G4int  PDG2=newNp.GetPDG();
-                G4double m2=newNp.GetMZNS();
-                G4QNucleus  newN0(totQC-K0QC);
-                G4double m3=newN0.GetMZNS();
-                if (m3+mK0<m2+mK)                // => "aK0+ResA is better" case
+               G4double m1=mK;         
+               G4int  PDG1=321;
+               G4QNucleus  newNp(totQC-KpQC);
+               G4int  PDG2=newNp.GetPDG();
+               G4double m2=newNp.GetMZNS();
+               G4QNucleus  newN0(totQC-K0QC);
+               G4double m3=newN0.GetMZNS();
+               if (m3+mK0<m2+mK)                // => "aK0+ResA is better" case
 	               {
-                  m1  =mK0;
-                  PDG1=311;
-                  m2  =m3;
-                  PDG2=newN0.GetPDG();
+                 m1  =mK0;
+                 PDG1=311;
+                 m2  =m3;
+                 PDG2=newN0.GetPDG();
 	               }
-                if(totMass>m1+m2)                // => "can decay" case
-                {
-                  G4LorentzVector fq4M(0.,0.,0.,m1);
-                  G4LorentzVector qe4M(0.,0.,0.,m2);
-                  if(!G4QHadron(tot4M).DecayIn2(fq4M,qe4M))
+               if(totMass>m1+m2)                // => "can decay" case
+               {
+                 G4LorentzVector fq4M(0.,0.,0.,m1);
+                 G4LorentzVector qe4M(0.,0.,0.,m2);
+                 if(!G4QHadron(tot4M).DecayIn2(fq4M,qe4M))
 			               {
-                    G4cout<<"---Warning---G4QE::HadQE:tM="<<tot4M.m()<<"->aK="<<PDG1<<"(M="
-                          <<m1<<")+ResA="<<PDG2<<"(M="<<m2<<")="<<m1+m2<<G4endl;
-                    G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                    CleanUp();
+                   G4cout<<"---Warning---G4QE::HadQE:tM="<<tot4M.m()<<"->aK="<<PDG1<<"(M="
+                         <<m1<<")+ResA="<<PDG2<<"(M="<<m2<<")="<<m1+m2<<G4endl;
+                   G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+                   CleanUp();
 		                  if(!CheckGroundState(quasH,true))
-                    {
-                      G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                      theQHadrons.push_back(hadr);   // Cor or fill as It Is
+                   {
+                     G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                     theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                      G4cout<<"***G4QE::HQE:FillAsIs(7),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                     G4cout<<"***G4QE::HQE:FillAsIs(7),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
 		  		                //throw G4QException("G4QEnv::HadrQEnv: aK+ResA DecayIn2 error");
-                    }
-                    delete quasH;  
-                    return theQHadrons;
+                   }
+                   delete quasH;  
+                   return theQHadrons;
 			               }
-                  G4QHadron* H1 = new G4QHadron(PDG1,fq4M);
+                 G4QHadron* H1 = new G4QHadron(PDG1,fq4M);
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:Kaon(Env)="<<PDG1<<fq4M<<G4endl;
+                 G4cout<<"G4QE::HQE:Kaon(Env)="<<PDG1<<fq4M<<G4endl;
 #endif
-                  theQHadrons.push_back(H1);     // (delete equivalent)
-                  G4QHadron* H2 = new G4QHadron(PDG2,qe4M);
+                 theQHadrons.push_back(H1);     // (delete equivalent)
+                 G4QHadron* H2 = new G4QHadron(PDG2,qe4M);
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:ResidEnv="<<PDG2<<qe4M<<G4endl;
+                 G4cout<<"G4QE::HQE:ResidEnv="<<PDG2<<qe4M<<G4endl;
 #endif
-                  theQHadrons.push_back(H2);     // (delete equivalent)
-                  break;
+                 theQHadrons.push_back(H2);     // (delete equivalent)
+                 break;
 			             }
-                else totM=250000.;               // => "Continue reversion" case
+               else totM=250000.;               // => "Continue reversion" case
 			           }
-              else if(totS==-2)                  //=>"Try to decay in 2(K+/aK0) and finish"
+             else if(totS==-2)                  //=>"Try to decay in 2(K+/aK0) and finish"
 		  	         {
-                G4double m1=mK;         
-                G4int  PDG1=321;
-                G4double m2=mK0;         
-                G4int  PDG2=311;
-                G4QNucleus  newNp0(totQC-KpQC-K0QC);
-                G4int  PDG3=newNp0.GetPDG();
-                G4double m3=newNp0.GetMZNS();    // M-K^0-K^+
-                G4QNucleus  newN00(totQC-K0QC-K0QC);
-                G4double m4=newN00.GetMZNS();    // M-2*K^0
-                G4QNucleus  newNpp(totQC-KpQC-KpQC);
-                G4double m5=newNpp.GetMZNS();    // M-2*K^+
-                if (m4+mK0+mK0<m3+mK+mK0 && m4+mK0+mK0<=m5+mK+mK) //=>"2K0+ResA is theBest"
+               G4double m1=mK;         
+               G4int  PDG1=321;
+               G4double m2=mK0;         
+               G4int  PDG2=311;
+               G4QNucleus  newNp0(totQC-KpQC-K0QC);
+               G4int  PDG3=newNp0.GetPDG();
+               G4double m3=newNp0.GetMZNS();    // M-K^0-K^+
+               G4QNucleus  newN00(totQC-K0QC-K0QC);
+               G4double m4=newN00.GetMZNS();    // M-2*K^0
+               G4QNucleus  newNpp(totQC-KpQC-KpQC);
+               G4double m5=newNpp.GetMZNS();    // M-2*K^+
+               if (m4+mK0+mK0<m3+mK+mK0 && m4+mK0+mK0<=m5+mK+mK) //=>"2K0+ResA is theBest"
 	               {
-                  m1  =mK0;
-                  PDG1=311;
-                  m3  =m4;
-                  PDG3=newN00.GetPDG();
+                 m1  =mK0;
+                 PDG1=311;
+                 m3  =m4;
+                 PDG3=newN00.GetPDG();
 	               }
-                else if(m5+mK+mK<m3+mK+mK0 && m5+mK+mK<=m4+mK0+mK0)//=>"2Kp+ResA isTheBest"
+               else if(m5+mK+mK<m3+mK+mK0 && m5+mK+mK<=m4+mK0+mK0)//=>"2Kp+ResA isTheBest"
 	               {
-                  m2  =mK;
-                  PDG1=321;
-                  m3  =m5;
-                  PDG3=newNpp.GetPDG();
+                 m2  =mK;
+                 PDG1=321;
+                 m3  =m5;
+                 PDG3=newNpp.GetPDG();
 	               }
-                if(totMass>m1+m2+m3)             // => "can decay" case
-                {
-                  G4LorentzVector k14M(0.,0.,0.,m1);
-                  G4LorentzVector k24M(0.,0.,0.,m2);
-                  G4LorentzVector ra4M(0.,0.,0.,m3);
-                  if(!G4QHadron(tot4M).DecayIn3(k14M,k24M,ra4M))
+               if(totMass>m1+m2+m3)             // => "can decay" case
+               {
+                 G4LorentzVector k14M(0.,0.,0.,m1);
+                 G4LorentzVector k24M(0.,0.,0.,m2);
+                 G4LorentzVector ra4M(0.,0.,0.,m3);
+                 if(!G4QHadron(tot4M).DecayIn3(k14M,k24M,ra4M))
 			               {
-                    G4cout<<"--Warning--G4QE::HQE:tM="<<tot4M.m()<<"->aK="<<PDG1<<"(M="<<m1
-                          <<")+K2="<<PDG2<<"(M="<<m2<<")+A="<<PDG3<<"(M="<<m3<<")"<<G4endl;
-                    G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                    CleanUp();
+                   G4cout<<"--Warning--G4QE::HQE:tM="<<tot4M.m()<<"->aK="<<PDG1<<"(M="<<m1
+                         <<")+K2="<<PDG2<<"(M="<<m2<<")+A="<<PDG3<<"(M="<<m3<<")"<<G4endl;
+                   G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+                   CleanUp();
 		                  if(!CheckGroundState(quasH,true))
-                    {
-                      G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                      theQHadrons.push_back(hadr);   // Cor or fill as It Is
+                   {
+                     G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                     theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                      G4cout<<"***G4QE::HQE:FillAsIs(8),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                     G4cout<<"***G4QE::HQE:FillAsIs(8),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
 				                  //throw G4QException("G4QEnv::HadrQE:2K+ResidNucleus DecIn3 Error");
-                    }
-                    delete quasH;  
-                    return theQHadrons;
+                   }
+                   delete quasH;  
+                   return theQHadrons;
 			               }
-                  G4QHadron* H1 = new G4QHadron(PDG1,k14M);
-                  theQHadrons.push_back(H1);     // (delete equivalent)
+                 G4QHadron* H1 = new G4QHadron(PDG1,k14M);
+                 theQHadrons.push_back(H1);     // (delete equivalent)
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:K1(Env)="<<PDG1<<k14M<<G4endl;
+                 G4cout<<"G4QE::HQE:K1(Env)="<<PDG1<<k14M<<G4endl;
 #endif
-                  G4QHadron* H2 = new G4QHadron(PDG2,k24M);
-                  theQHadrons.push_back(H2);     // (delete equivalent)
+                 G4QHadron* H2 = new G4QHadron(PDG2,k24M);
+                 theQHadrons.push_back(H2);     // (delete equivalent)
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:K2(Env)="<<PDG2<<k24M<<G4endl;
+                 G4cout<<"G4QE::HQE:K2(Env)="<<PDG2<<k24M<<G4endl;
 #endif
-                  G4QHadron* H3 = new G4QHadron(PDG3,ra4M);
-                  theQHadrons.push_back(H3);     // (delete equivalent)
+                 G4QHadron* H3 = new G4QHadron(PDG3,ra4M);
+                 theQHadrons.push_back(H3);     // (delete equivalent)
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:ResKKEnv="<<PDG3<<ra4M<<G4endl;
+                 G4cout<<"G4QE::HQE:ResKKEnv="<<PDG3<<ra4M<<G4endl;
 #endif
-                  break;
+                 break;
 			             }
-                else totM=270000.;               // => "Continue reversion" case
+               else totM=270000.;               // => "Continue reversion" case
 			           }
-              else totM=300000.;                 // => "Continue reversion" case
+             else totM=300000.;                 // => "Continue reversion" case
 			         }
-            else
+           else
 			         {
-              if     (totPDG==1114||totPDG==2224||totPDG==10) // Decay right now and finish
+             if     (totPDG==1114||totPDG==2224||totPDG==10) // Decay right now and finish
 			           {
-                G4double m1=mNeut;
-                G4int  PDG1=2112;
-                G4double m2=mPi;
-                G4int  PDG2=-211;
+               G4double m1=mNeut;
+               G4int  PDG1=2112;
+               G4double m2=mPi;
+               G4int  PDG2=-211;
 				            if(totPDG==2224)
 				            {
-                  m1=mProt;
-                  PDG1=2212;
-                  m2=mPi;
-                  PDG2=211;
+                 m1=mProt;
+                 PDG1=2212;
+                 m2=mPi;
+                 PDG2=211;
 				            }
-                else if(totPDG==10)              // "Chipolino" case
+               else if(totPDG==10)              // "Chipolino" case
 				            {
-                  G4QChipolino resChip(totQC);   // define the residual as a Chipolino
-                  G4QPDGCode h1=resChip.GetQPDG1();
-                  PDG1=h1.GetPDGCode();          // PDG code of the first hadron
-                  m1  =h1.GetMass();             // Mass of the first hadron
-                  G4QPDGCode h2=resChip.GetQPDG2();
-                  PDG2=h2.GetPDGCode();          // PDG code of the second hadron
-                  m2  =h2.GetMass();             // Mass of the second hadron
+                 G4QChipolino resChip(totQC);   // define the residual as a Chipolino
+                 G4QPDGCode h1=resChip.GetQPDG1();
+                 PDG1=h1.GetPDGCode();          // PDG code of the first hadron
+                 m1  =h1.GetMass();             // Mass of the first hadron
+                 G4QPDGCode h2=resChip.GetQPDG2();
+                 PDG2=h2.GetPDGCode();          // PDG code of the second hadron
+                 m2  =h2.GetMass();             // Mass of the second hadron
 				            }
-                if(totMass>m1+m2)
+               if(totMass>m1+m2)
 				            {
-                  G4LorentzVector fq4M(0.,0.,0.,m1);
-                  G4LorentzVector qe4M(0.,0.,0.,m2);
-                  if(!G4QHadron(tot4M).DecayIn2(fq4M,qe4M))
+                 G4LorentzVector fq4M(0.,0.,0.,m1);
+                 G4LorentzVector qe4M(0.,0.,0.,m2);
+                 if(!G4QHadron(tot4M).DecayIn2(fq4M,qe4M))
 			               {
-                    G4cout<<"---Warning---G4QE::HaQE:tM="<<tot4M.m()<<"-> h1="<<PDG1<<"(M="
+                   G4cout<<"---Warning---G4QE::HaQE:tM="<<tot4M.m()<<"-> h1="<<PDG1<<"(M="
 					                     <<m1<<") + h2="<<PDG2<<"(M="<<m2<<")="<<m1+m2<<G4endl;
-                    G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
-                    CleanUp();
+                   G4Quasmon* quasH = new G4Quasmon(totQC,tot4M); // totQC not tQC!
+                   CleanUp();
 		                  if(!CheckGroundState(quasH,true))
-                    {
-                      G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
-                      theQHadrons.push_back(hadr);   // Cor or fill as It Is
+                   {
+                     G4QHadron* hadr = new G4QHadron(totQC,tot4M); // totQC not tQC!
+                     theQHadrons.push_back(hadr);   // Cor or fill as It Is
 #ifdef pdebug
-                      G4cout<<"***G4QE::HQE:FillAsIs(9),QC="<<totQC<<",4M="<<tot4M<<G4endl;
+                     G4cout<<"***G4QE::HQE:FillAsIs(9),QC="<<totQC<<",4M="<<tot4M<<G4endl;
 #endif
 				                  //throw G4QException("G4QEnv::HadrQEnv: h1+h2 DecayIn2 Error");
-                    }
-                    delete quasH;  
-                    return theQHadrons;
+                   }
+                   delete quasH;  
+                   return theQHadrons;
 			               }
-                  G4QHadron* H1 = new G4QHadron(PDG1,fq4M);
-                  theQHadrons.push_back(H1);     // (delete equivalent)
+                 G4QHadron* H1 = new G4QHadron(PDG1,fq4M);
+                 theQHadrons.push_back(H1);     // (delete equivalent)
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:h1="<<PDG1<<fq4M<<G4endl;
+                 G4cout<<"G4QE::HQE:h1="<<PDG1<<fq4M<<G4endl;
 #endif
-                  G4QHadron* H2 = new G4QHadron(PDG2,qe4M);
+                 G4QHadron* H2 = new G4QHadron(PDG2,qe4M);
 #ifdef pdebug
-                  G4cout<<"G4QE::HQE:h2="<<PDG2<<qe4M<<G4endl;
+                 G4cout<<"G4QE::HQE:h2="<<PDG2<<qe4M<<G4endl;
 #endif
-                  theQHadrons.push_back(H2);     // (delete equivalent)
-                  break;
+                 theQHadrons.push_back(H2);     // (delete equivalent)
+                 break;
 				            }
-                else totM=350000.;
+               else totM=350000.;
 			           }
 			           else if(totPDG) totM=G4QPDGCode(totPDG).GetMass();
-              else totM=400000.;
+             else totM=400000.;
 			         }
-            totBN=totQC.GetBaryonNumber();      // The BaryNum after addition
-            totS=totQC.GetStrangeness();        // The Strangeness after addition
-            G4double dM=totMass-totM;
+           totBN=totQC.GetBaryonNumber();      // The BaryNum after addition
+           totS=totQC.GetStrangeness();        // The Strangeness after addition
+           G4double dM=totMass-totM;
 #ifdef fdebug
 		          G4cout<<"G4QEnv::HadrQE: Add H="<<last4M<<lastQC<<",tM="<<tot4M<<totM<<totQC
-                  <<",dM="<<dM<<", tB="<<totBN<<", tS="<<totS<<G4endl;
+                 <<",dM="<<dM<<", tB="<<totBN<<", tS="<<totS<<G4endl;
 #endif
-            if(dM>-0.001&&totPDG)
+           if(dM>-0.001&&totPDG)
 		          {
-              CleanUp();
-              G4QHadron* evH = new G4QHadron(totPDG,tot4M);//Create Hadron for ResidNucleus
-              EvaporateResidual(evH);           // Evaporate ResNuc (del.equiv)
-              break;
+             CleanUp();
+             G4QHadron* evH = new G4QHadron(totPDG,tot4M);//Create Hadron for ResidNucleus
+             EvaporateResidual(evH);           // Evaporate ResNuc (del.equiv)
+             break;
 		          }
-            nOfOUT  = theQHadrons.size();       // Update the value of OUTPUT entries
+           nOfOUT  = theQHadrons.size();       // Update the value of OUTPUT entries
 		        } // End of WHILE(nOfOUT)
-          nOfOUT  = theQHadrons.size();         // Update the value of OUTPUT entries
+         nOfOUT  = theQHadrons.size();         // Update the value of OUTPUT entries
 		        if(!nOfOUT)
 		        {
 		          G4cout<<"---Warning---G4QEnv::HadrQE:M="<<totMass<<"<gsM="<<totM<<",dM="<<dM
-                  <<", tPDG="<<totPDG<<", t4M="<<tot4M<<G4endl;
+                 <<", tPDG="<<totPDG<<", t4M="<<tot4M<<G4endl;
 			         // throw G4QException("G4QEnvironment::HadronizeQEnv:Can't decayExhostedQEnv");
-            CleanUp();
-            G4QHadron* evH = new G4QHadron(totPDG,tot4M);// Create Hadron for ResidNucleus
-            EvaporateResidual(evH);             // Evaporate ResidNucl (del.equiv)
+           CleanUp();
+           G4QHadron* evH = new G4QHadron(totPDG,tot4M);// Create Hadron for ResidNucleus
+           EvaporateResidual(evH);             // Evaporate ResidNucl (del.equiv)
 	         }
 		      }
-        else                                    // "Last decay was fatal" case @@ buggy ?MK
+       else                                    // "Last decay was fatal" case @@ buggy ?MK
 		      {
 #ifdef pdebug
 		        G4cout<<"***G4QEnv::HadrQE: M="<<totMass<<",dM="<<dM<<",nQ="<<nQuasmons<<G4endl;
 #endif
-          G4Quasmon* quasH = new G4Quasmon(totQC,tot4M);
-          CleanUp();
+         G4Quasmon* quasH = new G4Quasmon(totQC,tot4M);
+         CleanUp();
 		        if(!CheckGroundState(quasH,true))
-          {
-            G4QHadron* hadr = new G4QHadron(totQC,tot4M);
+         {
+           G4QHadron* hadr = new G4QHadron(totQC,tot4M);
 #ifdef pdebug
-            G4cout<<"G4QE::HQE:CheckGS failed H="<<totQC<<tot4M<<G4endl;
+           G4cout<<"G4QE::HQE:CheckGS failed H="<<totQC<<tot4M<<G4endl;
 #endif
-            theQHadrons.push_back(hadr); // Cor or fill asItIs
-          }
-          delete quasH;  
-        }
-        CleanUp();
+           theQHadrons.push_back(hadr); // Cor or fill asItIs
+         }
+         delete quasH;  
+       }
+       CleanUp();
 	     }
 	   } // End of "infinit" WHILE LOOP
-  } // End of the "Nuclear Environment" case
-  return theQHadrons;
+ } // End of the "Nuclear Environment" case
+ return theQHadrons;
 } // End of the main member function HadronizeQEnvironment
 
 // Clean up the QEnvironment to Zero
 void G4QEnvironment::CleanUp()
 //   =========================
 {
-  static const G4QNucleus vacuum(90000000);
-  theEnvironment=vacuum;
-  G4int nQuasmons = theQuasmons.size();
-  if (nQuasmons) for (G4int iq=0; iq<nQuasmons; iq++)theQuasmons[iq]->KillQuasmon();
+ static const G4QNucleus vacuum(90000000);
+ theEnvironment=vacuum;
+ G4int nQuasmons = theQuasmons.size();
+ if (nQuasmons) for (G4int iq=0; iq<nQuasmons; iq++)theQuasmons[iq]->KillQuasmon();
 } // End of CleanUp
 
 //Evaporate Residual Nucleus
 void G4QEnvironment::EvaporateResidual(G4QHadron* qH)
 {//  ================================================
-  static const G4double mAlph = G4QPDGCode(2112).GetNuclMass(2,2,0);
-  static const G4double mDeut = G4QPDGCode(2112).GetNuclMass(1,1,0);
-  static const G4double mNeut = G4QPDGCode(2112).GetMass();
-  static const G4double mProt = G4QPDGCode(2212).GetMass();
-  static const G4double mAlPr = mAlph+mProt;
-  static const G4double mAlNt = mAlph+mNeut;
-  static const G4double dProt = mProt+mProt;
-  static const G4double dNeut = mNeut+mNeut;
-  static const G4double dAlph = mAlph+mAlph;
-  static const G4double eps=.003;
-  G4int thePDG = qH->GetPDGCode();           // Get PDG code of the Residual Nucleus
-  G4int theBN  = qH->GetBaryonNumber();      // A (Baryon number of the nucleus)
-#ifdef pdebug
-  G4cout<<"G4QE::EvaporateRes:Called for PDG="<<thePDG<<",4M="<<qH->Get4Momentum()<<G4endl;
-#endif
-  if(theBN==1)
-  {
-#ifdef pdebug
-    G4cout<<"G4QE::EvaporateRes: Baryon="<<thePDG<<qH->Get4Momentum()<<G4endl;
-#endif
-    DecayBaryon(qH);                     // (delete equivalent)
+ static const G4double mAlph = G4QPDGCode(2112).GetNuclMass(2,2,0);
+ static const G4double mDeut = G4QPDGCode(2112).GetNuclMass(1,1,0);
+ static const G4double mNeut = G4QPDGCode(2112).GetMass();
+ static const G4double mProt = G4QPDGCode(2212).GetMass();
+ static const G4double mAlPr = mAlph+mProt;
+ static const G4double mAlNt = mAlph+mNeut;
+ static const G4double dProt = mProt+mProt;
+ static const G4double dNeut = mNeut+mNeut;
+ static const G4double dAlph = mAlph+mAlph;
+ static const G4double eps=.003;
+ G4int thePDG = qH->GetPDGCode();           // Get PDG code of the Residual Nucleus
+ G4int theBN  = qH->GetBaryonNumber();      // A (Baryon number of the nucleus)
+#ifdef pdebug
+ G4cout<<"G4QE::EvaporateRes:Called for PDG="<<thePDG<<",4M="<<qH->Get4Momentum()<<G4endl;
+#endif
+ if(theBN==1)
+ {
+#ifdef pdebug
+   G4cout<<"G4QE::EvaporateRes: Baryon="<<thePDG<<qH->Get4Momentum()<<G4endl;
+#endif
+   DecayBaryon(qH);                     // (delete equivalent)
 #ifdef qdebug
-    qH=0;
+   qH=0;
 #endif
-    return;
-  }
-  else if(!theBN) // @@ In future it is usefull to add the MesonExcitationDecay (?!)
-  {
+   return;
+ }
+ else if(!theBN) // @@ In future it is usefull to add the MesonExcitationDecay (?!)
+ {
 #ifdef pdebug
-    G4LorentzVector mesLV=qH->Get4Momentum();
-    G4cout<<"G4QE::EvaporateRes:(!)Meson(!) PDG="<<thePDG<<",4M="<<mesLV<<mesLV.m()
-          <<",QC="<<qH->GetQC()<<",MPDG="<<G4QPDGCode(thePDG).GetMass()<<G4endl;
+   G4LorentzVector mesLV=qH->Get4Momentum();
+   G4cout<<"G4QE::EvaporateRes:(!)Meson(!) PDG="<<thePDG<<",4M="<<mesLV<<mesLV.m()
+         <<",QC="<<qH->GetQC()<<",MPDG="<<G4QPDGCode(thePDG).GetMass()<<G4endl;
 #endif
-    //DecayMeson(qH);                        // @@
-    theQHadrons.push_back(qH);
+   //DecayMeson(qH);                        // @@
+   theQHadrons.push_back(qH);
 #ifdef qdebug
-    qH=0;
-#endif
-    return;
-  }
-  G4QContent  theQC  = qH->GetQC();          // Quark Content of the hadron
-  G4int theC=theQC.GetCharge();              // P
-  G4int theS=theQC.GetStrangeness();         // S
-  if(!thePDG) thePDG = theQC.GetSPDGCode();  // If there is no PDG code, get it from QC
-  if(thePDG==10&&theQC.GetBaryonNumber()>0) thePDG=theQC.GetZNSPDGCode();
-  if(theS>0) thePDG-=theS*999999;            // @@ May hide hypernuclear problems (G4)
-  G4double totGSM = G4QNucleus(thePDG).GetGSMass();// TheGroundStMass of theTotalResNucleus
-  if(theBN==2)
-  {
-    if(!theC)        totGSM=dNeut;           // nn, nL, LL
-    else if(theC==2) totGSM=dProt;           // pp
-    else             totGSM=mDeut;           // np, Lp
-  }
-  else if(theBN==5)
-  {
-    if     (theC==3) totGSM=mAlPr;           // effective "Alph+p"
-    else if(theC==2) totGSM=mAlNt;           // effective "Alph+n"
-  }
-  else if(theBN==8)   totGSM=dAlph;          // effective "Be8"
-  // @@ Should be more (else if) for bigger A=theBN
-  G4LorentzVector q4M = qH->Get4Momentum();  // Get 4-momentum of theTotalResidNucleus
-  G4double    totMass = q4M.m();             // Get theRealMass of theTotalResidNucleus
-  if(fabs(totMass-totGSM)<eps)
-  {
-    theQHadrons.push_back(qH);               // fill As It Is
+   qH=0;
+#endif
+   return;
+ }
+ G4QContent  theQC  = qH->GetQC();          // Quark Content of the hadron
+ G4int theC=theQC.GetCharge();              // P
+ G4int theS=theQC.GetStrangeness();         // S
+ if(!thePDG) thePDG = theQC.GetSPDGCode();  // If there is no PDG code, get it from QC
+ if(thePDG==10&&theQC.GetBaryonNumber()>0) thePDG=theQC.GetZNSPDGCode();
+ if(theS>0) thePDG-=theS*999999;            // @@ May hide hypernuclear problems (G4)
+ G4double totGSM = G4QNucleus(thePDG).GetGSMass();// TheGroundStMass of theTotalResNucleus
+ if(theBN==2)
+ {
+   if(!theC)        totGSM=dNeut;           // nn, nL, LL
+   else if(theC==2) totGSM=dProt;           // pp
+   else             totGSM=mDeut;           // np, Lp
+ }
+ else if(theBN==5)
+ {
+   if     (theC==3) totGSM=mAlPr;           // effective "Alph+p"
+   else if(theC==2) totGSM=mAlNt;           // effective "Alph+n"
+ }
+ else if(theBN==8)   totGSM=dAlph;          // effective "Be8"
+ // @@ Should be more (else if) for bigger A=theBN
+ G4LorentzVector q4M = qH->Get4Momentum();  // Get 4-momentum of theTotalResidNucleus
+ G4double    totMass = q4M.m();             // Get theRealMass of theTotalResidNucleus
+ if(fabs(totMass-totGSM)<eps)
+ {
+   theQHadrons.push_back(qH);               // fill As It Is
 #ifdef qdebug
-     qH=0;
+    qH=0;
 #endif
-  }
-  else if(totMass>totGSM)
-  {
-    theEnvironment.EvaporateNucleus(qH,&theQHadrons);
+ }
+ else if(totMass>totGSM)
+ {
+   theEnvironment.EvaporateNucleus(qH,&theQHadrons);
 #ifdef qdebug
-    qH=0;
+   qH=0;
 #endif
-  }
-  else                                       // Correction must be done
-  {
+ }
+ else                                       // Correction must be done
+ {
 #ifdef pdebug
-    G4cout<<"G4QE::EvaRes: *Correct* "<<theQC<<q4M<<totMass<<"<"<<totGSM<<G4endl;
+   G4cout<<"G4QE::EvaRes: *Correct* "<<theQC<<q4M<<totMass<<"<"<<totGSM<<G4endl;
 #endif
-    G4Quasmon* quasH = new G4Quasmon(theQC,q4M);
-    if(!CheckGroundState(quasH,true))
-    {
+   G4Quasmon* quasH = new G4Quasmon(theQC,q4M);
+   if(!CheckGroundState(quasH,true))
+   {
 #ifdef pdebug
-      G4cout<<"***G4QE::EvaporResid:GSCorFailed.FillAsItIs,n="<<theQHadrons.size()<<G4endl;
+     G4cout<<"***G4QE::EvaporResid:GSCorFailed.FillAsItIs,n="<<theQHadrons.size()<<G4endl;
 #endif
-      theQHadrons.push_back(qH);             // Correction failed: fill as it is
+     theQHadrons.push_back(qH);             // Correction failed: fill as it is
 #ifdef qdebug
-      qH=0;
+     qH=0;
 #endif
-    }
-    else
-    {
-      delete qH;
+   }
+   else
+   {
+     delete qH;
 #ifdef qdebug
-      qH=0;
+     qH=0;
 #endif
-    }
-    delete quasH;
-  }
+   }
+   delete quasH;
+ }
 #ifdef qdebug
-  if (qH)
-  {
-    G4cout<<"G4QEnvironment::EvaporateResidual: deleted at end, PDG="
-           <<qH->GetPDGCode()<<G4endl;
-    delete qH;
-  }
-#endif
-  return;
+ if (qH)
+ {
+   G4cout<<"G4QEnvironment::EvaporateResidual: deleted at end, PDG="
+          <<qH->GetPDGCode()<<G4endl;
+   delete qH;
+ }
+#endif
+ return;
 } // End of EvaporateResidual
 
 //The public Hadronisation function with the Exception treatment (del respons. of User !)
 G4QHadronVector* G4QEnvironment::Fragment()
 {//              ==========================
 #ifdef chdebug
-  G4int fCharge=theEnvironment.GetCharge();
-  G4int fBaryoN=theEnvironment.GetA();
-  G4int nHad=theQHadrons.size();
-  if(nHad) for(G4int ih=0; ih<nHad; ih++)
-  {
-    fCharge+=theQHadrons[ih]->GetCharge();
-    fBaryoN+=theQHadrons[ih]->GetBaryonNumber();
-  }
-  G4int nQuas=theQuasmons.size();
-  if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
-  {
-    fCharge+=theQuasmons[iqs]->GetCharge();
-    fBaryoN+=theQuasmons[iqs]->GetBaryonNumber();
-  }
-  if(fCharge!=totCharge || fBaryoN!=totBaryoN)
-  {
-    G4cout<<"***G4QE::Frag:tC="<<totCharge<<",C="<<fCharge<<",tB="<<totBaryoN
-          <<",B="<<fBaryoN<<",E="<<theEnvironment<<G4endl;
-    if(nHad) for(G4int h=0; h<nHad; h++)
-    {
-      G4QHadron* cH = theQHadrons[h];
-      G4cout<<">G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
-    }
-    if(nQuas) for(G4int q=0; q<nQuas; q++)
-    {
-      G4Quasmon* cQ = theQuasmons[q];
-      G4cout<<">G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
-    }
-  }
-#endif
-  G4QHadronVector dummy;       // Prototype of the output G4QHadronVector to avoid warnings
-  G4QHadronVector* theFragments = &dummy; // Prototype of the output G4QHadronVector
-  G4int ExCount =0;                       // Counter of the repetitions
-  G4int MaxExCnt=1;                       // A#of of repetitions + 1 (1 for no repetitions)
-  G4bool RepFlag=true;                    // To come inside the while
-  // For the purpose of the recalculation the Quasmons, Hadrons, Environment must be stored
-  G4QuasmonVector* reQuasmons = new G4QuasmonVector; // deleted after the "while LOOP"
-  G4int nQ = theQuasmons.size();
-  if(nQ)
-  {
-    for(G4int iq=0; iq<nQ; iq++)
-    {
-      G4Quasmon* curQ     = new G4Quasmon(theQuasmons[iq]);
-      reQuasmons->push_back(curQ);                  // deleted after the "while LOOP"
-    }
-  }
-  G4QHadronVector* reQHadrons = new G4QHadronVector; // deleted after the "while LOOP"
-  G4int nH = theQHadrons.size();
-  if(nH)
-  {
-    for(G4int ih=0; ih<nH; ih++)
-    {
-      G4QHadron* curH     = new G4QHadron(theQHadrons[ih]);
-      reQHadrons->push_back(curH);                 // deleted after the "while LOOP"
-    }
-  }
-  G4QNucleus reEnvironment=theEnvironment;
-  G4LorentzVector rem4M=tot4Mom;
-  while (RepFlag && ExCount<MaxExCnt)
-  {
-    try
-    {
-      RepFlag=false;                      // If OK - go out of the while
-      theFragments = FSInteraction();     //InterClass creation. User must delet QHadrons.
-    }
-    catch (G4QException& error)
-    {
-      G4cout<<"***G4QEnvironment::Fragment: Exception is catched"<<G4endl;
-      RepFlag=true;                       // For the Exception - repete
-      ExCount++;                          // Increment the repetition counter
-      G4cout<<"***G4QEnv::Fragment:Exception #"<<ExCount<<": "<<error.GetMessage()<<G4endl;
-      G4LorentzVector dif=rem4M-theEnvironment.Get4Momentum(); // CHECK difference
-      G4int nHp=theQHadrons.size();
-      G4int nQp = theQuasmons.size();
-      G4cout<<"***G4QEnvir::Fragment:nH="<<nHp<<",nQ="<<nQp<<",E="<<theEnvironment<<G4endl;
-      for(G4int ph=0; ph<nHp; ph++)
-      {
-        G4QHadron* cH = theQHadrons[ph];
-        dif-=cH->Get4Momentum();
+ G4int fCharge=theEnvironment.GetCharge();
+ G4int fBaryoN=theEnvironment.GetA();
+ G4int nHad=theQHadrons.size();
+ if(nHad) for(G4int ih=0; ih<nHad; ih++)
+ {
+   fCharge+=theQHadrons[ih]->GetCharge();
+   fBaryoN+=theQHadrons[ih]->GetBaryonNumber();
+ }
+ G4int nQuas=theQuasmons.size();
+ if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
+ {
+   fCharge+=theQuasmons[iqs]->GetCharge();
+   fBaryoN+=theQuasmons[iqs]->GetBaryonNumber();
+ }
+ if(fCharge!=totCharge || fBaryoN!=totBaryoN)
+ {
+   G4cout<<"***G4QE::Frag:tC="<<totCharge<<",C="<<fCharge<<",tB="<<totBaryoN
+         <<",B="<<fBaryoN<<",E="<<theEnvironment<<G4endl;
+   if(nHad) for(G4int h=0; h<nHad; h++)
+   {
+     G4QHadron* cH = theQHadrons[h];
+     G4cout<<">G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
+   }
+   if(nQuas) for(G4int q=0; q<nQuas; q++)
+   {
+     G4Quasmon* cQ = theQuasmons[q];
+     G4cout<<">G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
+   }
+ }
+#endif
+ G4QHadronVector dummy;       // Prototype of the output G4QHadronVector to avoid warnings
+ G4QHadronVector* theFragments = &dummy; // Prototype of the output G4QHadronVector
+ G4int ExCount =0;                       // Counter of the repetitions
+ G4int MaxExCnt=1;                       // A#of of repetitions + 1 (1 for no repetitions)
+ G4bool RepFlag=true;                    // To come inside the while
+ // For the purpose of the recalculation the Quasmons, Hadrons, Environment must be stored
+ G4QuasmonVector* reQuasmons = new G4QuasmonVector; // deleted after the "while LOOP"
+ G4int nQ = theQuasmons.size();
+ if(nQ)
+ {
+   for(G4int iq=0; iq<nQ; iq++)
+   {
+     G4Quasmon* curQ     = new G4Quasmon(theQuasmons[iq]);
+     reQuasmons->push_back(curQ);                  // deleted after the "while LOOP"
+   }
+ }
+ G4QHadronVector* reQHadrons = new G4QHadronVector; // deleted after the "while LOOP"
+ G4int nH = theQHadrons.size();
+ if(nH)
+ {
+   for(G4int ih=0; ih<nH; ih++)
+   {
+     G4QHadron* curH     = new G4QHadron(theQHadrons[ih]);
+     reQHadrons->push_back(curH);                 // deleted after the "while LOOP"
+   }
+ }
+ G4QNucleus reEnvironment=theEnvironment;
+ G4LorentzVector rem4M=tot4Mom;
+ while (RepFlag && ExCount<MaxExCnt)
+ {
+   try
+   {
+     RepFlag=false;                      // If OK - go out of the while
+     theFragments = FSInteraction();     //InterClass creation. User must delet QHadrons.
+   }
+   catch (G4QException& error)
+   {
+     G4cout<<"***G4QEnvironment::Fragment: Exception is catched"<<G4endl;
+     RepFlag=true;                       // For the Exception - repete
+     ExCount++;                          // Increment the repetition counter
+     G4cout<<"***G4QEnv::Fragment:Exception #"<<ExCount<<": "<<error.GetMessage()<<G4endl;
+     G4LorentzVector dif=rem4M-theEnvironment.Get4Momentum(); // CHECK difference
+     G4int nHp=theQHadrons.size();
+     G4int nQp = theQuasmons.size();
+     G4cout<<"***G4QEnvir::Fragment:nH="<<nHp<<",nQ="<<nQp<<",E="<<theEnvironment<<G4endl;
+     for(G4int ph=0; ph<nHp; ph++)
+     {
+       G4QHadron* cH = theQHadrons[ph];
+       dif-=cH->Get4Momentum();
 		      G4cout<<"***G4QEnvir::Fr:H"<<ph<<"="<<cH->Get4Momentum()<<cH->GetPDGCode()<<G4endl;
-      }
-      for(G4int pq=0; pq<nQp; pq++)
-      {
-        G4Quasmon* cQ = theQuasmons[pq];
-        dif-=cQ->Get4Momentum();
-        G4cout<<"***G4QEnvir::Fr:Quasm#"<<pq<<"="<<cQ->Get4Momentum()<<cQ->GetQC()<<G4endl;
-      }
-      // *** Cleaning Up of all old output instances for the recalculation purposes ***
-      for_each(theFragments->begin(), theFragments->end(), DeleteQHadron()); // old Hadrons
-      theFragments->clear();
-      for_each(theQHadrons.begin(), theQHadrons.end(), DeleteQHadron()); //internal Hadrons
-      theQHadrons.clear();
-      for_each(theQuasmons.begin(), theQuasmons.end(), DeleteQuasmon()); // old Quasmons
-      theQuasmons.clear();
-      G4cout<<"***G4QEnv::Fragment: ----------- End of CleaningUp: 4Mdif="<<dif<<G4endl;
-      // **************** Recover all conditions for the recalculation ********************
-      theEnvironment=reEnvironment;             // Recover the nuclear environment
-      tot4Mom=rem4M;                            // Recover the total 4Momentum of the React
-      G4cout<<"***G4QEnv::Fragment:*Recover*Env="<<theEnvironment<<",4M="<<tot4Mom<<G4endl;
-      G4int mQ = reQuasmons->size();            // Recover the memorizedQuasmons with print
-      for(G4int jq=0; jq<mQ; jq++)
-      {
-        //G4Quasmon* curQ = new G4Quasmon(reQuasmons->operator[](jq));
-        G4Quasmon* curQ = new G4Quasmon((*reQuasmons)[jq]);
-        G4cout<<"***G4QE::Fragm:Q("<<jq<<")="<<curQ->Get4Momentum()<<curQ->GetQC()<<G4endl;
-        theQuasmons.push_back(curQ);            // (delete equivalent)
-      }
-      G4int mH = reQHadrons->size();            // Recover the memorizedQHadrons with print
-      for(G4int jh=0; jh<mH; jh++)
-      {
-        //G4QHadron* curH = new G4QHadron(reQHadrons->operator[](jh));
-        G4QHadron* curH = new G4QHadron((*reQHadrons)[jh]);
-        G4cout<<"***G4QE::Fragm:H("<<jh<<")="<<curH->Get4Momentum()<<curH->GetQC()<<G4endl;
-        theQHadrons.push_back(curH);            // (delete equivalent)
-      }
-    }
-  }
-  if(reQuasmons->size()) // If something is still in memory then clean it up
-  {
-    for_each(reQuasmons->begin(),reQuasmons->end(),DeleteQuasmon()); // CleanUp oldQuasmons
-    reQuasmons->clear();
-  }
-  delete reQuasmons;     // All temporary Quasmons memory is wiped out
-  if(reQHadrons->size()) // If something is still in memory then clean it up
-  {
-    for_each(reQHadrons->begin(),reQHadrons->end(),DeleteQHadron()); //CleanUp old QHadrons
-    reQHadrons->clear();
-  }
-  delete reQHadrons;     // All temporary QHadrons memory is wiped out
-  if(ExCount>=MaxExCnt)
-  {
-    G4cerr<<"*G4QEnv::Fragment:Exception.Target="<<theTargetPDG<<". Projectiles:"<<G4endl;
-    G4int nProj=theProjectiles.size();
-    if(nProj) for(G4int ipr=0; ipr<nProj; ipr++)
+     }
+     for(G4int pq=0; pq<nQp; pq++)
+     {
+       G4Quasmon* cQ = theQuasmons[pq];
+       dif-=cQ->Get4Momentum();
+       G4cout<<"***G4QEnvir::Fr:Quasm#"<<pq<<"="<<cQ->Get4Momentum()<<cQ->GetQC()<<G4endl;
+     }
+     // *** Cleaning Up of all old output instances for the recalculation purposes ***
+     for_each(theFragments->begin(), theFragments->end(), DeleteQHadron()); // old Hadrons
+     theFragments->clear();
+     for_each(theQHadrons.begin(), theQHadrons.end(), DeleteQHadron()); //internal Hadrons
+     theQHadrons.clear();
+     for_each(theQuasmons.begin(), theQuasmons.end(), DeleteQuasmon()); // old Quasmons
+     theQuasmons.clear();
+     G4cout<<"***G4QEnv::Fragment: ----------- End of CleaningUp: 4Mdif="<<dif<<G4endl;
+     // **************** Recover all conditions for the recalculation ********************
+     theEnvironment=reEnvironment;             // Recover the nuclear environment
+     tot4Mom=rem4M;                            // Recover the total 4Momentum of the React
+     G4cout<<"***G4QEnv::Fragment:*Recover*Env="<<theEnvironment<<",4M="<<tot4Mom<<G4endl;
+     G4int mQ = reQuasmons->size();            // Recover the memorizedQuasmons with print
+     for(G4int jq=0; jq<mQ; jq++)
+     {
+       //G4Quasmon* curQ = new G4Quasmon(reQuasmons->operator[](jq));
+       G4Quasmon* curQ = new G4Quasmon((*reQuasmons)[jq]);
+       G4cout<<"***G4QE::Fragm:Q("<<jq<<")="<<curQ->Get4Momentum()<<curQ->GetQC()<<G4endl;
+       theQuasmons.push_back(curQ);            // (delete equivalent)
+     }
+     G4int mH = reQHadrons->size();            // Recover the memorizedQHadrons with print
+     for(G4int jh=0; jh<mH; jh++)
+     {
+       //G4QHadron* curH = new G4QHadron(reQHadrons->operator[](jh));
+       G4QHadron* curH = new G4QHadron((*reQHadrons)[jh]);
+       G4cout<<"***G4QE::Fragm:H("<<jh<<")="<<curH->Get4Momentum()<<curH->GetQC()<<G4endl;
+       theQHadrons.push_back(curH);            // (delete equivalent)
+     }
+   }
+ }
+ if(reQuasmons->size()) // If something is still in memory then clean it up
+ {
+   for_each(reQuasmons->begin(),reQuasmons->end(),DeleteQuasmon()); // CleanUp oldQuasmons
+   reQuasmons->clear();
+ }
+ delete reQuasmons;     // All temporary Quasmons memory is wiped out
+ if(reQHadrons->size()) // If something is still in memory then clean it up
+ {
+   for_each(reQHadrons->begin(),reQHadrons->end(),DeleteQHadron()); //CleanUp old QHadrons
+   reQHadrons->clear();
+ }
+ delete reQHadrons;     // All temporary QHadrons memory is wiped out
+ if(ExCount>=MaxExCnt)
+ {
+   G4cerr<<"*G4QEnv::Fragment:Exception.Target="<<theTargetPDG<<". Projectiles:"<<G4endl;
+   G4int nProj=theProjectiles.size();
+   if(nProj) for(G4int ipr=0; ipr<nProj; ipr++)
 	   {
-      G4QHadron* prH = theProjectiles[ipr];
-      G4cerr<<"G4QE::F:#"<<ipr<<",PDG/4M="<<prH->GetPDGCode()<<prH->Get4Momentum()<<G4endl;
-    }
+     G4QHadron* prH = theProjectiles[ipr];
+     G4cerr<<"G4QE::F:#"<<ipr<<",PDG/4M="<<prH->GetPDGCode()<<prH->Get4Momentum()<<G4endl;
+   }
 	   throw G4QException("G4QEnvironment::Fragment:This reaction caused the CHIPSException");
-    //G4Exception("G4QEnvironment::Fragment","027",FatalException,"GeneralCHIPSException");
-  }
-  // Put the postponed hadrons in the begining of theFragments and clean them up
-  G4int tmpS=intQHadrons.size();
-  if(tmpS)
-  {
-    tmpS=theFragments->size();
-    intQHadrons.resize(tmpS+intQHadrons.size()); // Resize intQHadrons
-    copy(theFragments->begin(), theFragments->end(), intQHadrons.end()-tmpS);
-    tmpS=intQHadrons.size();
-    theFragments->resize(tmpS); // Resize theFragments
-    copy(intQHadrons.begin(), intQHadrons.end(), theFragments->begin());
-    intQHadrons.clear();
-  }
-  return theFragments;
+   //G4Exception("G4QEnvironment::Fragment","027",FatalException,"GeneralCHIPSException");
+ }
+ // Put the postponed hadrons in the begining of theFragments and clean them up
+ G4int tmpS=intQHadrons.size();
+ if(tmpS)
+ {
+   tmpS=theFragments->size();
+   intQHadrons.resize(tmpS+intQHadrons.size()); // Resize intQHadrons
+   copy(theFragments->begin(), theFragments->end(), intQHadrons.end()-tmpS);
+   tmpS=intQHadrons.size();
+   theFragments->resize(tmpS); // Resize theFragments
+   copy(intQHadrons.begin(), intQHadrons.end(), theFragments->begin());
+   intQHadrons.clear();
+ }
+ return theFragments;
 } // End of the Fragmentation member function
 
 //The Final State Interaction Filter for the resulting output of ::HadronizeQEnvironment()
 G4QHadronVector* G4QEnvironment::FSInteraction()
 {//              ===============================
-  static const G4QPDGCode gQPDG(22);
-  static const G4QPDGCode pizQPDG(111);
-  static const G4QPDGCode pipQPDG(211);
-  static const G4QPDGCode pimQPDG(-211);
-  static const G4QPDGCode nQPDG(2112);
-  static const G4QPDGCode pQPDG(2212);
-  static const G4QPDGCode lQPDG(3122);
-  static const G4QPDGCode s0QPDG(3212);
-  //static const G4QPDGCode dQPDG(90001001);
-  static const G4QPDGCode tQPDG(90001002);
-  static const G4QPDGCode he3QPDG(90002001);
-  static const G4QPDGCode aQPDG(90002002);
-  static const G4QPDGCode a6QPDG(90002004);
-  static const G4QPDGCode be6QPDG(90004002);
-  //static const G4QPDGCode b7QPDG(90005002);
-  //static const G4QPDGCode he7QPDG(90002005);
-  static const G4QPDGCode c8QPDG(90006002);
-  static const G4QPDGCode a8QPDG(90002006);
-  static const G4QPDGCode c10QPDG(90006004);
-  static const G4QPDGCode o14QPDG(90008006);
-  static const G4QPDGCode o15QPDG(90008007);
-  static const G4QContent K0QC(1,0,0,0,0,1);
-  static const G4QContent KpQC(0,1,0,0,0,1);
-  static const G4double mPi  = G4QPDGCode(211).GetMass();
-  static const G4double mPi0 = G4QPDGCode(111).GetMass();
-  static const G4double mK   = G4QPDGCode(321).GetMass();
-  static const G4double mK0  = G4QPDGCode(311).GetMass();
-  static const G4double mNeut= G4QPDGCode(2112).GetMass();
-  static const G4double mProt= G4QPDGCode(2212).GetMass();
-  static const G4double mLamb= G4QPDGCode(3122).GetMass();
-  static const G4double mSigZ= G4QPDGCode(3212).GetMass();
-  static const G4double mSigM= G4QPDGCode(3112).GetMass();
-  static const G4double mSigP= G4QPDGCode(3222).GetMass();
-#ifdef pdebug
-  static const G4double mDeut= G4QPDGCode(2112).GetNuclMass(1,1,0);
-#endif
-  static const G4double mTrit= G4QPDGCode(2112).GetNuclMass(1,2,0);
-  static const G4double mHe3 = G4QPDGCode(2112).GetNuclMass(2,1,0);
-  static const G4double mAlph= G4QPDGCode(2112).GetNuclMass(2,2,0);
-  static const G4double mHe6 = G4QPDGCode(2112).GetNuclMass(2,4,0);
-  static const G4double mBe6 = G4QPDGCode(2112).GetNuclMass(4,2,0);
-  //static const G4double mHe7 = G4QPDGCode(2112).GetNuclMass(2,5,0);
-  //static const G4double mB7  = G4QPDGCode(2112).GetNuclMass(5,2,0);
-  static const G4double mHe8 = G4QPDGCode(2112).GetNuclMass(2,6,0);
-  static const G4double mC8  = G4QPDGCode(2112).GetNuclMass(6,2,0);
-  static const G4double mC10 = G4QPDGCode(2112).GetNuclMass(6,4,0);
-  static const G4double mO14 = G4QPDGCode(2112).GetNuclMass(8,6,0);
-  static const G4double mO15 = G4QPDGCode(2112).GetNuclMass(8,7,0);
-  static const G4double mKmP = mK+mProt;
-  static const G4double mKmN = mK+mNeut;
-  static const G4double mK0mP = mK0+mProt;
-  static const G4double mK0mN = mK0+mNeut;
-  static const G4QNucleus vacuum(90000000);
-  static const G4double eps=0.005;
-  ///////////////static const G4double third=1./3.;
-  ///////////////static const G4double nPDG=90000001;
-  G4int envA=theEnvironment.GetBaryonNumber();
-  ///////////////G4int envC=theEnvironment.GetCharge();
+ static const G4QPDGCode gQPDG(22);
+ static const G4QPDGCode pizQPDG(111);
+ static const G4QPDGCode pipQPDG(211);
+ static const G4QPDGCode pimQPDG(-211);
+ static const G4QPDGCode nQPDG(2112);
+ static const G4QPDGCode pQPDG(2212);
+ static const G4QPDGCode lQPDG(3122);
+ static const G4QPDGCode s0QPDG(3212);
+ //static const G4QPDGCode dQPDG(90001001);
+ static const G4QPDGCode tQPDG(90001002);
+ static const G4QPDGCode he3QPDG(90002001);
+ static const G4QPDGCode aQPDG(90002002);
+ static const G4QPDGCode a6QPDG(90002004);
+ static const G4QPDGCode be6QPDG(90004002);
+ //static const G4QPDGCode b7QPDG(90005002);
+ //static const G4QPDGCode he7QPDG(90002005);
+ static const G4QPDGCode c8QPDG(90006002);
+ static const G4QPDGCode a8QPDG(90002006);
+ static const G4QPDGCode c10QPDG(90006004);
+ static const G4QPDGCode o14QPDG(90008006);
+ static const G4QPDGCode o15QPDG(90008007);
+ static const G4QContent K0QC(1,0,0,0,0,1);
+ static const G4QContent KpQC(0,1,0,0,0,1);
+ static const G4double mPi  = G4QPDGCode(211).GetMass();
+ static const G4double mPi0 = G4QPDGCode(111).GetMass();
+ static const G4double mK   = G4QPDGCode(321).GetMass();
+ static const G4double mK0  = G4QPDGCode(311).GetMass();
+ static const G4double mNeut= G4QPDGCode(2112).GetMass();
+ static const G4double mProt= G4QPDGCode(2212).GetMass();
+ static const G4double mLamb= G4QPDGCode(3122).GetMass();
+ static const G4double mSigZ= G4QPDGCode(3212).GetMass();
+ static const G4double mSigM= G4QPDGCode(3112).GetMass();
+ static const G4double mSigP= G4QPDGCode(3222).GetMass();
+ static const G4double mDeut= G4QPDGCode(2112).GetNuclMass(1,1,0);
+ static const G4double mTrit= G4QPDGCode(2112).GetNuclMass(1,2,0);
+ static const G4double mHe3 = G4QPDGCode(2112).GetNuclMass(2,1,0);
+ static const G4double mAlph= G4QPDGCode(2112).GetNuclMass(2,2,0);
+ static const G4double mHe6 = G4QPDGCode(2112).GetNuclMass(2,4,0);
+ static const G4double mBe6 = G4QPDGCode(2112).GetNuclMass(4,2,0);
+ //static const G4double mHe7 = G4QPDGCode(2112).GetNuclMass(2,5,0);
+ //static const G4double mB7  = G4QPDGCode(2112).GetNuclMass(5,2,0);
+ static const G4double mHe8 = G4QPDGCode(2112).GetNuclMass(2,6,0);
+ static const G4double mC8  = G4QPDGCode(2112).GetNuclMass(6,2,0);
+ static const G4double mC10 = G4QPDGCode(2112).GetNuclMass(6,4,0);
+ static const G4double mO14 = G4QPDGCode(2112).GetNuclMass(8,6,0);
+ static const G4double mO15 = G4QPDGCode(2112).GetNuclMass(8,7,0);
+ static const G4double mKmP = mK+mProt;
+ static const G4double mKmN = mK+mNeut;
+ static const G4double mK0mP = mK0+mProt;
+ static const G4double mK0mN = mK0+mNeut;
+ static const G4QNucleus vacuum(90000000);
+ static const G4double eps=0.005;
+ ///////////////static const G4double third=1./3.;
+ ///////////////static const G4double nPDG=90000001;
+ G4int envA=theEnvironment.GetBaryonNumber();
+ ///////////////G4int envC=theEnvironment.GetCharge();
 #ifdef rdebug
-  G4int totInC=theEnvironment.GetZ();
-  G4LorentzVector totIn4M=theEnvironment.Get4Momentum();
-  G4cout<<"G4QEnvironment(G4QE)::FSInter(FSI): ***called*** envA="<<envA<<totIn4M<<G4endl;
-  G4int nQuasmons=theQuasmons.size();
-  for (G4int is=0; is<nQuasmons; is++) // Sum 4mom's of Quasmons for comparison
-  {
+ G4int totInC=theEnvironment.GetZ();
+ G4LorentzVector totIn4M=theEnvironment.Get4Momentum();
+ G4cout<<"G4QEnvironment(G4QE)::FSInter(FSI): ***called*** envA="<<envA<<totIn4M<<G4endl;
+ G4int nQuasmons=theQuasmons.size();
+ for (G4int is=0; is<nQuasmons; is++) // Sum 4mom's of Quasmons for comparison
+ {
 	   G4Quasmon*      pQ = theQuasmons[is];
-    G4LorentzVector Q4M= pQ->Get4Momentum();
-    G4cout<<"G4QE::FSI: Quasmon ("<<is<<") is added, 4M="<<Q4M<<G4endl;
-    totIn4M           += Q4M;
-    totInC            += pQ->GetQC().GetCharge();
-  } // End of TotInitial4Momentum summation LOOP over Quasmons
-  G4int nsHadr  = theQHadrons.size();        // Update the value of OUTPUT entries
-  if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
-  {
-    G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
-    if(!hsNF)                                        // Add only final hadrons
-    {
-      G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum();
-      G4cout<<"G4QE::FSI: Hadron ("<<jso<<") is added, 4M="<<hs4Mom<<G4endl;
-      totIn4M          += hs4Mom;
-      totInC           += theQHadrons[jso]->GetCharge();
-    }
-  }
-  G4cout<<"G4QE::FSI: The resulting 4Momentum="<<totIn4M<<G4endl;
+   G4LorentzVector Q4M= pQ->Get4Momentum();
+   G4cout<<"G4QE::FSI: Quasmon ("<<is<<") is added, 4M="<<Q4M<<G4endl;
+   totIn4M           += Q4M;
+   totInC            += pQ->GetQC().GetCharge();
+ } // End of TotInitial4Momentum summation LOOP over Quasmons
+ G4int nsHadr  = theQHadrons.size();        // Update the value of OUTPUT entries
+ if(nsHadr) for(G4int jso=0; jso<nsHadr; jso++)// LOOP over output hadrons 
+ {
+   G4int hsNF  = theQHadrons[jso]->GetNFragments(); // A#of secondary fragments
+   if(!hsNF)                                        // Add only final hadrons
+   {
+     G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum();
+     G4cout<<"G4QE::FSI: Hadron ("<<jso<<") is added, 4M="<<hs4Mom<<G4endl;
+     totIn4M          += hs4Mom;
+     totInC           += theQHadrons[jso]->GetCharge();
+   }
+ }
+ G4cout<<"G4QE::FSI: The resulting 4Momentum="<<totIn4M<<G4endl;
 #endif
 #ifdef chdebug
-  G4int fCharge=theEnvironment.GetCharge();
-  G4int fBaryoN=theEnvironment.GetA();
-  G4int nHad=theQHadrons.size();
-  if(nHad) for(G4int ih=0; ih<nHad; ih++)
-  {
-    fCharge+=theQHadrons[ih]->GetCharge();
-    fBaryoN+=theQHadrons[ih]->GetBaryonNumber();
-  }
-  G4int nQuas=theQuasmons.size();
-  if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
-  {
-    fCharge+=theQuasmons[iqs]->GetCharge();
-    fBaryoN+=theQuasmons[iqs]->GetBaryonNumber();
-  }
-  if(fCharge!=totCharge || fBaryoN!=totBaryoN)
-  {
-    G4cout<<"***G4QE::FSI:tC="<<totCharge<<",C="<<fCharge<<",tB="<<totBaryoN
-          <<",B="<<fBaryoN<<",E="<<theEnvironment<<G4endl;
-    if(nHad) for(G4int h=0; h<nHad; h++)
-    {
-      G4QHadron* cH = theQHadrons[h];
-      G4cout<<":G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
-    }
-    if(nQuas) for(G4int q=0; q<nQuas; q++)
-    {
-      G4Quasmon* cQ = theQuasmons[q];
-      G4cout<<":G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
-    }
-  }
-#endif
-  G4QHadronVector* theFragments = new G4QHadronVector;//Internal creation. User must delete
-  HadronizeQEnvironment();                // >>>>>>>>> Call the main fragmentation function
+ G4int fCharge=theEnvironment.GetCharge();
+ G4int fBaryoN=theEnvironment.GetA();
+ G4int nHad=theQHadrons.size();
+ if(nHad) for(G4int ih=0; ih<nHad; ih++)
+ {
+   fCharge+=theQHadrons[ih]->GetCharge();
+   fBaryoN+=theQHadrons[ih]->GetBaryonNumber();
+ }
+ G4int nQuas=theQuasmons.size();
+ if(nQuas)for(G4int iqs=0; iqs<nQuas; iqs++)
+ {
+   fCharge+=theQuasmons[iqs]->GetCharge();
+   fBaryoN+=theQuasmons[iqs]->GetBaryonNumber();
+ }
+ if(fCharge!=totCharge || fBaryoN!=totBaryoN)
+ {
+   G4cout<<"***G4QE::FSI:tC="<<totCharge<<",C="<<fCharge<<",tB="<<totBaryoN
+         <<",B="<<fBaryoN<<",E="<<theEnvironment<<G4endl;
+   if(nHad) for(G4int h=0; h<nHad; h++)
+   {
+     G4QHadron* cH = theQHadrons[h];
+     G4cout<<":G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
+   }
+   if(nQuas) for(G4int q=0; q<nQuas; q++)
+   {
+     G4Quasmon* cQ = theQuasmons[q];
+     G4cout<<":G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
+   }
+ }
+#endif
+ G4QHadronVector* theFragments = new G4QHadronVector;//Internal creation. User must delete
+ HadronizeQEnvironment();                // >>>>>>>>> Call the main fragmentation function
 #ifdef rdebug
-  G4int tC=totInC-theEnvironment.GetZ();  // Subtract theResidualEnvironCharge 
-  G4LorentzVector t4M=totIn4M;            // Compare with the total                 
-  G4cout<<"G4QEnv::FSI: Initial tot4M="<<t4M<<" to be subtracted"<<G4endl;
-  G4LorentzVector theEnv4m=theEnvironment.Get4Momentum(); // Environment 4Mom 
-  t4M-=theEnv4m;                          // Subtract the Environment 4-momentum    
-  G4cout<<"G4QEnv::FSI: Subtract Environ="<<theEnv4m<<theEnvironment<<G4endl;
-  for (G4int js=0; js<nQuasmons; js++)    // Subtract 4mom's of Quasmons (compare)
-  {                                       //                                        
+ G4int tC=totInC-theEnvironment.GetZ();  // Subtract theResidualEnvironCharge 
+ G4LorentzVector t4M=totIn4M;            // Compare with the total                 
+ G4cout<<"G4QEnv::FSI: Initial tot4M="<<t4M<<" to be subtracted"<<G4endl;
+ G4LorentzVector theEnv4m=theEnvironment.Get4Momentum(); // Environment 4Mom 
+ t4M-=theEnv4m;                          // Subtract the Environment 4-momentum    
+ G4cout<<"G4QEnv::FSI: Subtract Environ="<<theEnv4m<<theEnvironment<<G4endl;
+ for (G4int js=0; js<nQuasmons; js++)    // Subtract 4mom's of Quasmons (compare)
+ {                                       //                                        
 	   G4Quasmon*      prQ = theQuasmons[js];//                                  
-    if(prQ->GetStatus())                  // Subtract only if Quasmon is alive      
-    {                                     //                                        
-      G4LorentzVector Q4M= prQ->Get4Momentum(); // 4-momentum of the Quasmon
-      G4QContent qQC= prQ->GetQC();       //                                        
-      G4cout<<"G4QE::FSI: Subtract Quasmon("<<js<<"),4M="<<Q4M<<",QC="<<qQC<<G4endl;
-      t4M          -= Q4M;                // Subtract 4-momentum of the Quasmon        
-      tC           -= prQ->GetQC().GetCharge(); //                            
+   if(prQ->GetStatus())                  // Subtract only if Quasmon is alive      
+   {                                     //                                        
+     G4LorentzVector Q4M= prQ->Get4Momentum(); // 4-momentum of the Quasmon
+     G4QContent qQC= prQ->GetQC();       //                                        
+     G4cout<<"G4QE::FSI: Subtract Quasmon("<<js<<"),4M="<<Q4M<<",QC="<<qQC<<G4endl;
+     t4M          -= Q4M;                // Subtract 4-momentum of the Quasmon        
+     tC           -= prQ->GetQC().GetCharge(); //                            
 	   }                                     //                                        
-    else G4cout<<"G4QE::FSI:Dead Quasmon("<<js<<")="<<prQ->GetStatus()<<G4endl;
-  } // End of Quasmons4Momentum subtractions                                  
-  G4int nsbHadr=theQHadrons.size();       // Update the value of OUTPUT entries     
-  if(nsbHadr) for(G4int jpo=0; jpo<nsbHadr; jpo++)// LOOP over output hadrons 
-  {
-    G4int hsNF  = theQHadrons[jpo]->GetNFragments();// A#of out fragments     
-    if(!hsNF)                            // Subtract only final hadrons            
-    {                                    //                                        
-      G4LorentzVector hs4Mom = theQHadrons[jpo]->Get4Momentum(); // Output hadron
-      G4int hPDG = theQHadrons[jpo]->GetPDGCode(); // PDG of the Output Hadron
-      G4cout<<"G4QE::FSI: Subtract Hadron("<<jpo<<"), 4M="<<hs4Mom<<hPDG<<G4endl; 
-      t4M          -= hs4Mom;           //                                        
-      tC           -= theQHadrons[jpo]->GetCharge(); // Subtract charge of the OutHadron
+   else G4cout<<"G4QE::FSI:Dead Quasmon("<<js<<")="<<prQ->GetStatus()<<G4endl;
+ } // End of Quasmons4Momentum subtractions                                  
+ G4int nsbHadr=theQHadrons.size();       // Update the value of OUTPUT entries     
+ if(nsbHadr) for(G4int jpo=0; jpo<nsbHadr; jpo++)// LOOP over output hadrons 
+ {
+   G4int hsNF  = theQHadrons[jpo]->GetNFragments();// A#of out fragments     
+   if(!hsNF)                            // Subtract only final hadrons            
+   {                                    //                                        
+     G4LorentzVector hs4Mom = theQHadrons[jpo]->Get4Momentum(); // Output hadron
+     G4int hPDG = theQHadrons[jpo]->GetPDGCode(); // PDG of the Output Hadron
+     G4cout<<"G4QE::FSI: Subtract Hadron("<<jpo<<"), 4M="<<hs4Mom<<hPDG<<G4endl; 
+     t4M          -= hs4Mom;           //                                        
+     tC           -= theQHadrons[jpo]->GetCharge(); // Subtract charge of the OutHadron
 	   }                                   // End of the "FinalHadron" IF            
-  }                                     // End of the LOOP over output hadrons    
-  G4cout<<"G4QEnv::FSI:|||||4-MomCHECK||||d4M="<<t4M<<",dCharge="<<tC<<G4endl;
-#endif
-  unsigned nHadr=theQHadrons.size();
-  if(nHadr<=0)
-  {
-    G4cout<<"---Warning---G4QEnvironment::FSInteraction: nHadrons="<<nHadr<<G4endl;
-   	//throw G4QException("G4QEnvironment::FSInteraction: No hadrons in the output");
-    return theFragments;
-  }
-  G4int lHadr=theQHadrons[nHadr-1]->GetBaryonNumber();
-#ifdef pdebug
-  G4cout<<"G4QE::FSI:after HQE,nH="<<nHadr<<",lHBN="<<lHadr<<",E="<<theEnvironment<<G4endl;
-#endif
-  if(lHadr>1)                          // TheLastHadron is nucleus:try to decay/evap/cor it
-  {
-    G4QHadron* theLast = theQHadrons[nHadr-1];
-    G4QHadron* curHadr = new G4QHadron(theLast);
-    G4LorentzVector lh4M=curHadr->Get4Momentum(); // Actual mass of the last fragment
-    G4double lhM=lh4M.m();             // Actual mass of the last fragment
-    G4int lhPDG=curHadr->GetPDGCode();            // PDG code of the last fragment
-    G4double lhGSM=G4QPDGCode(lhPDG).GetMass();   // GroundStateMass of the last fragment
-#ifdef pdebug
-    G4cout<<"G4QE::FSI:lastHadr 4M/M="<<lh4M<<lhM<<",GSM="<<lhGSM<<",PDG="<<lhPDG<<G4endl;
-#endif
-    if(lhM>lhGSM+eps)                  // ==> Try to evaporate the residual nucleus
-    {
-      theQHadrons.pop_back();          // the last QHadron-Nucleus is excluded from OUTPUT
-      delete theLast;//*!!When kill,DON'T forget to delete theLastQHadron as an instance!*
-      EvaporateResidual(curHadr);      // Try to evaporate Hadr-Nucl (@@DecDib)(delete eq.)
-      nHadr=theQHadrons.size();
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:After nH="<<nHadr<<",PDG="<<curHadr->GetPDGCode()<<G4endl;
-#endif
-    }
-    else if(lhM<lhGSM-eps)             // ==> Try to make the HadronicSteck FSI correction
-    {
-      theQHadrons.pop_back();          //exclude LastHadronPointer from OUTPUT
-      delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-      G4Quasmon* quasH = new G4Quasmon(curHadr->GetQC(),lh4M); // Fake Quasmon ctreation
-      if(!CheckGroundState(quasH,true))// Try to correct with other hadrons
-      {
-        G4cout<<"---Warning---G4QEnv::FSI:Correction error LeaveAsItIs h4m="<<lh4M<<G4endl;
-        theQHadrons.push_back(curHadr);// Fill theResidualNucleus asItIs(delete equivalent)
+ }                                     // End of the LOOP over output hadrons    
+ G4cout<<"G4QEnv::FSI:|||||4-MomCHECK||||d4M="<<t4M<<",dCharge="<<tC<<G4endl;
+#endif
+ unsigned nHadr=theQHadrons.size();
+ if(nHadr<=0)
+ {
+   G4cout<<"---Warning---G4QEnvironment::FSInteraction: nHadrons="<<nHadr<<G4endl;
+  	//throw G4QException("G4QEnvironment::FSInteraction: No hadrons in the output");
+   return theFragments;
+ }
+ G4int lHadr=theQHadrons[nHadr-1]->GetBaryonNumber();
+#ifdef pdebug
+ G4cout<<"G4QE::FSI:after HQE,nH="<<nHadr<<",lHBN="<<lHadr<<",E="<<theEnvironment<<G4endl;
+#endif
+ if(lHadr>1)                          // TheLastHadron is nucleus:try to decay/evap/cor it
+ {
+   G4QHadron* theLast = theQHadrons[nHadr-1];
+   G4QHadron* curHadr = new G4QHadron(theLast);
+   G4LorentzVector lh4M=curHadr->Get4Momentum(); // Actual mass of the last fragment
+   G4double lhM=lh4M.m();             // Actual mass of the last fragment
+   G4int lhPDG=curHadr->GetPDGCode();            // PDG code of the last fragment
+   G4double lhGSM=G4QPDGCode(lhPDG).GetMass();   // GroundStateMass of the last fragment
+#ifdef pdebug
+   G4cout<<"G4QE::FSI:lastHadr 4M/M="<<lh4M<<lhM<<",GSM="<<lhGSM<<",PDG="<<lhPDG<<G4endl;
+#endif
+   if(lhM>lhGSM+eps)                  // ==> Try to evaporate the residual nucleus
+   {
+     theQHadrons.pop_back();          // the last QHadron-Nucleus is excluded from OUTPUT
+     delete theLast;//*!!When kill,DON'T forget to delete theLastQHadron as an instance!*
+     EvaporateResidual(curHadr);      // Try to evaporate Hadr-Nucl (@@DecDib)(delete eq.)
+     nHadr=theQHadrons.size();
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:After nH="<<nHadr<<",PDG="<<curHadr->GetPDGCode()<<G4endl;
+#endif
+   }
+   else if(lhM<lhGSM-eps)             // ==> Try to make the HadronicSteck FSI correction
+   {
+     theQHadrons.pop_back();          //exclude LastHadronPointer from OUTPUT
+     delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+     G4Quasmon* quasH = new G4Quasmon(curHadr->GetQC(),lh4M); // Fake Quasmon ctreation
+     if(!CheckGroundState(quasH,true))// Try to correct with other hadrons
+     {
+       G4cout<<"---Warning---G4QEnv::FSI:Correction error LeaveAsItIs h4m="<<lh4M<<G4endl;
+       theQHadrons.push_back(curHadr);// Fill theResidualNucleus asItIs(delete equivalent)
 	       //throw G4QException("G4QEnv::FSI: STOP at Correction Error");
-      }
-      else
-      {
-        delete curHadr;              // The intermediate curHadr isn't necessary any more
-        nHadr=theQHadrons.size();      // Update nHadr after successful correction
-      }
-      delete quasH;                    // Delete the temporary fake Quasmon
-    }
-    else delete curHadr;               // ==> Leave the nucleus as it is (close to the GSM)
-  }
-#ifdef pdebug
-  G4LorentzVector ccs4M(0.,0.,0.,0.);  // CurrentControlSum of outgoing Hadrons
-#endif
-  // *** Initial Charge Control Sum Calculation ***
-  G4int chContSum=0;                   // ChargeControlSum to keepTrack FSI transformations
-  G4int bnContSum=0;                   // BaryoNControlSum to keepTrack FSI transformations
-  if(nHadr)for(unsigned ich=0; ich<nHadr; ich++) if(!(theQHadrons[ich]->GetNFragments()))
-  {
-    chContSum+=theQHadrons[ich]->GetCharge();
-    bnContSum+=theQHadrons[ich]->GetBaryonNumber();
-  }
+     }
+     else
+     {
+       delete curHadr;              // The intermediate curHadr isn't necessary any more
+       nHadr=theQHadrons.size();      // Update nHadr after successful correction
+     }
+     delete quasH;                    // Delete the temporary fake Quasmon
+   }
+   else delete curHadr;               // ==> Leave the nucleus as it is (close to the GSM)
+ }
+#ifdef pdebug
+ G4LorentzVector ccs4M(0.,0.,0.,0.);  // CurrentControlSum of outgoing Hadrons
+#endif
+ // *** Initial Charge Control Sum Calculation ***
+ G4int chContSum=0;                   // ChargeControlSum to keepTrack FSI transformations
+ G4int bnContSum=0;                   // BaryoNControlSum to keepTrack FSI transformations
+ if(nHadr)for(unsigned ich=0; ich<nHadr; ich++) if(!(theQHadrons[ich]->GetNFragments()))
+ {
+   chContSum+=theQHadrons[ich]->GetCharge();
+   bnContSum+=theQHadrons[ich]->GetBaryonNumber();
+ }
 #ifdef chdebug
-  if(chContSum!=totCharge || bnContSum!=totBaryoN)
-  {
-    G4cout<<"***G4QE::Fr:(1)tC="<<totCharge<<",C="<<fCharge<<",tB="<<totBaryoN
-          <<",B="<<bnContSum<<",E="<<theEnvironment<<G4endl;
-    if(nHadr) for(unsigned h=0; h<nHadr; h++)
-    {
-      G4QHadron* cH = theQHadrons[h];
-      G4cout<<":G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
-    }
-    if(nQuas) for(G4int q=0; q<nQuas; q++)
-    {
-      G4Quasmon* cQ = theQuasmons[q];
-      G4cout<<":G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
-    }
-  }
-#endif
-  // ***
-  if(nHadr)for(unsigned ipo=0; ipo<theQHadrons.size(); ipo++)//FindBigestNuclFragm & DecayA
-  {
-    unsigned jpo=ipo;
-    nHadr=theQHadrons.size();
-    lHadr=theQHadrons[nHadr-1]->GetBaryonNumber();
-    G4QHadron* theCurr = theQHadrons[ipo];    // Pointer to the Current Hadron
-    G4int hBN  = theCurr->GetBaryonNumber();
-    G4int sBN  = theCurr->GetStrangeness();
-    G4int cBN  = theCurr->GetCharge();
-    G4int hPDG = theCurr->GetPDGCode();
-    G4LorentzVector h4Mom = theCurr->Get4Momentum();
-#ifdef pdebug
-    G4int hNF  = theCurr->GetNFragments();
-    G4cout<<"G4QE::FSI:h#"<<ipo<<",PDG="<<hPDG<<h4Mom<<",mGS="<<G4QPDGCode(hPDG).GetMass()
-          <<",F="<<hNF<<",nH="<<theQHadrons.size()<<G4endl;
-#endif
-    if(hBN>lHadr) // Current Hadron is the Biggest fragment -> Swap with theLast Hadron
+ if(chContSum!=totCharge || bnContSum!=totBaryoN)
+ {
+   G4cout<<"***G4QE::Fr:(1)tC="<<totCharge<<",C="<<fCharge<<",tB="<<totBaryoN
+         <<",B="<<bnContSum<<",E="<<theEnvironment<<G4endl;
+   if(nHadr) for(unsigned h=0; h<nHadr; h++)
+   {
+     G4QHadron* cH = theQHadrons[h];
+     G4cout<<":G4QE::HQ:h#"<<h<<",QC="<<cH->GetQC()<<",PDG="<<cH->GetPDGCode()<<G4endl;
+   }
+   if(nQuas) for(G4int q=0; q<nQuas; q++)
+   {
+     G4Quasmon* cQ = theQuasmons[q];
+     G4cout<<":G4QE::HQ:q#"<<q<<",C="<<cQ->GetCharge()<<",QCont="<<cQ->GetQC()<<G4endl;
+   }
+ }
+#endif
+ // ***
+ if(nHadr)for(unsigned ipo=0; ipo<theQHadrons.size(); ipo++)//FindBigestNuclFragm & DecayA
+ {
+   unsigned jpo=ipo;
+   nHadr=theQHadrons.size();
+   lHadr=theQHadrons[nHadr-1]->GetBaryonNumber();
+   G4QHadron* theCurr = theQHadrons[ipo];    // Pointer to the Current Hadron
+   G4int hBN  = theCurr->GetBaryonNumber();
+   G4int sBN  = theCurr->GetStrangeness();
+   G4int cBN  = theCurr->GetCharge();
+   G4int hPDG = theCurr->GetPDGCode();
+   G4LorentzVector h4Mom = theCurr->Get4Momentum();
+#ifdef pdebug
+   G4int hNF  = theCurr->GetNFragments();
+   G4cout<<"G4QE::FSI:h#"<<ipo<<",PDG="<<hPDG<<h4Mom<<",mGS="<<G4QPDGCode(hPDG).GetMass()
+         <<",F="<<hNF<<",nH="<<theQHadrons.size()<<G4endl;
+#endif
+   if(hBN>lHadr) // Current Hadron is the Biggest fragment -> Swap with theLast Hadron
 	   {
-      G4QHadron* theLast = theCurr;          // Prototype of the pointer to the Last Hadron
-      G4QHadron* curHadr = new G4QHadron(theCurr);// Remember CurrentHadron for evaporation
-      if(ipo+1<theQHadrons.size())          // If ipo<Last, swap theCurHadr and theLastHadr
-      {
-        theLast = theQHadrons[theQHadrons.size()-1];// Pointer to theLastHadron (ipo<Last)
-        G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-        if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
-        else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-        theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution
-      }
-      theQHadrons.pop_back();           // pointer to theLastHadron is excluded from OUTPUT
-      delete theLast; //*!!When kill,DON'T forget to delete theLastQHadron asAnInstance !!*
-      theQHadrons.push_back(curHadr);
-      nHadr=theQHadrons.size();
-      h4Mom = theCurr->Get4Momentum();
-      hBN  = theCurr->GetBaryonNumber();
-      cBN  = theCurr->GetCharge();
-      sBN  = theCurr->GetStrangeness();
-      hPDG = theCurr->GetPDGCode();
+     G4QHadron* theLast = theCurr;          // Prototype of the pointer to the Last Hadron
+     G4QHadron* curHadr = new G4QHadron(theCurr);// Remember CurrentHadron for evaporation
+     if(ipo+1<theQHadrons.size())          // If ipo<Last, swap theCurHadr and theLastHadr
+     {
+       theLast = theQHadrons[theQHadrons.size()-1];// Pointer to theLastHadron (ipo<Last)
+       G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+       if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
+       else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+       theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution
+     }
+     theQHadrons.pop_back();           // pointer to theLastHadron is excluded from OUTPUT
+     delete theLast; //*!!When kill,DON'T forget to delete theLastQHadron asAnInstance !!*
+     theQHadrons.push_back(curHadr);
+     nHadr=theQHadrons.size();
+     h4Mom = theCurr->Get4Momentum();
+     hBN  = theCurr->GetBaryonNumber();
+     cBN  = theCurr->GetCharge();
+     sBN  = theCurr->GetStrangeness();
+     hPDG = theCurr->GetPDGCode();
 	   }
-    if(hPDG==89002000||hPDG==89001001||hPDG==89000002)// 2pt dec. of anti-strange (3pt dec)
-    {
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:***ANTISTRANGE*** i="<<ipo<<",PDG="<<hPDG<<",BaryN="<<hBN<<G4endl;
-#endif
-      G4double hM=h4Mom.m(); // 89002000
-      G4double hMi=hM+eps;
-      G4QPDGCode fQPDG = pQPDG;
-      G4double fM = mProt;
-      G4int  sPDG = 321;
-      G4double sM = mK;
-      G4int  tPDG = 0;
-      G4double tM = 0.;
-      if(hPDG==89002000)                     // Use the prototypes above
+   if(hPDG==89002000||hPDG==89001001||hPDG==89000002)// 2pt dec. of anti-strange (3pt dec)
+   {
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:***ANTISTRANGE*** i="<<ipo<<",PDG="<<hPDG<<",BaryN="<<hBN<<G4endl;
+#endif
+     G4double hM=h4Mom.m(); // 89002000
+     G4double hMi=hM+eps;
+     G4QPDGCode fQPDG = pQPDG;
+     G4double fM = mProt;
+     G4int  sPDG = 321;
+     G4double sM = mK;
+     G4int  tPDG = 0;
+     G4double tM = 0.;
+     if(hPDG==89002000)                     // Use the prototypes above
 	     {
-        if(hMi<mKmP)
+       if(hMi<mKmP)
 		      {
-          if(hMi>mProt+mPi+mPi0)
+         if(hMi>mProt+mPi+mPi0)
 		        {
-            sPDG=211;
-            sM  =mPi;
-            tPDG=111;
-            tM  =mPi0;
-          }
-          else if(hMi>mProt+mPi) // @@ Does not conserve strangeness (Week decay)
+           sPDG=211;
+           sM  =mPi;
+           tPDG=111;
+           tM  =mPi0;
+         }
+         else if(hMi>mProt+mPi) // @@ Does not conserve strangeness (Week decay)
 		        {
 #ifdef pdebug
-            G4cout<<"**G4QE::FSI:ANTISTRANGE*++*STRANGENESS,PDG="<<hPDG<<",M="<<hM<<G4endl;
+           G4cout<<"**G4QE::FSI:ANTISTRANGE*++*STRANGENESS,PDG="<<hPDG<<",M="<<hM<<G4endl;
 #endif
-            sPDG=211;
-            sM  =mPi;
-          }
-          else sPDG=0;
-        }
-      }
+           sPDG=211;
+           sM  =mPi;
+         }
+         else sPDG=0;
+       }
+     }
 	     else if(hPDG==89001001)
 	     {
-        fQPDG= nQPDG;
-        fM   = mNeut;
-        sPDG = 321;
-        sM   = mK;
-        if(hMi>mK0mP&&G4UniformRand()>.5)
-        {
-          fQPDG= pQPDG;
-          fM   = mProt;
-          sPDG = 311;
-          sM   = mK0;
-        }
+       fQPDG= nQPDG;
+       fM   = mNeut;
+       sPDG = 321;
+       sM   = mK;
+       if(hMi>mK0mP&&G4UniformRand()>.5)
+       {
+         fQPDG= pQPDG;
+         fM   = mProt;
+         sPDG = 311;
+         sM   = mK0;
+       }
 		      else if(hMi<mKmN)
 		      {
-          if(hMi>mProt+mPi0+mPi0)
+         if(hMi>mProt+mPi0+mPi0)
 		        {
-            fQPDG= pQPDG;
-            fM   = mProt;
-            sPDG = 111;
-            sM   = mPi0;
-            tPDG = 111;
-            tM   = mPi0;
-            if(hMi>mNeut+mPi+mPi0&&G4UniformRand()>.67)
+           fQPDG= pQPDG;
+           fM   = mProt;
+           sPDG = 111;
+           sM   = mPi0;
+           tPDG = 111;
+           tM   = mPi0;
+           if(hMi>mNeut+mPi+mPi0&&G4UniformRand()>.67)
 		          {
-              fQPDG= nQPDG;
-              fM   = mNeut;
-              tPDG = 211;
-              tM   = mPi;
-            }
-            if(hMi>mProt+mPi+mPi&&G4UniformRand()>.5)
+             fQPDG= nQPDG;
+             fM   = mNeut;
+             tPDG = 211;
+             tM   = mPi;
+           }
+           if(hMi>mProt+mPi+mPi&&G4UniformRand()>.5)
 		          {
-              sPDG = 211;
-              sM   = mPi;
-              tPDG =-211;
-              tM   = mPi;
-            }
-          }
-          else if(hMi>mProt+mPi0) // @@ Does not conserve strangeness (Week decay)
+             sPDG = 211;
+             sM   = mPi;
+             tPDG =-211;
+             tM   = mPi;
+           }
+         }
+         else if(hMi>mProt+mPi0) // @@ Does not conserve strangeness (Week decay)
 		        {
 #ifdef pdebug
-            G4cout<<"**G4QE::FSI:*ANTISTRANGE*+*STRANGENESS*PDG="<<hPDG<<",M="<<hM<<G4endl;
+           G4cout<<"**G4QE::FSI:*ANTISTRANGE*+*STRANGENESS*PDG="<<hPDG<<",M="<<hM<<G4endl;
 #endif
-            fQPDG= pQPDG;
-            fM   = mProt;
-            sPDG = 111;
-            sM   = mPi0;
-          }
-          else sPDG=0;      // @@ Still can try to decay in gamma+neutron (electromagnetic)
-        }
-      }
+           fQPDG= pQPDG;
+           fM   = mProt;
+           sPDG = 111;
+           sM   = mPi0;
+         }
+         else sPDG=0;      // @@ Still can try to decay in gamma+neutron (electromagnetic)
+       }
+     }
 	     else if(hPDG==89000002)
 	     {
-        fQPDG= nQPDG;
-        fM   = mNeut;
-        sPDG = 311;
-        sM   = mK0;
-        if(hMi<mK0mN)
+       fQPDG= nQPDG;
+       fM   = mNeut;
+       sPDG = 311;
+       sM   = mK0;
+       if(hMi<mK0mN)
 		      {
-          if(hMi>mNeut+mPi+mPi)
+         if(hMi>mNeut+mPi+mPi)
 		        {
-            sPDG = 211;
-            sM   = mPi;
-            tPDG =-211;
-            tM   = mPi;
-          }
-          if(hMi>mProt+mPi+mPi0)
+           sPDG = 211;
+           sM   = mPi;
+           tPDG =-211;
+           tM   = mPi;
+         }
+         if(hMi>mProt+mPi+mPi0)
 		        {
-            fQPDG= pQPDG;
-            fM   = mProt;
-            sPDG = 111;
-            sM   = mPi0;
-            tPDG =-211;
-            tM   = mPi;
-          }
-          else if(hMi>mProt+mPi) // @@ Does not conserve strangeness (Week decay)
+           fQPDG= pQPDG;
+           fM   = mProt;
+           sPDG = 111;
+           sM   = mPi0;
+           tPDG =-211;
+           tM   = mPi;
+         }
+         else if(hMi>mProt+mPi) // @@ Does not conserve strangeness (Week decay)
 		        {
 #ifdef pdebug
-            G4cout<<"**G4QE::FSI:**ANTISTRANGE*0*STRANGENE**PDG="<<hPDG<<",M="<<hM<<G4endl;
+           G4cout<<"**G4QE::FSI:**ANTISTRANGE*0*STRANGENE**PDG="<<hPDG<<",M="<<hM<<G4endl;
 #endif
-            fQPDG= pQPDG;
-            fM   = mProt;
-            sPDG =-211;
-            sM   = mPi;
-          }
-          else sPDG=0;      // @@ Still can try to decay in gamma+neutron (electromagnetic)
-        }
+           fQPDG= pQPDG;
+           fM   = mProt;
+           sPDG =-211;
+           sM   = mPi;
+         }
+         else sPDG=0;      // @@ Still can try to decay in gamma+neutron (electromagnetic)
+       }
 	     }
-      if(!sPDG)
+     if(!sPDG)
 	     {
 #ifdef pdebug
-        G4cout<<"***G4QE::FSI:***ANTISTRANGE***CANN'T DECAY,PDG="<<hPDG<<",M="<<hM<<G4endl;
+       G4cout<<"***G4QE::FSI:***ANTISTRANGE***CANN'T DECAY,PDG="<<hPDG<<",M="<<hM<<G4endl;
 #endif
-      }
-      else if(!tPDG)           // 2 particle decay
-      {
-        G4bool fOK=true;
-        G4LorentzVector f4M(0.,0.,0.,fM);
-        G4LorentzVector s4M(0.,0.,0.,sM);
-        G4double sum=fM+sM;
-        if(fabs(hM-sum)<=eps)
+     }
+     else if(!tPDG)           // 2 particle decay
+     {
+       G4bool fOK=true;
+       G4LorentzVector f4M(0.,0.,0.,fM);
+       G4LorentzVector s4M(0.,0.,0.,sM);
+       G4double sum=fM+sM;
+       if(fabs(hM-sum)<=eps)
 		      {
-          f4M=h4Mom*(fM/sum);
-          s4M=h4Mom*(sM/sum);
+         f4M=h4Mom*(fM/sum);
+         s4M=h4Mom*(sM/sum);
 		      }
-        else if(hM<sum || !G4QHadron(h4Mom).DecayIn2(f4M,s4M))
+       else if(hM<sum || !G4QHadron(h4Mom).DecayIn2(f4M,s4M))
 	       {
-          G4cout<<"---Warning---G4QE::FSI: Still try(2),M="<<hM<<"->"<<fM<<"("<<fQPDG<<")+"
-                <<sM<<"("<<sPDG<<")="<<sum<<G4endl;
-          // Tipical scenario of recovery:
-          //             1. Check that the Environment is vacuum (must be), 
-          //if(theEnvironment==vacuum)
-          if(!theEnvironment.GetA())
-          {
-            //           2. Extract and put in qH, substitute by the Last and make quasH,
-            G4QHadron* theLast = theCurr;       // Prototype of thePointer to theLastHadron
-            G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
-            if(ipo+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
-            {
-              theLast = theQHadrons[theQHadrons.size()-1];//PointerTo theLastHadr(ipo<Last)
-              G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-              if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
-              else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-              theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-            }                                       //ELSE: it's already theLast -> no swap
-            theQHadrons.pop_back();                 //exclude LastHadronPointer from OUTPUT
-            delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-            G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-            //           3. Try to use other hadrons to recover this one (under Mass Shell)
-            if(!CheckGroundState(quasH,true))       // Try to correct with other hadrons
-            {
-              G4cout<<"---Warning---G4QEnv::FSI:Failed (2) LeaveAsItIs 4m="<<h4Mom<<G4endl;
-              theQHadrons.push_back(qH);            // Fill as it is (delete equivalent)
-            }
-            else
-            {
-              delete qH;
-              //         4. Decrement jpo index (copy of ipo) to find theBiggestNuclearFrag
-              jpo--;
-              //         5. Recheck the probuct, which replaced the Last and check others
-              nHadr=theQHadrons.size();
-            }
-            //           6. Delete the intermediate quasmon  
-            delete quasH;
-            //           7. Forbid the decay
-            fOK=false;
+         G4cout<<"---Warning---G4QE::FSI: Still try(2),M="<<hM<<"->"<<fM<<"("<<fQPDG<<")+"
+               <<sM<<"("<<sPDG<<")="<<sum<<G4endl;
+         // Tipical scenario of recovery:
+         //             1. Check that the Environment is vacuum (must be), 
+         //if(theEnvironment==vacuum)
+         if(!theEnvironment.GetA())
+         {
+           //           2. Extract and put in qH, substitute by the Last and make quasH,
+           G4QHadron* theLast = theCurr;       // Prototype of thePointer to theLastHadron
+           G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
+           if(ipo+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
+           {
+             theLast = theQHadrons[theQHadrons.size()-1];//PointerTo theLastHadr(ipo<Last)
+             G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+             if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
+             else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+             theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+           }                                       //ELSE: it's already theLast -> no swap
+           theQHadrons.pop_back();                 //exclude LastHadronPointer from OUTPUT
+           delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+           G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+           //           3. Try to use other hadrons to recover this one (under Mass Shell)
+           if(!CheckGroundState(quasH,true))       // Try to correct with other hadrons
+           {
+             G4cout<<"---Warning---G4QEnv::FSI:Failed (2) LeaveAsItIs 4m="<<h4Mom<<G4endl;
+             theQHadrons.push_back(qH);            // Fill as it is (delete equivalent)
+           }
+           else
+           {
+             delete qH;
+             //         4. Decrement jpo index (copy of ipo) to find theBiggestNuclearFrag
+             jpo--;
+             //         5. Recheck the probuct, which replaced the Last and check others
+             nHadr=theQHadrons.size();
+           }
+           //           6. Delete the intermediate quasmon  
+           delete quasH;
+           //           7. Forbid the decay
+           fOK=false;
 		        }
-          else
-          {
-            G4cerr<<"***G4QEnv::FSI: No recovery (1) Env="<<theEnvironment<<G4endl;
+         else
+         {
+           G4cerr<<"***G4QEnv::FSI: No recovery (1) Env="<<theEnvironment<<G4endl;
 	           throw G4QException("G4QEnv::FSI:ANTISTRANGE DecayIn2 did not succeed");
-          }
+         }
 	       }
-        if(fOK)
-        {
-          theQHadrons[ipo]->SetQPDG(fQPDG);
-          theQHadrons[ipo]->Set4Momentum(f4M);
-          G4QHadron* sH = new G4QHadron(sPDG,s4M);
-          theQHadrons.push_back(sH);               // (delete equivalent)
-        }
+       if(fOK)
+       {
+         theQHadrons[ipo]->SetQPDG(fQPDG);
+         theQHadrons[ipo]->Set4Momentum(f4M);
+         G4QHadron* sH = new G4QHadron(sPDG,s4M);
+         theQHadrons.push_back(sH);               // (delete equivalent)
+       }
 	     }
-      else
-      {
-        G4bool fOK=true;
-        G4LorentzVector f4M(0.,0.,0.,fM);
-        G4LorentzVector s4M(0.,0.,0.,sM);
-        G4LorentzVector t4M(0.,0.,0.,tM);
-        G4double sum=fM+sM+tM;
-        if(fabs(hM-sum)<=eps)
+     else
+     {
+       G4bool fOK=true;
+       G4LorentzVector f4M(0.,0.,0.,fM);
+       G4LorentzVector s4M(0.,0.,0.,sM);
+       G4LorentzVector t4M(0.,0.,0.,tM);
+       G4double sum=fM+sM+tM;
+       if(fabs(hM-sum)<=eps)
 		      {
-          f4M=h4Mom*(fM/sum);
-          s4M=h4Mom*(sM/sum);
-          t4M=h4Mom*(tM/sum);
+         f4M=h4Mom*(fM/sum);
+         s4M=h4Mom*(sM/sum);
+         t4M=h4Mom*(tM/sum);
 		      }
-        else if(hM<sum || !G4QHadron(h4Mom).DecayIn3(f4M,s4M,t4M))
+       else if(hM<sum || !G4QHadron(h4Mom).DecayIn3(f4M,s4M,t4M))
 	       {
-          G4cout<<"---Warning---G4QE::FSI: Still try(3), M"<<hM<<"->"<<fM<<"("<<fQPDG<<")+"
-                <<sM<<"("<<sPDG<<")+"<<tM<<"("<<tPDG<<")="<<sum<<G4endl;
-          //if(theEnvironment==vacuum)
-          if(!theEnvironment.GetA())
-          {
-            G4QHadron* theLast = theCurr;    // Prototype of the pointer to the Last Hadron
-            G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
-            if(ipo+1<theQHadrons.size())       // If ipo<Last, swap CurHadr and theLastHadr
-            {
-              theLast = theQHadrons[theQHadrons.size()-1];//Pointer to LastHadron(ipo<Last)
-              G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-              if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
-              else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-              theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-            }
-            theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-            delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-            G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-            if(!CheckGroundState(quasH,true))         // Try to correct by other hadrons
-            {
-              G4cout<<"---Warning---G4QEnv::FSI:Failed (3) LeaveAsItIs,4M="<<h4Mom<<G4endl;
-              theQHadrons.push_back(qH);              // Fill as it is (delete equivalent)
-            }
-            else
-            {
-              delete qH;
-              jpo--;
-              nHadr=theQHadrons.size();
-            }
-            delete quasH;
-            fOK=false;
+         G4cout<<"---Warning---G4QE::FSI: Still try(3), M"<<hM<<"->"<<fM<<"("<<fQPDG<<")+"
+               <<sM<<"("<<sPDG<<")+"<<tM<<"("<<tPDG<<")="<<sum<<G4endl;
+         //if(theEnvironment==vacuum)
+         if(!theEnvironment.GetA())
+         {
+           G4QHadron* theLast = theCurr;    // Prototype of the pointer to the Last Hadron
+           G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
+           if(ipo+1<theQHadrons.size())       // If ipo<Last, swap CurHadr and theLastHadr
+           {
+             theLast = theQHadrons[theQHadrons.size()-1];//Pointer to LastHadron(ipo<Last)
+             G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+             if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
+             else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+             theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+           }
+           theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+           delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+           G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+           if(!CheckGroundState(quasH,true))         // Try to correct by other hadrons
+           {
+             G4cout<<"---Warning---G4QEnv::FSI:Failed (3) LeaveAsItIs,4M="<<h4Mom<<G4endl;
+             theQHadrons.push_back(qH);              // Fill as it is (delete equivalent)
+           }
+           else
+           {
+             delete qH;
+             jpo--;
+             nHadr=theQHadrons.size();
+           }
+           delete quasH;
+           fOK=false;
 		        }
-          else
-          {
-            G4cout<<"***G4QEnv::FSI: No recovery (2) Env="<<theEnvironment<<G4endl;
+         else
+         {
+           G4cout<<"***G4QEnv::FSI: No recovery (2) Env="<<theEnvironment<<G4endl;
 	           throw G4QException("G4QEnv::FSI:ANTISTRANGE DecayIn3 did not succeed");
-          }
+         }
 	       }
-        if(fOK)
-        {
-          theQHadrons[ipo]->SetQPDG(fQPDG);
-          theQHadrons[ipo]->Set4Momentum(f4M);
-          G4QHadron* sH = new G4QHadron(sPDG,s4M);
-          theQHadrons.push_back(sH);               // (delete equivalent)
-          G4QHadron* tH = new G4QHadron(tPDG,t4M);
-          theQHadrons.push_back(tH);               // (delete equivalent)
-        }
+       if(fOK)
+       {
+         theQHadrons[ipo]->SetQPDG(fQPDG);
+         theQHadrons[ipo]->Set4Momentum(f4M);
+         G4QHadron* sH = new G4QHadron(sPDG,s4M);
+         theQHadrons.push_back(sH);               // (delete equivalent)
+         G4QHadron* tH = new G4QHadron(tPDG,t4M);
+         theQHadrons.push_back(tH);               // (delete equivalent)
+       }
 	     }
-      nHadr=theQHadrons.size();
+     nHadr=theQHadrons.size();
 	   }
-    else if(hPDG==89999003||hPDG==90002999||hPDG==90000003||hPDG==90003000||
-            hPDG==90999002||hPDG==91001999) // "3-particles decays of dibaryons and 3N"
-    {
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:***nD-/pD++/nnn/ppp***i="<<ipo<<",PDG="<<hPDG<<",A="<<hBN<<G4endl;
-#endif
-      G4double hM=h4Mom.m();
-      G4QPDGCode nuQPDG=nQPDG; // n,n,pi-
-      G4double nucM = mNeut;
-      G4int  barPDG = 2112;
-      G4double barM = mNeut;
-      G4int   tPDG  = -211;
-      G4double tM   = mPi;
-      if(hPDG==90002999)       // p,p,pi+
+   else if(hPDG==89999003||hPDG==90002999||hPDG==90000003||hPDG==90003000||
+           hPDG==90999002||hPDG==91001999) // "3-particles decays of dibaryons and 3N"
+   {
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:***nD-/pD++/nnn/ppp***i="<<ipo<<",PDG="<<hPDG<<",A="<<hBN<<G4endl;
+#endif
+     G4double hM=h4Mom.m();
+     G4QPDGCode nuQPDG=nQPDG; // n,n,pi-
+     G4double nucM = mNeut;
+     G4int  barPDG = 2112;
+     G4double barM = mNeut;
+     G4int   tPDG  = -211;
+     G4double tM   = mPi;
+     if(hPDG==90002999)       // p,p,pi+
 	     {
-        nuQPDG = pQPDG;        // Substitute p for the first n
-        nucM   = mProt;
-        barPDG = 2212;         // Substitute p for the second n
-        barM   = mProt;
-        tPDG   = 211;          // Substitute pi+ for the first pi-
+       nuQPDG = pQPDG;        // Substitute p for the first n
+       nucM   = mProt;
+       barPDG = 2212;         // Substitute p for the second n
+       barM   = mProt;
+       tPDG   = 211;          // Substitute pi+ for the first pi-
 	     }
-      else if(hPDG==90003000)  // 3p
+     else if(hPDG==90003000)  // 3p
 	     {
-        nuQPDG = pQPDG;        // Substitute p for the first n
-        nucM   = mProt;
-        barPDG = 2212;         // Substitute p for the second n
-        barM   = mProt;
-        tPDG   = 2212;         // Substitute p for pi-
-        tM     = mProt;
+       nuQPDG = pQPDG;        // Substitute p for the first n
+       nucM   = mProt;
+       barPDG = 2212;         // Substitute p for the second n
+       barM   = mProt;
+       tPDG   = 2212;         // Substitute p for pi-
+       tM     = mProt;
 	     }
-      else if(hPDG==90999002)  // n,Lambda,pi-/n,Sigma0,pi-/n,Sigma-,gamma(@@)
+     else if(hPDG==90999002)  // n,Lambda,pi-/n,Sigma0,pi-/n,Sigma-,gamma(@@)
 	     {
-        if(hM>mSigZ+mNeut+mPi)
+       if(hM>mSigZ+mNeut+mPi)
 		      {
-          G4double ddMass=hM-mPi;          // Free CM energy
-          G4double dd2=ddMass*ddMass;      // Squared free energy
-          G4double sma=mLamb+mNeut;        // Neutron+Lambda sum
-          G4double pr1=0.;                 // Prototype to avoid sqrt(-)
-          if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Neut+Lamb PS
-          sma=mNeut+mSigZ;                 // Neutron+Sigma0 sum
-          G4double smi=mSigZ-mNeut;        // Sigma0-Neutron difference
-          G4double pr2=pr1;                // Prototype of +N+S0 PS
-          if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
-          if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
-          {
-            barPDG = 3212;     // Substitute Sigma0 for the second n
-            barM   = mSigZ;
-          }
-          else
-          {
-            barPDG = 3122;     // Substitute Lambda for the second n
-            barM   = mLamb;
+         G4double ddMass=hM-mPi;          // Free CM energy
+         G4double dd2=ddMass*ddMass;      // Squared free energy
+         G4double sma=mLamb+mNeut;        // Neutron+Lambda sum
+         G4double pr1=0.;                 // Prototype to avoid sqrt(-)
+         if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Neut+Lamb PS
+         sma=mNeut+mSigZ;                 // Neutron+Sigma0 sum
+         G4double smi=mSigZ-mNeut;        // Sigma0-Neutron difference
+         G4double pr2=pr1;                // Prototype of +N+S0 PS
+         if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
+         if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
+         {
+           barPDG = 3212;     // Substitute Sigma0 for the second n
+           barM   = mSigZ;
+         }
+         else
+         {
+           barPDG = 3122;     // Substitute Lambda for the second n
+           barM   = mLamb;
 		        }
-        }
-        else if(hM>mLamb+mNeut+mPi)
-        {
-          barPDG = 3122;       // Substitute Lambda for the second n
-          barM   = mLamb;
-        }
-        else if(hM>mSigM+mNeut)// @@ Decay in 2
-        {
-          barPDG = 3112;       // Substitute Sigma- for the second n
-          barM   = mSigM;
-          tPDG   = 22;
-          tM     = 0;
-        }
+       }
+       else if(hM>mLamb+mNeut+mPi)
+       {
+         barPDG = 3122;       // Substitute Lambda for the second n
+         barM   = mLamb;
+       }
+       else if(hM>mSigM+mNeut)// @@ Decay in 2
+       {
+         barPDG = 3112;       // Substitute Sigma- for the second n
+         barM   = mSigM;
+         tPDG   = 22;
+         tM     = 0;
+       }
 	     }
-      else if(hPDG==91001999)  // p,Lambda,pi+/p,Sigma0,pi+/p,Sigma+,gamma(@@)
+     else if(hPDG==91001999)  // p,Lambda,pi+/p,Sigma0,pi+/p,Sigma+,gamma(@@)
 	     {
-        nuQPDG = pQPDG;        // Substitute p for the first n
-        nucM   = mProt;
-        tPDG   = 211;          // Substitute pi+ for the first pi-
-        if(hM>mSigZ+mProt+mPi)
+       nuQPDG = pQPDG;        // Substitute p for the first n
+       nucM   = mProt;
+       tPDG   = 211;          // Substitute pi+ for the first pi-
+       if(hM>mSigZ+mProt+mPi)
 		      {
-          G4double ddMass=hM-mPi;          // Free CM energy
-          G4double dd2=ddMass*ddMass;      // Squared free energy
-          G4double sma=mLamb+mProt;        // Lambda+Proton sum
-          G4double pr1=0.;                 // Prototype to avoid sqrt(-)
-          if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Prot PS
-          sma=mProt+mSigZ;                 // Proton+Sigma0 sum
-          G4double smi=mSigZ-mProt;        // Sigma0-Proton difference
-          G4double pr2=pr1;                // Prototype of +P+S0 PS
-          if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
-          if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
-          {
-            barPDG = 3212;     // Substitute Sigma0 for the second n
-            barM   = mSigZ;
-          }
-          else
-          {
-            barPDG = 3122;     // Substitute Lambda for the second n
-            barM   = mLamb;
+         G4double ddMass=hM-mPi;          // Free CM energy
+         G4double dd2=ddMass*ddMass;      // Squared free energy
+         G4double sma=mLamb+mProt;        // Lambda+Proton sum
+         G4double pr1=0.;                 // Prototype to avoid sqrt(-)
+         if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2); // Lamb+Prot PS
+         sma=mProt+mSigZ;                 // Proton+Sigma0 sum
+         G4double smi=mSigZ-mProt;        // Sigma0-Proton difference
+         G4double pr2=pr1;                // Prototype of +P+S0 PS
+         if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
+         if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
+         {
+           barPDG = 3212;     // Substitute Sigma0 for the second n
+           barM   = mSigZ;
+         }
+         else
+         {
+           barPDG = 3122;     // Substitute Lambda for the second n
+           barM   = mLamb;
 		        }
-        }
-        if(hM>mLamb+mProt+mPi)
-        {
-          barPDG = 3122;         // Substitute Lambda for the second n
-          barM   = mLamb;
-        }
-        else if(hM>mSigP+mProt)  // @@ Decay in 2
-        {
-          barPDG = 3222;         // Substitute Sigma- for the second n
-          barM   = mSigP;
-          tPDG   = 22;
-          tM     = 0;
-        }
+       }
+       if(hM>mLamb+mProt+mPi)
+       {
+         barPDG = 3122;         // Substitute Lambda for the second n
+         barM   = mLamb;
+       }
+       else if(hM>mSigP+mProt)  // @@ Decay in 2
+       {
+         barPDG = 3222;         // Substitute Sigma- for the second n
+         barM   = mSigP;
+         tPDG   = 22;
+         tM     = 0;
+       }
 	     }
-      else if(hPDG==90000003)  // 3n
+     else if(hPDG==90000003)  // 3n
 	     {
-        tPDG   = 2112;         // Substitute n for pi-
-        tM     = mNeut;
+       tPDG   = 2112;         // Substitute n for pi-
+       tM     = mNeut;
 	     }
-      G4bool fOK=true;
-      G4LorentzVector nu4M(0.,0.,0.,nucM);
-      G4LorentzVector ba4M(0.,0.,0.,barM);
-      G4LorentzVector pi4M(0.,0.,0.,tM);
-      G4double sum=nucM+barM+tM;
-      if(fabs(hM-sum)<=eps)
+     G4bool fOK=true;
+     G4LorentzVector nu4M(0.,0.,0.,nucM);
+     G4LorentzVector ba4M(0.,0.,0.,barM);
+     G4LorentzVector pi4M(0.,0.,0.,tM);
+     G4double sum=nucM+barM+tM;
+     if(fabs(hM-sum)<=eps)
 	     {
-        nu4M=h4Mom*(nucM/sum);
-        ba4M=h4Mom*(barM/sum);
-        pi4M=h4Mom*(tM/sum);
+       nu4M=h4Mom*(nucM/sum);
+       ba4M=h4Mom*(barM/sum);
+       pi4M=h4Mom*(tM/sum);
 	     }
-      if(hM<sum || !G4QHadron(h4Mom).DecayIn3(nu4M,ba4M,pi4M))
+     if(hM<sum || !G4QHadron(h4Mom).DecayIn3(nu4M,ba4M,pi4M))
 	     {
 #ifdef pdebug
-        G4int eA=theEnvironment.GetA();
-        G4cout<<"***G4QEnv::FSI:T="<<hPDG<<"("<<hM<<")-> N="<<nuQPDG<<"(M="<<nucM<<") + B="
-              <<barPDG<<"("<<barM<<")+N/pi="<<tPDG<<"("<<tM<<")="<<sum<<", A="<<eA<<G4endl;
+       G4int eA=theEnvironment.GetA();
+       G4cout<<"***G4QEnv::FSI:T="<<hPDG<<"("<<hM<<")-> N="<<nuQPDG<<"(M="<<nucM<<") + B="
+             <<barPDG<<"("<<barM<<")+N/pi="<<tPDG<<"("<<tM<<")="<<sum<<", A="<<eA<<G4endl;
 #endif
-        //if(!eA)
-        //{
-          G4QHadron* theLast = theCurr;        // Prototype of the pointer to theLastHadron
-          G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
+       //if(!eA)
+       //{
+         G4QHadron* theLast = theCurr;        // Prototype of the pointer to theLastHadron
+         G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
 #ifdef pdebug
-          G4cout<<"***G4QE::FSI:#"<<ipo<<",4MQC="<<qH->Get4Momentum()<<qH->GetQC()<<G4endl;
+         G4cout<<"***G4QE::FSI:#"<<ipo<<",4MQC="<<qH->Get4Momentum()<<qH->GetQC()<<G4endl;
 #endif
-          if(ipo+1<theQHadrons.size())         // If ipo<Last, swap CurHadr and theLastHadr
-          {
-            G4int nhd1=theQHadrons.size()-1;
-            theLast = theQHadrons[nhd1];// Pointer to theLastHadron (ipo<L)
-            G4LorentzVector l4M=theLast->Get4Momentum();
-            G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-            if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
-            else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+         if(ipo+1<theQHadrons.size())         // If ipo<Last, swap CurHadr and theLastHadr
+         {
+           G4int nhd1=theQHadrons.size()-1;
+           theLast = theQHadrons[nhd1];// Pointer to theLastHadron (ipo<L)
+           G4LorentzVector l4M=theLast->Get4Momentum();
+           G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+           if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
+           else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
 #ifdef pdebug
 			         G4cout<<"---Warning---G4QE::FSI:l#"<<nhd1<<",4M="<<l4M<<",PDG="<<lQP<<G4endl;
 #endif
-            theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-          }
-          theQHadrons.pop_back();              // exclude theLastHadron pointer from OUTPUT
-          delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-          G4QContent cqQC=qH->GetQC();
-          G4LorentzVector tqLV=qH->Get4Momentum();
-          G4Quasmon* quasH = new G4Quasmon(cqQC,tqLV);//Create fakeQuasm
-          if(!CheckGroundState(quasH,true))         // Try to correct by other hadrons
-          {
+           theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+         }
+         theQHadrons.pop_back();              // exclude theLastHadron pointer from OUTPUT
+         delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+         G4QContent cqQC=qH->GetQC();
+         G4LorentzVector tqLV=qH->Get4Momentum();
+         G4Quasmon* quasH = new G4Quasmon(cqQC,tqLV);//Create fakeQuasm
+         if(!CheckGroundState(quasH,true))         // Try to correct by other hadrons
+         {
 #ifdef chdebug
-            G4cout<<"-W-G4QE::FSI:E="<<theEnvironment<<",Q="<<cqQC<<tqLV<<tqLV.m()<<G4endl;
-#endif
-            theQHadrons.push_back(qH);              // Fill as it is (delete equivalent)
-          }
-          else
-          {
-            delete qH;
-            jpo--;
-            nHadr=theQHadrons.size();
-          }
-          delete quasH;
-          fOK=false;
+           G4cout<<"-W-G4QE::FSI:E="<<theEnvironment<<",Q="<<cqQC<<tqLV<<tqLV.m()<<G4endl;
+#endif
+           theQHadrons.push_back(qH);              // Fill as it is (delete equivalent)
+         }
+         else
+         {
+           delete qH;
+           jpo--;
+           nHadr=theQHadrons.size();
+         }
+         delete quasH;
+         fOK=false;
 		      //}
 		      //else
 		      //{
-        //  G4cerr<<"***G4QEnv::FSI:NoRec(3)E="<<theEnvironment<<eA<<",PDG="<<hPDG<<G4endl;
+       //  G4cerr<<"***G4QEnv::FSI:NoRec(3)E="<<theEnvironment<<eA<<",PDG="<<hPDG<<G4endl;
 	       //  throw G4QException("G4QEnv::FSI:ISO-dibaryon or 3n/3p DecayIn3 error");
 		    //}
 	     }
-      if(fOK)
-      {
-        theQHadrons[ipo]->SetQPDG(nuQPDG);
-        theQHadrons[ipo]->Set4Momentum(nu4M);
-        G4QHadron* baH = new G4QHadron(barPDG,ba4M);
-        theQHadrons.push_back(baH);               // (delete equivalent)
-        G4QHadron* piH = new G4QHadron(tPDG,pi4M);
-        theQHadrons.push_back(piH);               // (delete equivalent)
-        nHadr=theQHadrons.size();
-      }
+     if(fOK)
+     {
+       theQHadrons[ipo]->SetQPDG(nuQPDG);
+       theQHadrons[ipo]->Set4Momentum(nu4M);
+       G4QHadron* baH = new G4QHadron(barPDG,ba4M);
+       theQHadrons.push_back(baH);               // (delete equivalent)
+       G4QHadron* piH = new G4QHadron(tPDG,pi4M);
+       theQHadrons.push_back(piH);               // (delete equivalent)
+       nHadr=theQHadrons.size();
+     }
 	   }
-    else if(hBN>1 && !sBN && (cBN<0 || cBN>hBN)) // "nN+mD- or nP+mD++ decay"
-    {
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:nNmD-/nPmD++ #"<<ipo<<",P="<<hPDG<<",B="<<hBN<<",C="<<cBN<<G4endl;
-#endif
-      G4double hM=h4Mom.m();
-      G4QPDGCode nuQPDG=nQPDG; // "(n+m)*N,m*pi-" case === Default
-      G4double nucM = mNeut;
-      G4int  barPDG = 2112;
-      G4double barM = mNeut;
-      G4int    nN   = hBN-1;   // a#of baryons - 1
-      G4int   tPDG  = -211;
-      G4double tM   = mPi;
-      G4int    nPi  = -cBN;    // a#of Pi-'s
-      if( cBN>hBN)             // reinitialization for the "(n+m)*P,m*pi+" case
+   else if(hBN>1 && !sBN && (cBN<0 || cBN>hBN)) // "nN+mD- or nP+mD++ decay"
+   {
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:nNmD-/nPmD++ #"<<ipo<<",P="<<hPDG<<",B="<<hBN<<",C="<<cBN<<G4endl;
+#endif
+     G4double hM=h4Mom.m();
+     G4QPDGCode nuQPDG=nQPDG; // "(n+m)*N,m*pi-" case === Default
+     G4double nucM = mNeut;
+     G4int  barPDG = 2112;
+     G4double barM = mNeut;
+     G4int    nN   = hBN-1;   // a#of baryons - 1
+     G4int   tPDG  = -211;
+     G4double tM   = mPi;
+     G4int    nPi  = -cBN;    // a#of Pi-'s
+     if( cBN>hBN)             // reinitialization for the "(n+m)*P,m*pi+" case
 	     {
-        nuQPDG = pQPDG;        // Substitute p for the first n
-        nucM   = mProt;
-        barPDG = 2212;         // Substitute p for the second n
-        barM   = mProt;
-        tPDG   = 211;          // Substitute pi+ for the first pi-
-        nPi    = cBN-hBN;      // a#0f Pi+'s
-      }
-      if(nPi>1)   tM*=nPi;
-      if(nN >1) barM*=nN;
-      G4bool fOK=true;
-      G4LorentzVector nu4M(0.,0.,0.,nucM);
-      G4LorentzVector ba4M(0.,0.,0.,barM);
-      G4LorentzVector pi4M(0.,0.,0.,tM);
-      G4double sum=nucM+barM+tM;
-      if(fabs(hM-sum)<=eps)
+       nuQPDG = pQPDG;        // Substitute p for the first n
+       nucM   = mProt;
+       barPDG = 2212;         // Substitute p for the second n
+       barM   = mProt;
+       tPDG   = 211;          // Substitute pi+ for the first pi-
+       nPi    = cBN-hBN;      // a#0f Pi+'s
+     }
+     if(nPi>1)   tM*=nPi;
+     if(nN >1) barM*=nN;
+     G4bool fOK=true;
+     G4LorentzVector nu4M(0.,0.,0.,nucM);
+     G4LorentzVector ba4M(0.,0.,0.,barM);
+     G4LorentzVector pi4M(0.,0.,0.,tM);
+     G4double sum=nucM+barM+tM;
+     if(fabs(hM-sum)<=eps)
 	     {
-        nu4M=h4Mom*(nucM/sum);
-        ba4M=h4Mom*(barM/sum);
-        pi4M=h4Mom*(tM/sum);
+       nu4M=h4Mom*(nucM/sum);
+       ba4M=h4Mom*(barM/sum);
+       pi4M=h4Mom*(tM/sum);
 	     }
-      if(hM<sum || !G4QHadron(h4Mom).DecayIn3(nu4M,ba4M,pi4M))
+     if(hM<sum || !G4QHadron(h4Mom).DecayIn3(nu4M,ba4M,pi4M))
 	     {
 #ifdef pdebug
-        G4cout<<"***G4QEnv::FSI:IsN M="<<hM<<","<<hPDG<<"->N="<<nuQPDG<<"(M="<<nucM<<")+"
-              <<nN<<"*B="<<barPDG<<"(M="<<barM<<")+"<<nPi<<"*pi="<<tPDG<<"(M="<<tM<<")="
-              <<nucM+barM+tM<<G4endl;
-        G4cout<<"***G4QEnv::FSI:IsN BaryN="<<hBN<<",Charge="<<cBN<<",Stran="<<sBN<<G4endl;
-#endif
-        if(!theEnvironment.GetA())           // Emergency recovery
-        {
-          G4QHadron* theLast = theCurr;      // Prototype of the pointer to the Last Hadron
-          G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
-          if(ipo+1<theQHadrons.size())       // If ipo<Last, swap CurHadr and theLastHadr
-          {
-            theLast = theQHadrons[theQHadrons.size()-1];// Ptr to theLastHadron (ipo<Last)
-            G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-            if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
-            else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-            theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-          }
-          theQHadrons.pop_back();            // exclude theLastHadron pointer from OUTPUT
-          delete theLast;//*!! When killing, DON'T forget to delete the last QHadron !!*
-          G4QContent cqQC=qH->GetQC();
-          G4LorentzVector cq4M=qH->Get4Momentum();
-          G4Quasmon* quasH = new G4Quasmon(cqQC,cq4M);// Create fakeQuasmon for the Last
-          if(!CheckGroundState(quasH,true))         // Try to correct by other hadrons
-          {
-            G4cout<<"---Warning---G4QEnv::FSI:IN Failed, FillAsItIs: "<<cqQC<<cq4M<<G4endl;
-            theQHadrons.push_back(qH);              // Fill as it is (delete equivalent)
-          }
-          else
-          {
-            delete qH;
-            jpo--;
-            nHadr=theQHadrons.size();
-          }
-          delete quasH;
-          fOK=false;
+       G4cout<<"***G4QEnv::FSI:IsN M="<<hM<<","<<hPDG<<"->N="<<nuQPDG<<"(M="<<nucM<<")+"
+             <<nN<<"*B="<<barPDG<<"(M="<<barM<<")+"<<nPi<<"*pi="<<tPDG<<"(M="<<tM<<")="
+             <<nucM+barM+tM<<G4endl;
+       G4cout<<"***G4QEnv::FSI:IsN BaryN="<<hBN<<",Charge="<<cBN<<",Stran="<<sBN<<G4endl;
+#endif
+       if(!theEnvironment.GetA())           // Emergency recovery
+       {
+         G4QHadron* theLast = theCurr;      // Prototype of the pointer to the Last Hadron
+         G4QHadron* qH = new G4QHadron(theCurr); // Copy of the Current Hadron
+         if(ipo+1<theQHadrons.size())       // If ipo<Last, swap CurHadr and theLastHadr
+         {
+           theLast = theQHadrons[theQHadrons.size()-1];// Ptr to theLastHadron (ipo<Last)
+           G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+           if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of LastHadr
+           else theCurr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+           theCurr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+         }
+         theQHadrons.pop_back();            // exclude theLastHadron pointer from OUTPUT
+         delete theLast;//*!! When killing, DON'T forget to delete the last QHadron !!*
+         G4QContent cqQC=qH->GetQC();
+         G4LorentzVector cq4M=qH->Get4Momentum();
+         G4Quasmon* quasH = new G4Quasmon(cqQC,cq4M);// Create fakeQuasmon for the Last
+         if(!CheckGroundState(quasH,true))         // Try to correct by other hadrons
+         {
+           G4cout<<"---Warning---G4QEnv::FSI:IN Failed, FillAsItIs: "<<cqQC<<cq4M<<G4endl;
+           theQHadrons.push_back(qH);              // Fill as it is (delete equivalent)
+         }
+         else
+         {
+           delete qH;
+           jpo--;
+           nHadr=theQHadrons.size();
+         }
+         delete quasH;
+         fOK=false;
 		      }
-        else
-        {
-          G4cout<<"***G4QEnv::FSI:IN,NoRec(4) Env="<<theEnvironment<<",PDG="<<hPDG<<G4endl;
+       else
+       {
+         G4cout<<"***G4QEnv::FSI:IN,NoRec(4) Env="<<theEnvironment<<",PDG="<<hPDG<<G4endl;
 	         throw G4QException("G4QEnv::FSI:IN Multy ISO-dibaryon DecayIn3 did not succeed");
-        }
+       }
 	     }
-      if(fOK)
-      {
-        theQHadrons[ipo]->SetQPDG(nuQPDG);
-        theQHadrons[ipo]->Set4Momentum(nu4M);
-        if(nN>1) ba4M=ba4M/nN;
-        for(G4int ib=0; ib<nN; ib++)
-        {
-          G4QHadron* baH = new G4QHadron(barPDG,ba4M);
-          theQHadrons.push_back(baH);               // (delete equivalent)
-        }
-        if(nPi>1) pi4M=pi4M/nPi;
-        for(G4int im=0; im<nPi; im++)
-        {
-          G4QHadron* piH = new G4QHadron(tPDG,pi4M);
-          theQHadrons.push_back(piH);               // (delete equivalent)
-        }
-        nHadr=theQHadrons.size();
-      }
-    }
-#ifdef pdebug
-    G4int           hNFrag= theQHadrons[ipo]->GetNFragments(); //Recover after swapping
-    G4QContent      hQC   = theQHadrons[ipo]->GetQC();         // ...
-    hPDG                  = theQHadrons[ipo]->GetPDGCode();    // ...
-    h4Mom                 = theQHadrons[ipo]->Get4Momentum();  // ...
-    ccs4M+=h4Mom;                                              // Calculate CurSum of Hadrs
-    G4cout<<"G4QE::FSI:#"<<ipo<<": h="<<hPDG<<hQC<<",h4M="<<h4Mom<<h4Mom.m()<<",hNF="
-          <<hNFrag<<G4endl;
-#endif
-    ipo=jpo;            // Take into account the roll back in case of the Last substitution
-  }
-#ifdef pdebug
-  G4cout<<"G4QE::FSI: >>>CurrentControlSumOf4MomOfHadrons="<<ccs4M<<G4endl;
-#endif
-  nHadr=theQHadrons.size();
+     if(fOK)
+     {
+       theQHadrons[ipo]->SetQPDG(nuQPDG);
+       theQHadrons[ipo]->Set4Momentum(nu4M);
+       if(nN>1) ba4M=ba4M/nN;
+       for(G4int ib=0; ib<nN; ib++)
+       {
+         G4QHadron* baH = new G4QHadron(barPDG,ba4M);
+         theQHadrons.push_back(baH);               // (delete equivalent)
+       }
+       if(nPi>1) pi4M=pi4M/nPi;
+       for(G4int im=0; im<nPi; im++)
+       {
+         G4QHadron* piH = new G4QHadron(tPDG,pi4M);
+         theQHadrons.push_back(piH);               // (delete equivalent)
+       }
+       nHadr=theQHadrons.size();
+     }
+   }
+#ifdef pdebug
+   G4int           hNFrag= theQHadrons[ipo]->GetNFragments(); //Recover after swapping
+   G4QContent      hQC   = theQHadrons[ipo]->GetQC();         // ...
+   hPDG                  = theQHadrons[ipo]->GetPDGCode();    // ...
+   h4Mom                 = theQHadrons[ipo]->Get4Momentum();  // ...
+   ccs4M+=h4Mom;                                              // Calculate CurSum of Hadrs
+   G4cout<<"G4QE::FSI:#"<<ipo<<": h="<<hPDG<<hQC<<",h4M="<<h4Mom<<h4Mom.m()<<",hNF="
+         <<hNFrag<<G4endl;
+#endif
+   ipo=jpo;            // Take into account the roll back in case of the Last substitution
+ }
+#ifdef pdebug
+ G4cout<<"G4QE::FSI: >>>CurrentControlSumOf4MomOfHadrons="<<ccs4M<<G4endl;
+#endif
+ nHadr=theQHadrons.size();
 #ifdef chdebug
-  // *** (1) Charge Control Sum Calculation for the Charge Conservation Check ***
-  G4int ccContSum=0;                   // Intermediate ChargeControlSum 
-  G4int cbContSum=0;                   // Intermediate BaryonNumberControlSum 
-  if(nHadr)for(unsigned ic1=0; ic1<nHadr; ic1++) if(!(theQHadrons[ic1]->GetNFragments()))
-  {
-    ccContSum+=theQHadrons[ic1]->GetCharge();
-    cbContSum+=theQHadrons[ic1]->GetBaryonNumber();
-  }
-  if(ccContSum-chContSum || cbContSum-bnContSum)
-  {
-    G4cout<<"*G4QE::FSI:(1) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum<<G4endl;
-    //throw G4QException("G4QEnvironment::FSInteract: (1) Charge is not conserved");
-  }
-  // ***
-#endif
-  G4double p2cut=250000.;        // 250000=(2*p_Ferm)**2
-  if(envA>0) p2cut/=envA*envA;
-  //G4double p2cut2=0.;          //cut for the alpha creation
-  //
-  G4int bfCountM=3;
-  if(envA>10) bfCountM*=(envA-1)/3;
-  G4bool bfAct = true;
-  G4int bfCount= 0;
-  G4LorentzVector tmp4Mom=tot4Mom;
-  G4LorentzVector postp4M(0.,0.,0.,0.);
-  G4int nPost=intQHadrons.size();
-  if(nPost) for(G4int psp=0; psp<nPost; psp++)
-    if(!(intQHadrons[psp]->GetNFragments())) postp4M+=intQHadrons[psp]->Get4Momentum();
-  while(bfAct&&bfCount<bfCountM) // "Infinite" LOOP of the ThermoNuclearBackFusion
-  {
-    tot4Mom=tmp4Mom-postp4M;     // Prepare tot4Mom for the "En/Mom conservation" reduction
-    bfAct=false;
-    bfCount++;
-    nHadr=theQHadrons.size();
-    if(nHadr) for(unsigned hadron=0; hadron<theQHadrons.size(); hadron++)// BackFusion LOOP
-    {
-      G4QHadron* curHadr = theQHadrons[hadron]; // Get a pointer to the current Hadron
-      G4int         hPDG = curHadr->GetPDGCode();
-      G4QPDGCode    hQPDG(hPDG);
-      G4double      hGSM = hQPDG.GetMass();     // Ground State Mass of the first fragment
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:LOOP START,h#"<<hadron<<curHadr->Get4Momentum()<<hPDG<<G4endl;
-#endif
-      if(hPDG==89999003||hPDG==90002999)
-      {
-        G4cout<<"---WARNING---G4QE::FSI:**nD-/pD++**(3),PDG="<<hPDG<<" CORRECTION"<<G4endl;
-        G4LorentzVector h4Mom=curHadr->Get4Momentum();
-        G4double      hM=h4Mom.m();
-        G4QPDGCode fQPDG=nQPDG;
-        G4double     fM =mNeut;
-        G4int      sPDG =2112;
-        G4double     sM =mNeut;
-        G4int      tPDG =-211;
-        G4double     tM =mPi;
-        if(hPDG==90002999)
+ // *** (1) Charge Control Sum Calculation for the Charge Conservation Check ***
+ G4int ccContSum=0;                   // Intermediate ChargeControlSum 
+ G4int cbContSum=0;                   // Intermediate BaryonNumberControlSum 
+ if(nHadr)for(unsigned ic1=0; ic1<nHadr; ic1++) if(!(theQHadrons[ic1]->GetNFragments()))
+ {
+   ccContSum+=theQHadrons[ic1]->GetCharge();
+   cbContSum+=theQHadrons[ic1]->GetBaryonNumber();
+ }
+ if(ccContSum-chContSum || cbContSum-bnContSum)
+ {
+   G4cout<<"*G4QE::FSI:(1) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum<<G4endl;
+   //throw G4QException("G4QEnvironment::FSInteract: (1) Charge is not conserved");
+ }
+ // ***
+#endif
+ G4double p2cut=250000.;        // 250000=(2*p_Ferm)**2
+ if(envA>0) p2cut/=envA*envA;
+ //G4double p2cut2=0.;          //cut for the alpha creation
+ //
+ G4int bfCountM=3;
+ if(envA>10) bfCountM*=(envA-1)/3;
+ G4bool bfAct = true;
+ G4int bfCount= 0;
+ G4LorentzVector tmp4Mom=tot4Mom;
+ G4LorentzVector postp4M(0.,0.,0.,0.);
+ G4int nPost=intQHadrons.size();
+ if(nPost) for(G4int psp=0; psp<nPost; psp++)
+   if(!(intQHadrons[psp]->GetNFragments())) postp4M+=intQHadrons[psp]->Get4Momentum();
+ while(bfAct&&bfCount<bfCountM) // "Infinite" LOOP of the ThermoNuclearBackFusion
+ {
+   tot4Mom=tmp4Mom-postp4M;     // Prepare tot4Mom for the "En/Mom conservation" reduction
+   bfAct=false;
+   bfCount++;
+   nHadr=theQHadrons.size();
+   if(nHadr) for(unsigned hadron=0; hadron<theQHadrons.size(); hadron++)// BackFusion LOOP
+   {
+     G4QHadron* curHadr = theQHadrons[hadron]; // Get a pointer to the current Hadron
+     G4int         hPDG = curHadr->GetPDGCode();
+     G4QPDGCode    hQPDG(hPDG);
+     G4double      hGSM = hQPDG.GetMass();     // Ground State Mass of the first fragment
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:LOOP START,h#"<<hadron<<curHadr->Get4Momentum()<<hPDG<<G4endl;
+#endif
+     if(hPDG==89999003||hPDG==90002999)
+     {
+       G4cout<<"---WARNING---G4QE::FSI:**nD-/pD++**(3),PDG="<<hPDG<<" CORRECTION"<<G4endl;
+       G4LorentzVector h4Mom=curHadr->Get4Momentum();
+       G4double      hM=h4Mom.m();
+       G4QPDGCode fQPDG=nQPDG;
+       G4double     fM =mNeut;
+       G4int      sPDG =2112;
+       G4double     sM =mNeut;
+       G4int      tPDG =-211;
+       G4double     tM =mPi;
+       if(hPDG==90002999)
 		      {
-          fQPDG=pQPDG;
-          fM   =mProt;
-          sPDG =2212;
-          sM   =mProt;
-          tPDG =211;
-        }
-        G4bool fOK=true;
-        G4LorentzVector f4M(0.,0.,0.,fM);
-        G4LorentzVector s4M(0.,0.,0.,sM);
-        G4LorentzVector t4M(0.,0.,0.,tM);
-        G4double sum=fM+sM+tM;
-        if(fabs(hM-sum)<=eps)
+         fQPDG=pQPDG;
+         fM   =mProt;
+         sPDG =2212;
+         sM   =mProt;
+         tPDG =211;
+       }
+       G4bool fOK=true;
+       G4LorentzVector f4M(0.,0.,0.,fM);
+       G4LorentzVector s4M(0.,0.,0.,sM);
+       G4LorentzVector t4M(0.,0.,0.,tM);
+       G4double sum=fM+sM+tM;
+       if(fabs(hM-sum)<=eps)
 		      {
-          f4M=h4Mom*(fM/sum);
-          s4M=h4Mom*(sM/sum);
-          t4M=h4Mom*(tM/sum);
+         f4M=h4Mom*(fM/sum);
+         s4M=h4Mom*(sM/sum);
+         t4M=h4Mom*(tM/sum);
 		      }
-        else if(hM<sum || !G4QHadron(h4Mom).DecayIn3(f4M,s4M,t4M))
+       else if(hM<sum || !G4QHadron(h4Mom).DecayIn3(f4M,s4M,t4M))
 	       {
-          G4cout<<"---WARNING---G4QE::FSI: Still trying, NDM="<<hM<<"->"<<fM<<"("<<fQPDG
-                <<")+"<<sM<<"("<<sPDG<<")+"<<tM<<"("<<tPDG<<")="<<sum<<G4endl;
-          if(!theEnvironment.GetA())
-          {
-            G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
-            G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
-            if(hadron+1<theQHadrons.size())        // If hadr<Last,swap CurHadr & LastHadr
-            {
-              theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr (nh<Last)
-              G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-              if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
-              else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-              curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-            }
-            theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-            delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-            G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-            if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
-            {
-              G4cout<<"---Warning---G4QE::FSI:NDel Failed LeaveAsItIs, 4m="<<h4Mom<<G4endl;
-              theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
-            }
-            else
-            {
-              delete qH;
-              nHadr=theQHadrons.size();
-            }
-            delete quasH;
-            fOK=false;
+         G4cout<<"---WARNING---G4QE::FSI: Still trying, NDM="<<hM<<"->"<<fM<<"("<<fQPDG
+               <<")+"<<sM<<"("<<sPDG<<")+"<<tM<<"("<<tPDG<<")="<<sum<<G4endl;
+         if(!theEnvironment.GetA())
+         {
+           G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
+           G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
+           if(hadron+1<theQHadrons.size())        // If hadr<Last,swap CurHadr & LastHadr
+           {
+             theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr (nh<Last)
+             G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+             if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
+             else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+             curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+           }
+           theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+           delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+           G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+           if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
+           {
+             G4cout<<"---Warning---G4QE::FSI:NDel Failed LeaveAsItIs, 4m="<<h4Mom<<G4endl;
+             theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
+           }
+           else
+           {
+             delete qH;
+             nHadr=theQHadrons.size();
+           }
+           delete quasH;
+           fOK=false;
 		        }
-          else
-          {
-            G4cout<<"***G4QEnv::FSI: No ND recovery Env="<<theEnvironment<<G4endl;
+         else
+         {
+           G4cout<<"***G4QEnv::FSI: No ND recovery Env="<<theEnvironment<<G4endl;
 	           throw G4QException("G4QEnv::FSI:ND DecayIn3 did not succeed");
-          }
+         }
 	       }
-        if(fOK)
-        {
-          curHadr->SetQPDG(fQPDG);
-          curHadr->Set4Momentum(f4M);
-          G4QHadron* sH = new G4QHadron(sPDG,s4M);
-          theQHadrons.push_back(sH);               // (delete equivalent)
-          G4QHadron* tH = new G4QHadron(tPDG,t4M);
-          theQHadrons.push_back(tH);               // (delete equivalent)
-        }
-        hPDG = curHadr->GetPDGCode();            // Change PDG Code of theFirstFragment
-        hQPDG= G4QPDGCode(hPDG);
-        hGSM = hQPDG.GetMass();                  // Change GroundStateMass of theFirstFragm
+       if(fOK)
+       {
+         curHadr->SetQPDG(fQPDG);
+         curHadr->Set4Momentum(f4M);
+         G4QHadron* sH = new G4QHadron(sPDG,s4M);
+         theQHadrons.push_back(sH);               // (delete equivalent)
+         G4QHadron* tH = new G4QHadron(tPDG,t4M);
+         theQHadrons.push_back(tH);               // (delete equivalent)
+       }
+       hPDG = curHadr->GetPDGCode();            // Change PDG Code of theFirstFragment
+       hQPDG= G4QPDGCode(hPDG);
+       hGSM = hQPDG.GetMass();                  // Change GroundStateMass of theFirstFragm
 	     }
-      nHadr=theQHadrons.size();
-      if(hPDG==89001001||hPDG==89002000||hPDG==89000002)
-      {
-        G4cout<<"---WARNING---G4QE::FSI:***(K+N)*** (2),PDG="<<hPDG<<" CORRECTION"<<G4endl;
-        G4LorentzVector h4Mom=curHadr->Get4Momentum();
-        G4double      hM=h4Mom.m();
-        G4QPDGCode fQPDG=nQPDG;
-        G4double     fM =mNeut;
-        G4int      sPDG =311;
-        G4double     sM =mK0;
-        if(hPDG==89000002)
+     nHadr=theQHadrons.size();
+     if(hPDG==89001001||hPDG==89002000||hPDG==89000002)
+     {
+       G4cout<<"---WARNING---G4QE::FSI:***(K+N)*** (2),PDG="<<hPDG<<" CORRECTION"<<G4endl;
+       G4LorentzVector h4Mom=curHadr->Get4Momentum();
+       G4double      hM=h4Mom.m();
+       G4QPDGCode fQPDG=nQPDG;
+       G4double     fM =mNeut;
+       G4int      sPDG =311;
+       G4double     sM =mK0;
+       if(hPDG==89000002)
 		      {
-          fQPDG=pQPDG;
-          fM   =mProt;
-          sPDG =321;
-          sM   =mK;
-        }
-        if(hPDG==89001001)
+         fQPDG=pQPDG;
+         fM   =mProt;
+         sPDG =321;
+         sM   =mK;
+       }
+       if(hPDG==89001001)
 		      {
-          if(hM<mK0+mProt || G4UniformRand()>.5)
-          {
-            sPDG =321;
-            sM   =mK;
-          }
-          else
-          {
-            fQPDG=pQPDG;
-            fM   =mProt;
-          }
-        }
-        G4bool fOK=true;
-        G4LorentzVector f4M(0.,0.,0.,fM);
-        G4LorentzVector s4M(0.,0.,0.,sM);
-        G4double sum=fM+sM;
-        if(fabs(hM-sum)<=eps)
+         if(hM<mK0+mProt || G4UniformRand()>.5)
+         {
+           sPDG =321;
+           sM   =mK;
+         }
+         else
+         {
+           fQPDG=pQPDG;
+           fM   =mProt;
+         }
+       }
+       G4bool fOK=true;
+       G4LorentzVector f4M(0.,0.,0.,fM);
+       G4LorentzVector s4M(0.,0.,0.,sM);
+       G4double sum=fM+sM;
+       if(fabs(hM-sum)<=eps)
 		      {
-          f4M=h4Mom*(fM/sum);
-          s4M=h4Mom*(sM/sum);
+         f4M=h4Mom*(fM/sum);
+         s4M=h4Mom*(sM/sum);
 		      }
-        else if(hM<sum || !G4QHadron(h4Mom).DecayIn2(f4M,s4M))
+       else if(hM<sum || !G4QHadron(h4Mom).DecayIn2(f4M,s4M))
 	       {
-          G4cout<<"---WARNING---G4QE::FSI: Still trying (2),NDM="<<hM<<"->"<<fM<<"("<<fQPDG
-                <<")+"<<sM<<"("<<sPDG<<")="<<sum<<G4endl;
-          if(!theEnvironment.GetA())
-          {
-            G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
-            G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
-            if(hadron+1<theQHadrons.size())        // If hadr<Last, swap CurHadr & LastHadr
-            {
-              theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr (nh<Last)
-              G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-              if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
-              else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-              curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-            }
-            theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-            delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-            G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-            if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
-            {
-              G4cout<<"---Warning---G4QE::FSI:KN Failed LeaveAsItIs 4m="<<h4Mom<<G4endl;
-              theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
-            }
-            else
-            {
-              delete qH;
-              nHadr=theQHadrons.size();
-            }
-            delete quasH;
-            fOK=false;
+         G4cout<<"---WARNING---G4QE::FSI: Still trying (2),NDM="<<hM<<"->"<<fM<<"("<<fQPDG
+               <<")+"<<sM<<"("<<sPDG<<")="<<sum<<G4endl;
+         if(!theEnvironment.GetA())
+         {
+           G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
+           G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
+           if(hadron+1<theQHadrons.size())        // If hadr<Last, swap CurHadr & LastHadr
+           {
+             theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr (nh<Last)
+             G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+             if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
+             else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+             curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+           }
+           theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+           delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+           G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+           if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
+           {
+             G4cout<<"---Warning---G4QE::FSI:KN Failed LeaveAsItIs 4m="<<h4Mom<<G4endl;
+             theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
+           }
+           else
+           {
+             delete qH;
+             nHadr=theQHadrons.size();
+           }
+           delete quasH;
+           fOK=false;
 		        }
-          else
-          {
-            G4cerr<<"***G4QEnv::FSI: No KN recovery Env="<<theEnvironment<<G4endl;
+         else
+         {
+           G4cerr<<"***G4QEnv::FSI: No KN recovery Env="<<theEnvironment<<G4endl;
 	           throw G4QException("G4QEnv::FSI:KN DecayIn2 did not succeed");
-          }
+         }
 	       }
-        if(fOK)
-        {
-          curHadr->SetQPDG(fQPDG);
-          curHadr->Set4Momentum(f4M);
-          G4QHadron* sH = new G4QHadron(sPDG,s4M);
-          theQHadrons.push_back(sH);               // (delete equivalent)
-        }
-        hPDG = curHadr->GetPDGCode();            // Change PDG Code of theFirstFragment
-        hQPDG= G4QPDGCode(hPDG);
-        hGSM = hQPDG.GetMass();                  // Change GroundStateMass of theFirstFragm
+       if(fOK)
+       {
+         curHadr->SetQPDG(fQPDG);
+         curHadr->Set4Momentum(f4M);
+         G4QHadron* sH = new G4QHadron(sPDG,s4M);
+         theQHadrons.push_back(sH);               // (delete equivalent)
+       }
+       hPDG = curHadr->GetPDGCode();            // Change PDG Code of theFirstFragment
+       hQPDG= G4QPDGCode(hPDG);
+       hGSM = hQPDG.GetMass();                  // Change GroundStateMass of theFirstFragm
 	     }
-      nHadr=theQHadrons.size();
-      G4int           hS = curHadr->GetStrangeness();
-      G4int           hF = curHadr->GetNFragments();
-      G4LorentzVector h4m= curHadr->Get4Momentum();
-      G4double hM        = h4m.m();             // Real Mass of the first fragment
-      G4int hB           = curHadr->GetBaryonNumber();
-      //////////////////////G4int hC           = curHadr->GetCharge();
+     nHadr=theQHadrons.size();
+     G4int           hS = curHadr->GetStrangeness();
+     G4int           hF = curHadr->GetNFragments();
+     G4LorentzVector h4m= curHadr->Get4Momentum();
+     G4double hM        = h4m.m();             // Real Mass of the first fragment
+     G4int hB           = curHadr->GetBaryonNumber();
+     //////////////////////G4int hC           = curHadr->GetCharge();
 #ifdef pdebug
-      if(!hF&&(hPDG>80000000&&hPDG<90000000||hPDG==90000000||
-               hPDG>90000000&&(hPDG%1000000>200000||hPDG%1000>300)))
-        G4cout<<"**G4QEnv::FSInteraction: PDG("<<hadron<<")="<<hPDG<<", M="<<hM<<G4endl;
+     if(!hF&&(hPDG>80000000&&hPDG<90000000||hPDG==90000000||
+              hPDG>90000000&&(hPDG%1000000>200000||hPDG%1000>300)))
+       G4cout<<"**G4QEnv::FSInteraction: PDG("<<hadron<<")="<<hPDG<<", M="<<hM<<G4endl;
 #endif
 #ifdef pdebug
-      G4cout<<"G4QE::FSI:h="<<hPDG<<",S="<<hS<<",B="<<hB<<",#"<<hadron<<"<"<<nHadr<<G4endl;
+     G4cout<<"G4QE::FSI:h="<<hPDG<<",S="<<hS<<",B="<<hB<<",#"<<hadron<<"<"<<nHadr<<G4endl;
 #endif
 	     //if(hadron&&!hF&&hB>0&&!hS&&(nHadr>3||hB<2)) // ThermoBackFus (VIMP for gamA TotCS)
 	     //if(hadron&&!hF&&hB>0&&!hS&&(nHadr>2||hB<4)) // ThermoBackFus (VIMP for gamA TotCS)
@@ -5204,3354 +5202,3402 @@ G4QHadronVector* G4QEnvironment::FSInteraction()
 	     //if(hadron&&!hF&&hB>0&&hB<4&&!hS) // ThermoBackFusion cond. (VIMP for gamA TotCS)
 	     //if(hadron&&!hF&&hB>0&&!hS&&nHadr>2)//ThermoBackFusion MAX condition (VIMP for gamA)
 	     //if(2>3)                         // Close the ThermoBackFusion (VIMP for gamA TotCS)
-      {
+     {
 #ifdef pdebug
-        //if(nHadr==3)
-          G4cout<<"G4QE::FSI: h="<<hPDG<<",B="<<hB<<",h#"<<hadron<<" < nH="<<nHadr<<G4endl;
+       //if(nHadr==3)
+         G4cout<<"G4QE::FSI: h="<<hPDG<<",B="<<hB<<",h#"<<hadron<<" < nH="<<nHadr<<G4endl;
 #endif
-        G4QContent hQC = curHadr->GetQC();
-        if(hadron&&!hF&&hB>0) for(unsigned pt=0; pt<hadron; pt++)
+       G4QContent hQC = curHadr->GetQC();
+       if(hadron&&!hF&&hB>0) for(unsigned pt=0; pt<hadron; pt++)
 	       {
-          G4QHadron* backH = theQHadrons[pt];   // Get pointer to one of thePreviousHadrons
-          G4int   bF = backH->GetNFragments();
-          G4LorentzVector b4m= backH->Get4Momentum();
-          G4double bM= b4m.m();                 // Real Mass of the second fragment
-          G4QContent bQC = backH->GetQC();
-          G4int bPDG=bQC.GetZNSPDGCode();
-          G4QPDGCode bQPDG(bPDG);
-          G4double bGSM=bQPDG.GetMass();        // Ground State Mass of the second fragment
-          G4int   bB = backH->GetBaryonNumber();
+         G4QHadron* backH = theQHadrons[pt];   // Get pointer to one of thePreviousHadrons
+         G4int   bF = backH->GetNFragments();
+         G4LorentzVector b4m= backH->Get4Momentum();
+         G4double bM= b4m.m();                 // Real Mass of the second fragment
+         G4QContent bQC = backH->GetQC();
+         G4int bPDG=bQC.GetZNSPDGCode();
+         G4QPDGCode bQPDG(bPDG);
+         G4double bGSM=bQPDG.GetMass();        // Ground State Mass of the second fragment
+         G4int   bB = backH->GetBaryonNumber();
 
-          //////////////////G4int   bC = backH->GetCharge();
-          G4QContent sQC=bQC+hQC;
-          G4int sPDG=sQC.GetZNSPDGCode();
-          G4QPDGCode sQPDG(sPDG);
-          G4double tM=sQPDG.GetMass();
-          G4LorentzVector s4M=h4m+b4m;
-          G4double sM2=s4M.m2();
-          G4double sM=sqrt(sM2);
-          G4double dsM2=sM2+sM2;
-          G4double rm=bM-hM;
-          G4double sm=bM+hM;
-          G4double pCM2=(sM2-rm*rm)*(sM2-sm*sm)/(dsM2+dsM2);
-          G4int   bS = backH->GetStrangeness();
-#ifdef pdebug
-          //if(nHadr==3)
+         //////////////////G4int   bC = backH->GetCharge();
+         G4QContent sQC=bQC+hQC;
+         G4int sPDG=sQC.GetZNSPDGCode();
+         G4QPDGCode sQPDG(sPDG);
+         G4double tM=sQPDG.GetMass();
+         G4LorentzVector s4M=h4m+b4m;
+         G4double sM2=s4M.m2();
+         G4double sM=sqrt(sM2);
+         G4double dsM2=sM2+sM2;
+         G4double rm=bM-hM;
+         G4double sm=bM+hM;
+         G4double pCM2=(sM2-rm*rm)*(sM2-sm*sm)/(dsM2+dsM2);
+         G4int   bS = backH->GetStrangeness();
+#ifdef pdebug
+         //if(nHadr==3)
 		        G4cout<<"G4QE::FSI:"<<pt<<",B="<<bB<<",S="<<bS<<",p="<<pCM2<<"<"<<p2cut<<",hB="
-                <<hB<<",bM+hM="<<bM+hM<<">tM="<<tM<<",tQC="<<sQC<<G4endl;
+               <<hB<<",bM+hM="<<bM+hM<<">tM="<<tM<<",tQC="<<sQC<<G4endl;
 #endif
-          //if(!bF&&(bB==1||hB==1)&&bM+hM>tM+.001&&pCM2<p2cut)      // Only baryons == pcut
+         //if(!bF&&(bB==1||hB==1)&&bM+hM>tM+.001&&pCM2<p2cut)      // Only baryons == pcut
 		        //if(!bF&&!bS&&(bB==1&&hB>0||hB==1&&bB>0)&&bM+hM>tM+.00001
-          //   && (pCM2<p2cut&&nHadr>3||pCM2<p2cut2&&nHadr==3))
+         //   && (pCM2<p2cut&&nHadr>3||pCM2<p2cut2&&nHadr==3))
 		        //if(!bF&&(bB==1||hB==1)&&bM+hM>tM+.001&&(pCM2<p2cut&&nHadr>3 ||
 		        //   pCM2<p2cut2&&nHadr==3&&bPDG>90000000))
-          //if(!bF&&bB<4&&bM+hM>tM+.001&&pCM2<p2cut)
-          if(!bF&&!bS&&bB>0&&bM+hM>tM+.001&&pCM2<p2cut)
-          //if(!bF&&bB<4&&bM+hM>tM+.001&&(pCM2<p2cut || bB+hB==4&&pCM2<p2cut2))
+         //if(!bF&&bB<4&&bM+hM>tM+.001&&pCM2<p2cut)
+         if(!bF&&!bS&&bB>0&&bM+hM>tM+.001&&pCM2<p2cut)
+         //if(!bF&&bB<4&&bM+hM>tM+.001&&(pCM2<p2cut || bB+hB==4&&pCM2<p2cut2))
 		        //if(!bF&&(bB==1||hB==1)&&(nHadr>3||bPDG>90000000)&&bM+hM>tM+.001&&pCM2<p2cut)
 		        //if(!bF&&(bB==1&&!bC||hB==1&&!hC)&&bM+hM>tM+.001&&pCM2<p2cut)// Only n == pcut
 		        //if(!bF&&(bB==1||hB==1)&&bM+hM>tM+.001&&sM-bM-hM<cut)  // Only baryons == ecut
 		        //if(!bF&&bB&&bB<fL&&bM+hM>tM+.001&&sM-bM-hM<cut)    // Light fragments == ecut
 	         {
 #ifdef fdebug
-            G4int bPDG = backH->GetPDGCode();
+           G4int bPDG = backH->GetPDGCode();
 			         if(sPDG==89999003||sPDG==90002999||sPDG==89999002||sPDG==90001999)
-              G4cout<<"G4QE::FSI:**nD-/pD++**,h="<<hPDG<<",hB="<<hB<<",b="<<bPDG<<",bB="
-                    <<bB<<G4endl;
-            //if(nHadr==3)
+             G4cout<<"G4QE::FSI:**nD-/pD++**,h="<<hPDG<<",hB="<<hB<<",b="<<bPDG<<",bB="
+                   <<bB<<G4endl;
+           //if(nHadr==3)
 	           G4cout<<"G4QE::FSI:*FUSION*#"<<hadron<<"["<<hPDG<<"]"<<hM<<"+#"<<pt<<"["<<bPDG
-                  <<"]"<<bM<<"="<<bM+hM<<", sM="<<sM<<">["<<sPDG<<"]"<<tM<<",p2="<<pCM2
-                  <<"<"<<p2cut<<G4endl;
-#endif
-            bfAct=true;
-            //@@Temporary decay in gamma
-            G4bool three=false;
-            G4QPDGCode fQPDG=sQPDG;
-            G4QPDGCode rQPDG=gQPDG;
-            G4QPDGCode hQPDG=gQPDG;
-            G4LorentzVector f4Mom(0.,0.,0.,tM);
-            G4LorentzVector g4Mom(0.,0.,0.,0.);
-            G4LorentzVector t4Mom(0.,0.,0.,0.);
-            if(sPDG==89999002)                               // A=1
+                 <<"]"<<bM<<"="<<bM+hM<<", sM="<<sM<<">["<<sPDG<<"]"<<tM<<",p2="<<pCM2
+                 <<"<"<<p2cut<<G4endl;
+#endif
+           bfAct=true;
+           //@@Temporary decay in gamma
+           G4bool three=false;
+           G4QPDGCode fQPDG=sQPDG;
+           G4QPDGCode rQPDG=gQPDG;
+           G4QPDGCode hQPDG=gQPDG;
+           G4LorentzVector f4Mom(0.,0.,0.,tM);
+           G4LorentzVector g4Mom(0.,0.,0.,0.);
+           G4LorentzVector t4Mom(0.,0.,0.,0.);
+           if(sPDG==89999002)                               // A=1
 		          {
-              fQPDG=nQPDG;
-              rQPDG=pimQPDG;
-              f4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              g4Mom=G4LorentzVector(0.,0.,0.,mPi);
+             fQPDG=nQPDG;
+             rQPDG=pimQPDG;
+             f4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             g4Mom=G4LorentzVector(0.,0.,0.,mPi);
 		          }
-            else if(sPDG==90001999)
+           else if(sPDG==90001999)
 		          {
-              fQPDG=pQPDG;
-              rQPDG=pipQPDG;
-              f4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=G4LorentzVector(0.,0.,0.,mPi);
+             fQPDG=pQPDG;
+             rQPDG=pipQPDG;
+             f4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=G4LorentzVector(0.,0.,0.,mPi);
 		          }
-            else if(sPDG==90000002)                        // A=2
+           else if(sPDG==90000002)                        // A=2
 		          {
-              fQPDG=nQPDG;
-              rQPDG=nQPDG;
-              f4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              g4Mom=f4Mom;
+             fQPDG=nQPDG;
+             rQPDG=nQPDG;
+             f4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             g4Mom=f4Mom;
 		          }
-            else if(sPDG==90002000)
+           else if(sPDG==90002000)
 		          {
-              fQPDG=pQPDG;
-              rQPDG=pQPDG;
-              f4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=f4Mom;
+             fQPDG=pQPDG;
+             rQPDG=pQPDG;
+             f4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=f4Mom;
 		          }
-            else if(sPDG==92000000)
+           else if(sPDG==92000000)
 		          {
-              fQPDG=lQPDG;
-              rQPDG=lQPDG;
-              f4Mom=G4LorentzVector(0.,0.,0.,mLamb);
-              g4Mom=f4Mom;
-              if(sM>mSigZ+mSigZ)             // Sigma0+Sigma0 is possible
+             fQPDG=lQPDG;
+             rQPDG=lQPDG;
+             f4Mom=G4LorentzVector(0.,0.,0.,mLamb);
+             g4Mom=f4Mom;
+             if(sM>mSigZ+mSigZ)             // Sigma0+Sigma0 is possible
 			           {                                  // @@ Only two particles PS is used
-                G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
-                G4double pr1=0.;                 // Prototype to avoid sqrt(-)
-                if(sM>sma) pr1=sqrt((sM2-sma*sma)*sM2); // Lamb+Lamb PS
-                sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
-                G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
-                G4double pr2=pr1;                // Prototype of +L +S0 PS
-                if(sM>sma && sM>smi) pr2+=sqrt((sM2-sma*sma)*(sM2-smi*smi));
-                sma=mSigZ+mSigZ;                 // Sigma0+Sigma0 sum
-                G4double pr3=pr2;                // Prototype of +Sigma0+Sigma0 PS
-                if(sM>sma) pr3+=sqrt((sM2-sma*sma)*sM2);
-                G4double hhRND=pr3*G4UniformRand(); // Randomize PS
-                if(hhRND>pr2)                    // --> "ENnv+Sigma0+Sigma0" case
-                {                                //
-                  fQPDG=s0QPDG;
-                  f4Mom=G4LorentzVector(0.,0.,0.,mSigZ);
-                  rQPDG=s0QPDG;
-                  g4Mom=f4Mom;
-                }                                //
-                else if(hhRND>pr1)               // --> "ENnv+Sigma0+Lambda" case
-                {                                //
-                  fQPDG=s0QPDG;
-                  f4Mom=G4LorentzVector(0.,0.,0.,mSigZ);
-                }                                //
-              }
-              else if(sM>mSigZ+mLamb)            // Lambda+Sigma0 is possible
+               G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
+               G4double pr1=0.;                 // Prototype to avoid sqrt(-)
+               if(sM>sma) pr1=sqrt((sM2-sma*sma)*sM2); // Lamb+Lamb PS
+               sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
+               G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
+               G4double pr2=pr1;                // Prototype of +L +S0 PS
+               if(sM>sma && sM>smi) pr2+=sqrt((sM2-sma*sma)*(sM2-smi*smi));
+               sma=mSigZ+mSigZ;                 // Sigma0+Sigma0 sum
+               G4double pr3=pr2;                // Prototype of +Sigma0+Sigma0 PS
+               if(sM>sma) pr3+=sqrt((sM2-sma*sma)*sM2);
+               G4double hhRND=pr3*G4UniformRand(); // Randomize PS
+               if(hhRND>pr2)                    // --> "ENnv+Sigma0+Sigma0" case
+               {                                //
+                 fQPDG=s0QPDG;
+                 f4Mom=G4LorentzVector(0.,0.,0.,mSigZ);
+                 rQPDG=s0QPDG;
+                 g4Mom=f4Mom;
+               }                                //
+               else if(hhRND>pr1)               // --> "ENnv+Sigma0+Lambda" case
+               {                                //
+                 fQPDG=s0QPDG;
+                 f4Mom=G4LorentzVector(0.,0.,0.,mSigZ);
+               }                                //
+             }
+             else if(sM>mSigZ+mLamb)            // Lambda+Sigma0 is possible
 			           {                                  // @@ Only two particles PS is used
-                G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
-                G4double pr1=0.;                 // Prototype to avoid sqrt(-)
-                if(sM>sma) pr1=sqrt((sM2-sma*sma)*sM2); // Lamb+Lamb PS
-                sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
-                G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
-                G4double pr2=pr1;                // Prototype of +L +S0 PS
-                if(sM>sma && sM>smi) pr2+=sqrt((sM2-sma*sma)*(sM2-smi*smi));
-                if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
-                {                                //
-                  fQPDG=s0QPDG;
-                  f4Mom=G4LorentzVector(0.,0.,0.,mSigZ);
-                }                                //
-              }                                  //
+               G4double sma=mLamb+mLamb;        // Lambda+Lambda sum
+               G4double pr1=0.;                 // Prototype to avoid sqrt(-)
+               if(sM>sma) pr1=sqrt((sM2-sma*sma)*sM2); // Lamb+Lamb PS
+               sma=mLamb+mSigZ;                 // Lambda+Sigma0 sum
+               G4double smi=mSigZ-mLamb;        // Sigma0-Lambda difference
+               G4double pr2=pr1;                // Prototype of +L +S0 PS
+               if(sM>sma && sM>smi) pr2+=sqrt((sM2-sma*sma)*(sM2-smi*smi));
+               if(pr2*G4UniformRand()>pr1)      // --> "ENnv+Sigma0+Lambda" case
+               {                                //
+                 fQPDG=s0QPDG;
+                 f4Mom=G4LorentzVector(0.,0.,0.,mSigZ);
+               }                                //
+             }                                  //
 		          }
-            else if(sPDG==89999003)                       // A=2
+           else if(sPDG==89999003)                       // A=2
 		          {
-              hQPDG=nQPDG;
-              rQPDG=nQPDG;
-              fQPDG=pimQPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              f4Mom=G4LorentzVector(0.,0.,0.,mPi);
-              three=true;
+             hQPDG=nQPDG;
+             rQPDG=nQPDG;
+             fQPDG=pimQPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             f4Mom=G4LorentzVector(0.,0.,0.,mPi);
+             three=true;
 		          }
-            else if(sPDG==90002999)
+           else if(sPDG==90002999)
 		          {
-              hQPDG=pQPDG;
-              rQPDG=pQPDG;
-              fQPDG=pipQPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mPi);
-              three=true;
+             hQPDG=pQPDG;
+             rQPDG=pQPDG;
+             fQPDG=pipQPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mPi);
+             three=true;
 		          }
-            else if(sPDG==90000003)                        // A=3
+           else if(sPDG==90000003)                        // A=3
 		          {
-              hQPDG=nQPDG;
-              rQPDG=nQPDG;
-              fQPDG=nQPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              f4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              three=true;
+             hQPDG=nQPDG;
+             rQPDG=nQPDG;
+             fQPDG=nQPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             f4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             three=true;
 		          }
-            else if(sPDG==90003000)
+           else if(sPDG==90003000)
 		          {
-              hQPDG=pQPDG;
-              rQPDG=pQPDG;
-              fQPDG=pQPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              three=true;
+             hQPDG=pQPDG;
+             rQPDG=pQPDG;
+             fQPDG=pQPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             three=true;
 		          }
-            else if(sPDG==90001003)                     // A=4
+           else if(sPDG==90001003)                     // A=4
 		          {
-              rQPDG=nQPDG;
-              fQPDG=tQPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              f4Mom=G4LorentzVector(0.,0.,0.,mTrit);
+             rQPDG=nQPDG;
+             fQPDG=tQPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             f4Mom=G4LorentzVector(0.,0.,0.,mTrit);
 		          }
-            else if(sPDG==90003001)
+           else if(sPDG==90003001)
 		          {
-              rQPDG=pQPDG;
-              fQPDG=he3QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mHe3);
+             rQPDG=pQPDG;
+             fQPDG=he3QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mHe3);
 		          }
-            else if(sPDG==90002003)                     // A=5
+           else if(sPDG==90002003)                     // A=5
 		          {
-              rQPDG=nQPDG;
-              fQPDG=aQPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
+             rQPDG=nQPDG;
+             fQPDG=aQPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
 		          }
-            else if(sPDG==90003002)
+           else if(sPDG==90003002)
 		          {
-              rQPDG=pQPDG;
-              fQPDG=aQPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
+             rQPDG=pQPDG;
+             fQPDG=aQPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
 		          }
-            else if(sPDG==90004002)                          // A=6
+           else if(sPDG==90004002)                          // A=6
 		          {
-              hQPDG=pQPDG;
-              rQPDG=pQPDG;
-              fQPDG=aQPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
-              three=true;
+             hQPDG=pQPDG;
+             rQPDG=pQPDG;
+             fQPDG=aQPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
+             three=true;
 		          }
-            else if(sPDG==90002005)                        // A=7
+           else if(sPDG==90002005)                        // A=7
 		          {
-              rQPDG=nQPDG;
-              fQPDG=a6QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              f4Mom=G4LorentzVector(0.,0.,0.,mHe6);
+             rQPDG=nQPDG;
+             fQPDG=a6QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             f4Mom=G4LorentzVector(0.,0.,0.,mHe6);
 		          }
-            else if(sPDG==90005002)
+           else if(sPDG==90005002)
 		          {
-              rQPDG=pQPDG;
-              fQPDG=be6QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mBe6);
+             rQPDG=pQPDG;
+             fQPDG=be6QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mBe6);
 		          }
-            else if(sPDG==90004004)                        // A=8
+           else if(sPDG==90004004)                        // A=8
 		          {
-              fQPDG=aQPDG;
-              rQPDG=aQPDG;
-              f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
-              g4Mom=f4Mom;
+             fQPDG=aQPDG;
+             rQPDG=aQPDG;
+             f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
+             g4Mom=f4Mom;
 		          }
-            //else if(sPDG==90006002)
+           //else if(sPDG==90006002)
 		          //{
-            //  hQPDG=pQPDG;
-            //  rQPDG=pQPDG;
-            //  fQPDG=be6QPDG;
-            //  t4Mom=G4LorentzVector(0.,0.,0.,mProt);
-            //  g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-            //  f4Mom=G4LorentzVector(0.,0.,0.,mBe6);
-            //  three=true;
+           //  hQPDG=pQPDG;
+           //  rQPDG=pQPDG;
+           //  fQPDG=be6QPDG;
+           //  t4Mom=G4LorentzVector(0.,0.,0.,mProt);
+           //  g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+           //  f4Mom=G4LorentzVector(0.,0.,0.,mBe6);
+           //  three=true;
 		          //}
-            //else if(sPDG==90002006)
+           //else if(sPDG==90002006)
 		          //{
-            //  hQPDG=nQPDG;
-            //  rQPDG=nQPDG;
-            //  fQPDG=a6QPDG;
-            //  t4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-            //  g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-            //  f4Mom=G4LorentzVector(0.,0.,0.,mHe6);
-            //  three=true;
+           //  hQPDG=nQPDG;
+           //  rQPDG=nQPDG;
+           //  fQPDG=a6QPDG;
+           //  t4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+           //  g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+           //  f4Mom=G4LorentzVector(0.,0.,0.,mHe6);
+           //  three=true;
 		          //}
-            else if(sPDG==90002007)                      // A=9
+           else if(sPDG==90002007)                      // A=9
 		          {
-              rQPDG=nQPDG;
-              fQPDG=a8QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
-              f4Mom=G4LorentzVector(0.,0.,0.,mHe8);
+             rQPDG=nQPDG;
+             fQPDG=a8QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mNeut);
+             f4Mom=G4LorentzVector(0.,0.,0.,mHe8);
 		          }
-            else if(sPDG==90005004)                      // A=9
+           else if(sPDG==90005004)                      // A=9
 		          {
-              rQPDG=pQPDG;
-              fQPDG=aQPDG;
-              hQPDG=aQPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
-              t4Mom=G4LorentzVector(0.,0.,0.,mAlph);
-              three=true;
+             rQPDG=pQPDG;
+             fQPDG=aQPDG;
+             hQPDG=aQPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mAlph);
+             t4Mom=G4LorentzVector(0.,0.,0.,mAlph);
+             three=true;
 		          }
-            else if(sPDG==90007002)                      // A=9
+           else if(sPDG==90007002)                      // A=9
 		          {
-              rQPDG=pQPDG;
-              fQPDG=c8QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mC8);
+             rQPDG=pQPDG;
+             fQPDG=c8QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mC8);
 		          }
-            else if(sPDG==90008004)                      // A=12
+           else if(sPDG==90008004)                      // A=12
 		          {
-              hQPDG=pQPDG;
-              rQPDG=pQPDG;
-              fQPDG=c10QPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mC10);
-              three=true;
+             hQPDG=pQPDG;
+             rQPDG=pQPDG;
+             fQPDG=c10QPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mC10);
+             three=true;
 		          }
-            else if(sPDG==90009006)                     // A=15
+           else if(sPDG==90009006)                     // A=15
 		          {
-              rQPDG=pQPDG;
-              fQPDG=o14QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mO14);
+             rQPDG=pQPDG;
+             fQPDG=o14QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mO14);
 		          }
-            else if(sPDG==90009007)                     // A=16
+           else if(sPDG==90009007)                     // A=16
 		          {
-              rQPDG=pQPDG;
-              fQPDG=o15QPDG;
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mO15);
+             rQPDG=pQPDG;
+             fQPDG=o15QPDG;
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mO15);
 		          }
-            else if(sPDG==90010006)                     // A=16
+           else if(sPDG==90010006)                     // A=16
 		          {
-              hQPDG=pQPDG;
-              rQPDG=pQPDG;
-              fQPDG=o14QPDG;
-              t4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              g4Mom=G4LorentzVector(0.,0.,0.,mProt);
-              f4Mom=G4LorentzVector(0.,0.,0.,mO14);
-              three=true;
+             hQPDG=pQPDG;
+             rQPDG=pQPDG;
+             fQPDG=o14QPDG;
+             t4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             g4Mom=G4LorentzVector(0.,0.,0.,mProt);
+             f4Mom=G4LorentzVector(0.,0.,0.,mO14);
+             three=true;
 		          }
 #ifdef pdebug
-            G4cout<<"G4QE::FSI: "<<three<<",r="<<rQPDG<<",f="<<fQPDG<<",t="<<hQPDG<<G4endl;
-#endif
-            if(!three)
-            {
-              if(!G4QHadron(s4M).DecayIn2(f4Mom,g4Mom))
-              {
-                G4cerr<<"***G4QE::FSI:(2)*FUSION*,tM["<<sPDG<<"]="<<tM<<">sM="<<sM<<" of "
-                      <<h4m<<hM<<hQC<<hGSM<<" & "<<b4m<<bM<<bQC<<bGSM<<G4endl;
-                throw G4QException("***G4QEnvironment::FSInter:Fusion (1) DecIn2 error");
-              }
-              else
+           G4cout<<"G4QE::FSI: "<<three<<",r="<<rQPDG<<",f="<<fQPDG<<",t="<<hQPDG<<G4endl;
+#endif
+           if(!three)
+           {
+             if(!G4QHadron(s4M).DecayIn2(f4Mom,g4Mom))
+             {
+               G4cerr<<"***G4QE::FSI:(2)*FUSION*,tM["<<sPDG<<"]="<<tM<<">sM="<<sM<<" of "
+                     <<h4m<<hM<<hQC<<hGSM<<" & "<<b4m<<bM<<bQC<<bGSM<<G4endl;
+               throw G4QException("***G4QEnvironment::FSInter:Fusion (1) DecIn2 error");
+             }
+             else
 			           {
 #ifdef pdebug
-                G4cout<<"G4QE::FSI:*FUSION IS DONE*,fPDG="<<sPDG<<",PDG1="<<hPDG<<",PDG2="
-                      <<bPDG<<G4endl;
+               G4cout<<"G4QE::FSI:*FUSION IS DONE*,fPDG="<<sPDG<<",PDG1="<<hPDG<<",PDG2="
+                     <<bPDG<<G4endl;
 #endif
-                curHadr->SetQPDG(fQPDG);
-                curHadr->Set4Momentum(f4Mom);
-                backH->SetQPDG(rQPDG);
-                backH->Set4Momentum(g4Mom);
+               curHadr->SetQPDG(fQPDG);
+               curHadr->Set4Momentum(f4Mom);
+               backH->SetQPDG(rQPDG);
+               backH->Set4Momentum(g4Mom);
 #ifdef pdebug
-                G4cout<<"G4QE::FSI:h="<<h4m<<",b="<<b4m<<",s="<<s4M<<G4endl;
-                G4cout<<"G4QE::FSI:f="<<f4Mom<<",g="<<g4Mom<<",s="<<f4Mom+g4Mom<<G4endl;
+               G4cout<<"G4QE::FSI:h="<<h4m<<",b="<<b4m<<",s="<<s4M<<G4endl;
+               G4cout<<"G4QE::FSI:f="<<f4Mom<<",g="<<g4Mom<<",s="<<f4Mom+g4Mom<<G4endl;
 #endif
-              }
+             }
 		          }
-            else
-            {
-              if(!G4QHadron(s4M).DecayIn3(f4Mom,g4Mom,t4Mom))
-              {
-                G4cerr<<"***G4QE::FSI:(3)*FUSION*,tM["<<sPDG<<"]="<<tM<<">sM="<<sM<<" of "
-                      <<h4m<<hM<<hQC<<hGSM<<" & "<<b4m<<bM<<bQC<<bGSM<<G4endl;
-                throw G4QException("G4QEnvironment::FSInteract:Fusion(2) DecayIn3 error");
-              }
-              else
+           else
+           {
+             if(!G4QHadron(s4M).DecayIn3(f4Mom,g4Mom,t4Mom))
+             {
+               G4cerr<<"***G4QE::FSI:(3)*FUSION*,tM["<<sPDG<<"]="<<tM<<">sM="<<sM<<" of "
+                     <<h4m<<hM<<hQC<<hGSM<<" & "<<b4m<<bM<<bQC<<bGSM<<G4endl;
+               throw G4QException("G4QEnvironment::FSInteract:Fusion(2) DecayIn3 error");
+             }
+             else
 			           {
 #ifdef pdebug
-                G4cout<<"G4QE::FSI:DONE,n="<<nHadr<<",PDG="<<sPDG<<",1="<<hPDG<<",2="<<bPDG
-                      <<G4endl;
+               G4cout<<"G4QE::FSI:DONE,n="<<nHadr<<",PDG="<<sPDG<<",1="<<hPDG<<",2="<<bPDG
+                     <<G4endl;
+#endif
+               curHadr->SetQPDG(fQPDG);
+               curHadr->Set4Momentum(f4Mom);
+               backH->SetQPDG(rQPDG);
+               backH->Set4Momentum(g4Mom);
+               G4QHadron* newH = new G4QHadron(hQPDG.GetPDGCode(),t4Mom);
+               theQHadrons.push_back(newH);      // (delete equivalent for newH)
+               nHadr=theQHadrons.size();
+#ifdef pdebug
+               G4cout<<"G4QE::FSI:h="<<h4m<<",b="<<b4m<<G4endl;
+               G4cout<<"G4QE::FSI:s="<<s4M<<" = Sum"<<f4Mom+g4Mom+t4Mom<<G4endl;
+               G4cout<<"G4QE::FSI:*Products*,nH="<<nHadr<<",f="<<fQPDG<<f4Mom<<",b="
+                     <<rQPDG<<g4Mom<<",new="<<hQPDG<<t4Mom<<",nH="<<nHadr<<",nD="
+                     <<theQHadrons.size()<<G4endl;
+#endif
+             }
+           }
+           tot4Mom+=b4m;                       // Instead of the fused hadron
+           tot4Mom-=g4Mom;                     // subtract from the total the new hadron
+           /////////////////////////////break; // Make fusion only for one (?)
+           // Instead the curHadr parameters should be updated ______
+           hQPDG=fQPDG;
+           hPDG=hQPDG.GetPDGCode();
+           hQC=fQPDG.GetQuarkContent();
+           hS=hQC.GetStrangeness();
+           hB=hQC.GetBaryonNumber();
+           hGSM = hQPDG.GetMass();
+		          h4m=f4Mom;
+           hM=h4m.m();
+           // End of Instead ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+#ifdef pdebug
+           G4cout<<"G4QE::FSI:cH4M="<<curHadr->Get4Momentum()<<G4endl;
 #endif
-                curHadr->SetQPDG(fQPDG);
-                curHadr->Set4Momentum(f4Mom);
-                backH->SetQPDG(rQPDG);
-                backH->Set4Momentum(g4Mom);
-                G4QHadron* newH = new G4QHadron(hQPDG.GetPDGCode(),t4Mom);
-                theQHadrons.push_back(newH);      // (delete equivalent for newH)
-                nHadr=theQHadrons.size();
+	    } // End of the fusion check
+       } // End of the LOOP over previous hadrons
+     } // End of the FUSION check
+#ifdef chdebug
+     // *** (2) Charge Control Sum Calculation for the Charge Conservation Check ***
+     ccContSum=0;                   // Intermediate ChargeControlSum 
+     cbContSum=0;                   // Intermediate BaryonNumberControlSum 
+     if(nHadr)for(unsigned ic2=0;ic2<nHadr;ic2++) if(!(theQHadrons[ic2]->GetNFragments()))
+     {
+       ccContSum+=theQHadrons[ic2]->GetCharge();
+       cbContSum+=theQHadrons[ic2]->GetBaryonNumber();
+     }
+     unsigned pHadr=intQHadrons.size();
+     if(pHadr)for(unsigned ic3=0;ic3<pHadr;ic3++) if(!(intQHadrons[ic3]->GetNFragments()))
+     {
+       ccContSum+=intQHadrons[ic3]->GetCharge();
+       cbContSum+=intQHadrons[ic3]->GetBaryonNumber();
+     }
+     if(ccContSum-chContSum || cbContSum-bnContSum)
+     {
+       G4cout<<"*G4QE::FSI:(2) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+             <<G4endl;
+       //throw G4QException("G4QEnvironment::FSInteract: (2) Charge is not conserved");
+     }
+     // ***
+#endif
+     G4LorentzVector cH4Mom = curHadr->Get4Momentum(); // 4-mom of the current hadron
+     tot4Mom-=cH4Mom;                          // Reduce theTotal 4mom by theCurrent 4mom
+     totCharge-=curHadr->GetCharge();          // @!@
+     totBaryoN-=curHadr->GetBaryonNumber();    // @!@
+#ifdef pdebug
+       G4cout<<"G4QE::FSI:Cur4M="<<tot4Mom<<",tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
+#endif
+     if(hadron+1==nHadr)                       // The Last Hadron in the set
+     {
+#ifdef pdebug
+       G4cout<<"G4QE::FSI:Last4M="<<tot4Mom<<",tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
+#endif
+       G4double misM=0.;                       // @!@
+       G4int mPDG=0;                           // @!@
+       if(totCharge>=0 && totBaryoN > 0)       // @!@
+       {                                       // @!@
+         mPDG=90000000+999*totCharge+totBaryoN;// @!@
+         misM=G4QPDGCode(mPDG).GetMass();      // @!@
+       }                                       // @!@
+       G4double re =tot4Mom.e();
+       G4double rpx=tot4Mom.px();
+       G4double rpy=tot4Mom.py();
+       G4double rpz=tot4Mom.pz();
+       G4double re2=re*re;                     // @!@
+       G4double dmo=rpx*rpx+rpy*rpy+rpz*rpz;
+       G4double dem=re2+dmo;                   // @!@
+       G4double dm2=re2-dmo;                   // @!@
+       G4double sdm=0.;                        // @!@
+       if(dm2>0.) sdm=std::sqrt(dm2);          // @!@
+#ifdef pdebug
+       G4cout<<"G4QE::FSI: Is En&Mom conserved? t4M="<<tot4Mom<<",dM="<<sdm<<", mM="<<misM
+             <<",mPDG="<<mPDG<<G4endl;
+#endif
+       G4LorentzVector cor4M(0.,0.,0.,0.);     // Prototype for the neutron
+       if(dem>0.1)                             // Energy or momentum is not conserved
+	  {
 #ifdef pdebug
-                G4cout<<"G4QE::FSI:h="<<h4m<<",b="<<b4m<<G4endl;
-                G4cout<<"G4QE::FSI:s="<<s4M<<" = Sum"<<f4Mom+g4Mom+t4Mom<<G4endl;
-                G4cout<<"G4QE::FSI:*Products*,nH="<<nHadr<<",f="<<fQPDG<<f4Mom<<",b="
-                      <<rQPDG<<g4Mom<<",new="<<hQPDG<<t4Mom<<",nH="<<nHadr<<",nD="
-                      <<theQHadrons.size()<<G4endl;
+         G4cout<<"--Warning--G4QE::FSI:dE/Mc4M="<<tot4Mom<<sdm<<". Correct it!"<<G4endl;
 #endif
-              }
-		          }
-            tot4Mom+=b4m;                       // Instead of the fused hadron
-            tot4Mom-=g4Mom;                     // subtract from the total the new hadron
-            /////////////////////////////break; // Make fusion only for one (?)
-            // Instead the curHadr parameters should be updated ______
-            hQPDG=fQPDG;
-            hPDG=hQPDG.GetPDGCode();
-            hQC=fQPDG.GetQuarkContent();
-            hS=hQC.GetStrangeness();
-            hB=hQC.GetBaryonNumber();
-            hGSM = hQPDG.GetMass();
-		          h4m=f4Mom;
-            hM=h4m.m();
-            // End of Instead ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+	    if(sdm < 0.1 || (re2 > 0. && !totCharge && !totBaryoN && sdm/re2 < .0001)) // @!@
+         {
 #ifdef pdebug
-            G4cout<<"G4QE::FSI:cH4M="<<curHadr->Get4Momentum()<<G4endl;
+           G4cout<<"...G4QE::FSI:E/M conservation is corrected by a photon"<<G4endl;
 #endif
-		        } // End of the fusion check
-	       } // End of the LOOP over previous hadrons
-	     } // End of the FUSION check
-#ifdef chdebug
-      // *** (2) Charge Control Sum Calculation for the Charge Conservation Check ***
-      ccContSum=0;                   // Intermediate ChargeControlSum 
-      cbContSum=0;                   // Intermediate BaryonNumberControlSum 
-      if(nHadr)for(unsigned ic2=0;ic2<nHadr;ic2++) if(!(theQHadrons[ic2]->GetNFragments()))
-      {
-        ccContSum+=theQHadrons[ic2]->GetCharge();
-        cbContSum+=theQHadrons[ic2]->GetBaryonNumber();
-      }
-      unsigned pHadr=intQHadrons.size();
-      if(pHadr)for(unsigned ic3=0;ic3<pHadr;ic3++) if(!(intQHadrons[ic3]->GetNFragments()))
-      {
-        ccContSum+=intQHadrons[ic3]->GetCharge();
-        cbContSum+=intQHadrons[ic3]->GetBaryonNumber();
-      }
-      if(ccContSum-chContSum || cbContSum-bnContSum)
-      {
-        G4cout<<"*G4QE::FSI:(2) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-              <<G4endl;
-        //throw G4QException("G4QEnvironment::FSInteract: (2) Charge is not conserved");
-      }
-      // ***
-#endif
-      G4LorentzVector cH4Mom = curHadr->Get4Momentum(); // 4-mom of the current hadron
-      tot4Mom-=cH4Mom;                          // Reduce theTotal 4mom by theCurrent 4mom
-      if(hadron+1==nHadr)                       // The Last Hadron in the set
-	     {
-        G4double re =tot4Mom.e();
-        G4double rpx=tot4Mom.px();
-        G4double rpy=tot4Mom.py();
-        G4double rpz=tot4Mom.pz();
-        G4double dmo=rpx*rpx+rpy*rpy+rpz*rpz;
-        G4double dem=re*re+dmo;
+           cor4M=tot4Mom;                                 // Complete correction
+           G4QHadron* theH = new G4QHadron(22,tot4Mom);
+           theQHadrons.push_back(theH);    // (delete equivalent for the proton)
+         }
+         else                                             // @!@
+         {
+           if(dmo<0.0001 && re>900.)           // MomentumIsConserved - recoverMissing
+           {
+             if(fabs(re-mNeut)<.01)
+             {
 #ifdef pdebug
-        G4cout<<"G4QE::FSI: Is Energy&Mom conserved? t4M="<<tot4Mom<<",d2="<<dem<<G4endl;
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by neutron"<<G4endl;
 #endif
-		      //if(2>3)                                 //@@En/Mom conservation check is closed
-        if(dem>0.0001)                          // Energy or momentum is not conserved
-	       {
+               cor4M=G4LorentzVector(0.,0.,0.,mNeut); // Made as a prototype
+               G4QHadron* theH = new G4QHadron(90000001,G4LorentzVector(0.,0.,0.,mNeut));
+               theQHadrons.push_back(theH);    // (delete equivalent for the proton)
+             }
+             else if(fabs(re-mProt)<.01)
+		  {
 #ifdef pdebug
-          if(dem>.1)
-          {
-            G4cout<<"---Warning---G4QE::FSI:E/Mcons4M="<<tot4Mom<<dem<<".Correct!"<<G4endl;
-            G4LorentzVector cor4M(0.,0.,0.,mNeut);  // Prototype for the neutron
-            if(dmo<0.0001 && re>900.)               // MomentumIsConserved - recoverMissing
-			         {
-              if(fabs(re-mNeut)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by neutron"<<G4endl;
-                //cor4M=G4LorentzVector(0.,0.,0.,mNeut); // Made as a prototype
-                G4QHadron* theH = new G4QHadron(90000001,G4LorentzVector(0.,0.,0.,mNeut));
-                theQHadrons.push_back(theH);  // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mProt)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by proton"<<G4endl;
-                cor4M=G4LorentzVector(0.,0.,0.,mProt);
-                G4QHadron* theH = new G4QHadron(90001000,G4LorentzVector(0.,0.,0.,mProt));
-                theQHadrons.push_back(theH);  // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mDeut)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by deuteron"<<G4endl;
-                cor4M=G4LorentzVector(0.,0.,0.,mDeut);
-                G4QHadron* theH = new G4QHadron(90001001,G4LorentzVector(0.,0.,0.,mDeut));
-                theQHadrons.push_back(theH);  // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mTrit)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by tritium"<<G4endl;
-                cor4M=G4LorentzVector(0.,0.,0.,mTrit);
-                G4QHadron* theH = new G4QHadron(90001002,G4LorentzVector(0.,0.,0.,mTrit));
-                theQHadrons.push_back(theH);  // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mHe3)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by He3"<<G4endl;
-                cor4M=G4LorentzVector(0.,0.,0.,mHe3);
-                G4QHadron* theH = new G4QHadron(90002001,G4LorentzVector(0.,0.,0.,mHe3));
-                theQHadrons.push_back(theH);  // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mAlph)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by alpha"<<G4endl;
-                cor4M=G4LorentzVector(0.,0.,0.,mAlph);
-                G4QHadron* theH = new G4QHadron(90002002,G4LorentzVector(0.,0.,0.,mAlph));
-                theQHadrons.push_back(theH);  // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mNeut-mNeut)<.01)
-			           {
-                cor4M=G4LorentzVector(0.,0.,0.,mNeut+mNeut);
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by 2 neutrons"<<G4endl;
-                G4QHadron* theH1 = new G4QHadron(90000001,G4LorentzVector(0.,0.,0.,mNeut));
-                theQHadrons.push_back(theH1); // (delete equivalent for the proton)
-                G4QHadron* theH2 = new G4QHadron(90000001,G4LorentzVector(0.,0.,0.,mNeut));
-                theQHadrons.push_back(theH2); // (delete equivalent for the proton)
-              }
-			           else if(fabs(re-mProt-mProt)<.01)
-			           {
-                G4cout<<"...G4QE::FSI:E/M conservation is corrected by 2 protons"<<G4endl;
-                cor4M=G4LorentzVector(0.,0.,0.,mProt+mProt);
-                G4QHadron* theH1 = new G4QHadron(90001000,G4LorentzVector(0.,0.,0.,mProt));
-                theQHadrons.push_back(theH1); // (delete equivalent for the proton)
-                G4QHadron* theH2 = new G4QHadron(90001000,G4LorentzVector(0.,0.,0.,mProt));
-                theQHadrons.push_back(theH2); // (delete equivalent for the proton)
-              }
-			           else throw G4QException("***G4QEnv::FSInteract: Increase theCorrectionEps");
-			         }
-            else
-            {
-              // @@ Temporary very bad correction: just to pass through @@
-              curHadr->Set4Momentum(cH4Mom+tot4Mom); // modify 4-mom of the Last hadron
-              G4cout<<"*!* G4QE::FSI:E/M dif is added to theLast="<<tot4Mom+cH4Mom<<G4endl;
-              if(curHadr->GetBaryonNumber()>1)
-              {
-                G4QHadron* theNew  = new G4QHadron(curHadr); // Make NewHadr of theLastHadr
-                theQHadrons.pop_back();       // theLastQHadron is excluded from theOUTPUT
-                delete curHadr;//!!When kill,DON'T forget to delete theLastQH as an inst.!!
-                EvaporateResidual(theNew);    // Try to evaporate Residual
-              }
-              //throw G4QException("***G4QEnv::FSInteract: Energy/Momentum conservation");
-            }
-            tot4Mom=tot4Mom-cor4M;
-            G4cout<<"---Warning---G4QE::FSI:En/MomCons.Error is corrected:"<<cor4M<<G4endl;
-          }
-#endif
-          G4QHadron* prevHadr = theQHadrons[nHadr-2]; // GetPointer to Hadr prev to theLast
-          G4LorentzVector pH4Mom = prevHadr->Get4Momentum(); // 4-mom of thePreviousHadron
-          G4double cHM = curHadr->GetMass();  // Mass of the current hadron
-          G4double pHM = prevHadr->GetMass(); // Mass of the current hadron
-          tot4Mom+=cH4Mom+pH4Mom;
-          G4double totRM=tot4Mom.m();
-          if(cHM+pHM<=totRM)                  // *** Make the final correction ***
-		        {
-            if(!G4QHadron(tot4Mom).DecayIn2(pH4Mom,cH4Mom))
-            {
-              G4cout<<"***G4QE::FSI:**Correction**tot4M="<<tot4Mom<<totRM<<">sM="<<cHM+cHM
-                    <<G4endl;
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by proton"<<G4endl;
+#endif
+               cor4M=G4LorentzVector(0.,0.,0.,mProt);
+               G4QHadron* theH = new G4QHadron(90001000,G4LorentzVector(0.,0.,0.,mProt));
+               theQHadrons.push_back(theH);  // (delete equivalent for the proton)
+             }
+		  else if(fabs(re-mDeut)<.01)
+             {
+#ifdef pdebug
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by deuteron"<<G4endl;
+#endif
+               cor4M=G4LorentzVector(0.,0.,0.,mDeut);
+               G4QHadron* theH = new G4QHadron(90001001,G4LorentzVector(0.,0.,0.,mDeut));
+               theQHadrons.push_back(theH);  // (delete equivalent for the proton)
+             }
+             else if(fabs(re-mTrit)<.01)
+             {
+#ifdef pdebug
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by tritium"<<G4endl;
+#endif
+               cor4M=G4LorentzVector(0.,0.,0.,mTrit);
+               G4QHadron* theH = new G4QHadron(90001002,G4LorentzVector(0.,0.,0.,mTrit));
+               theQHadrons.push_back(theH);  // (delete equivalent for the proton)
+             }
+		  else if(fabs(re-mHe3)<.01)
+             {
+#ifdef pdebug
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by He3"<<G4endl;
+#endif
+               cor4M=G4LorentzVector(0.,0.,0.,mHe3);
+               G4QHadron* theH = new G4QHadron(90002001,G4LorentzVector(0.,0.,0.,mHe3));
+               theQHadrons.push_back(theH);  // (delete equivalent for the proton)
+             }
+             else if(fabs(re-mAlph)<.01)
+             {
+#ifdef pdebug
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by alpha"<<G4endl;
+#endif
+               cor4M=G4LorentzVector(0.,0.,0.,mAlph);
+               G4QHadron* theH = new G4QHadron(90002002,G4LorentzVector(0.,0.,0.,mAlph));
+               theQHadrons.push_back(theH);  // (delete equivalent for the proton)
+             }
+		  else if(fabs(re-mNeut-mNeut)<.01)
+		  {
 #ifdef pdebug
-              throw G4QException("***G4QEnvironment::FSInteract:CORRECTION DecIn2 error");
+               cor4M=G4LorentzVector(0.,0.,0.,mNeut+mNeut);
 #endif
-            }
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by 2 neutrons"<<G4endl;
+               G4QHadron* theH1 = new G4QHadron(90000001,G4LorentzVector(0.,0.,0.,mNeut));
+               theQHadrons.push_back(theH1); // (delete equivalent for the proton)
+               G4QHadron* theH2 = new G4QHadron(90000001,G4LorentzVector(0.,0.,0.,mNeut));
+               theQHadrons.push_back(theH2); // (delete equivalent for the proton)
+             }
+		  else if(fabs(re-mProt-mProt)<.01)
+		  {
+#ifdef pdebug
+               G4cout<<"...G4QE::FSI:E/M conservation is corrected by 2 protons"<<G4endl;
+#endif
+               cor4M=G4LorentzVector(0.,0.,0.,mProt+mProt);
+               G4QHadron* theH1 = new G4QHadron(90001000,G4LorentzVector(0.,0.,0.,mProt));
+               theQHadrons.push_back(theH1); // (delete equivalent for the proton)
+               G4QHadron* theH2 = new G4QHadron(90001000,G4LorentzVector(0.,0.,0.,mProt));
+               theQHadrons.push_back(theH2); // (delete equivalent for the proton)
+             }
+		  else throw G4QException("***G4QEnv::FSInteract: Try heavier nuclei at rest");
+		}
+           else if(sdm-misM >= -0.01)        // on flight correction @!@
+           {
+#ifdef pdebug
+             G4cout<<"...G4QE::FSI:E/M conservation is corrected by ResidualNucl"<<G4endl;
+#endif
+             G4QHadron* theH = new G4QHadron(mPDG,tot4Mom); // Create Residual Nucleus
+             cor4M=tot4Mom;                  // Complete correction
+             if(std::fabs(sdm-misM) <= 0.01) theQHadrons.push_back(theH); // As is
+             else EvaporateResidual(theH);   // Evaporate Residual Nucleus
+           }
+           else
+           {
+             G4QHadron* prevHadr = theQHadrons[nHadr-2]; // GetPointer to Prev to theLast
+             G4LorentzVector pH4Mom = prevHadr->Get4Momentum(); // 4mom of thePrevHadron
+             G4double cHM = curHadr->GetMass();  // Mass of the current hadron
+             G4double pHM = prevHadr->GetMass(); // Mass of the previous hadron
+             tot4Mom+=cH4Mom+pH4Mom;
+             G4double totRM=tot4Mom.m();
+             if(cHM+pHM<=totRM)                  // *** Make the final correction ***
+	        {
+               if(!G4QHadron(tot4Mom).DecayIn2(pH4Mom,cH4Mom))
+               {
+                 G4cout<<"***G4QE::FSI:**Correction**tot4M="<<tot4Mom<<totRM<<">sM="
+                       <<cHM+cHM<<G4endl;
+#ifdef pdebug
+                 throw G4QException("***G4QEnvironment::FSInteract:CORRECT DecIn2 error");
+#endif
+               }
 #ifdef chdebug
-            G4cout<<"---Warning---G4QE::FSI:***CORRECTION IS DONE*** d="<<dem<<G4endl;
-#endif
-            curHadr->Set4Momentum(cH4Mom);
-            prevHadr->Set4Momentum(pH4Mom);
-          }
-          else
-          {
-            G4cerr<<"*!*G4QE::FSI:NoCor "<<cHM<<"+"<<pHM<<"="<<cHM+pHM<<">"<<totRM<<G4endl;
-#ifdef pdebug
-            throw G4QException("***G4QEnvironment::FSInteraction: TEMPORARY EXCEPTION");
-#endif
-          }
-        }
-#ifdef pdebug
-        else G4cout<<"G4QE::FSI: Yes, it is. d="<<dem<<" for "<<nHadr<<" hadrons."<<G4endl;
-#endif
-      }
-    } // End of the Back fusion LOOP
-    // >| 2     | 2  | 2     | 2     | 2      | 2 - old    | 1. If gamma: add to sum4Mom
-    //  |>0->sum| 3  | 3     | 3     | 3      | 3 - old    | 2. Compare BN with the Last
-    //  | 5     |>5  | 4     | 4     | 4      | 4 - old    | 3. Swap if larger, del theLast
-    //  | 0     | 0  |>0->sum| 5<-sum| 5->evap| 2 - new    | 4. If the Last: add the sum
-    //  | 4     | 4  | 5     | ex    |        |(0 - gamma?)| 5. Decay/Eporate the Last
-    //  | 3     | ex |                        | 3 - new
+               G4cout<<"---Warning---G4QE::FSI:***CORRECTION IS DONE*** d="<<dem<<G4endl;
+#endif
+               curHadr->Set4Momentum(cH4Mom);
+               prevHadr->Set4Momentum(pH4Mom);
+             }
+             else
+             {
+               G4cerr<<"*!*G4QE::FSI: "<<cHM<<"+"<<pHM<<"="<<cHM+pHM<<">"<<totRM<<G4endl;
+#ifdef pdebug
+               throw G4QException("***G4QEnvironment::FSInteraction:TEMPORARY EXCEPTION");
+#endif
+             }
+           }
+           tot4Mom=tot4Mom-cor4M;
+#ifdef pdebug
+           G4cout<<"+++Warning+++G4QE::FSI:En/MomCons.Error is corrected:"<<cor4M<<G4endl;
+#endif
+         }
+       }
+#ifdef pdebug
+       else  G4cout<<"...G4QE::FSI:E/M conservation is good enough"<<G4endl;
+       G4cout<<"G4QE::FSI:EMCorrection by "<<theQHadrons.size()-nHadr<<" hadrons"<<G4endl;
+#endif
+       break;
+     } // End of the last hadron E/M check
+   } // End of the Back fusion LOOP
+   // >| 2     | 2  | 2     | 2     | 2      | 2 - old    | 1. If gamma: add to sum4Mom
+   //  |>0->sum| 3  | 3     | 3     | 3      | 3 - old    | 2. Compare BN with the Last
+   //  | 5     |>5  | 4     | 4     | 4      | 4 - old    | 3. Swap if larger, del theLast
+   //  | 0     | 0  |>0->sum| 5<-sum| 5->evap| 2 - new    | 4. If the Last: add the sum
+   //  | 4     | 4  | 5     | ex    |        |(0 - gamma?)| 5. Decay/Eporate the Last
+   //  | 3     | ex |                        | 3 - new
 #ifdef chdebug
-    // *** (3) Charge Control Sum Calculation for the Charge Conservation Check ***
-    ccContSum=0;                              // Intermediate ChargeControlSum 
-    cbContSum=0;                              // Intermediate BaryonNumberControlSum 
-    if(nHadr)for(unsigned ic3=0; ic3<nHadr; ic3++) if(!(theQHadrons[ic3]->GetNFragments()))
-    {
-      ccContSum+=theQHadrons[ic3]->GetCharge();
-      cbContSum+=theQHadrons[ic3]->GetBaryonNumber();
-    }
-    if(ccContSum-chContSum || cbContSum-bnContSum)
-    {
-      G4cout<<"*G4QE::FSI:(3) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-            <<G4endl;
-      //throw G4QException("G4QEnvironment::FSInteract: (3) Charge is not conserved");
-    }
-    // ***
-#endif
-    G4LorentzVector sum(0.,0.,0.,0.);
-    G4int gamCount=0;
-    nHadr=theQHadrons.size();
-    G4bool frag=false;
-    if(nHadr>2)for(unsigned f=0; f<theQHadrons.size(); f++) //Check that there's a fragment
-    {
-      G4int fBN=theQHadrons[f]->GetBaryonNumber(); // Baryon number of the fragment
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:"<<f<<",PDG="<<theQHadrons[f]->GetPDGCode()<<",fBN="<<fBN<<G4endl;
-#endif
-      if(fBN>1) frag=true;                    // The fragment with A>1 is found
-    }
-#ifdef pdebug
-    G4cout<<"G4QE::FSI:===Before Gamma Compression===, nH="<<nHadr<<",frag="<<frag<<G4endl;
+   // *** (3) Charge Control Sum Calculation for the Charge Conservation Check ***
+   ccContSum=0;                              // Intermediate ChargeControlSum 
+   cbContSum=0;                              // Intermediate BaryonNumberControlSum 
+   if(nHadr)for(unsigned ic3=0; ic3<nHadr; ic3++) if(!(theQHadrons[ic3]->GetNFragments()))
+   {
+     ccContSum+=theQHadrons[ic3]->GetCharge();
+     cbContSum+=theQHadrons[ic3]->GetBaryonNumber();
+   }
+   if(ccContSum-chContSum || cbContSum-bnContSum)
+   {
+     G4cout<<"*G4QE::FSI:(3) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+           <<G4endl;
+     //throw G4QException("G4QEnvironment::FSInteract: (3) Charge is not conserved");
+   }
+   // ***
+#endif
+   G4LorentzVector sum(0.,0.,0.,0.);
+   G4int gamCount=0;
+   nHadr=theQHadrons.size();
+   G4bool frag=false;
+   if(nHadr>2)for(unsigned f=0; f<theQHadrons.size(); f++) //Check that there's a fragment
+   {
+     G4int fBN=theQHadrons[f]->GetBaryonNumber(); // Baryon number of the fragment
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:"<<f<<",PDG="<<theQHadrons[f]->GetPDGCode()<<",fBN="<<fBN<<G4endl;
+#endif
+     if(fBN>1) frag=true;                    // The fragment with A>1 is found
+   }
+#ifdef pdebug
+   G4cout<<"G4QE::FSI:===Before Gamma Compression===, nH="<<nHadr<<",frag="<<frag<<G4endl;
 #endif
 	   if(nHadr>2 && frag) for(G4int h=nHadr-1; h>=0; h--)//Collect gammas & kill DecayedHadrs
-    {
-      G4QHadron* curHadr = theQHadrons[h];    // Get a pointer to the current Hadron
-      G4int   hF = curHadr->GetNFragments();
-      G4int hPDG = curHadr->GetPDGCode();
-      if(hPDG==89999003||hPDG==90002999)
-        G4cout<<"---Warning---G4QEnv::FSI:nD-/pD++(1)="<<hPDG<<G4endl;
+   {
+     G4QHadron* curHadr = theQHadrons[h];    // Get a pointer to the current Hadron
+     G4int   hF = curHadr->GetNFragments();
+     G4int hPDG = curHadr->GetPDGCode();
+     if(hPDG==89999003||hPDG==90002999)
+       G4cout<<"---Warning---G4QEnv::FSI:nD-/pD++(1)="<<hPDG<<G4endl;
 #ifdef pdebug
 	     G4cout<<"G4QE::FSI: h#"<<h<<", hPDG="<<hPDG<<", hNFrag="<<hF<<G4endl;
 #endif
 	     if(hF||hPDG==22)                        // It should be compressed
 	     {
-        G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];//Get Ptr to the Last Hadron
-        if(hPDG==22)
-        {
-          sum+=curHadr->Get4Momentum();       // Add 4Mom of gamma to the "sum"
-          gamCount++;
-        }
-        if(h<static_cast<G4int>(theQHadrons.size())-1) // Need swap with the Last
+       G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];//Get Ptr to the Last Hadron
+       if(hPDG==22)
+       {
+         sum+=curHadr->Get4Momentum();       // Add 4Mom of gamma to the "sum"
+         gamCount++;
+       }
+       if(h<static_cast<G4int>(theQHadrons.size())-1) // Need swap with the Last
 	       {
-          curHadr->SetNFragments(0);
-          curHadr->Set4Momentum(theLast->Get4Momentum());
-          G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-          if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
-          else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+         curHadr->SetNFragments(0);
+         curHadr->Set4Momentum(theLast->Get4Momentum());
+         G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+         if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
+         else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
 #ifdef pdebug
 	         G4cout<<"G4QE::FSI: Exchange with the last is done"<<G4endl;
 #endif
 	       }
-        theQHadrons.pop_back();               // theLastQHadron is excluded from QHadrons
-        delete theLast;//!!When kill,DON'T forget to delete theLastQHadron as an instance!!
-        nHadr--;
+       theQHadrons.pop_back();               // theLastQHadron is excluded from QHadrons
+       delete theLast;//!!When kill,DON'T forget to delete theLastQHadron as an instance!!
+       nHadr--;
 #ifdef pdebug
 	       G4cout<<"G4QE::FSI: The last is compessed"<<G4endl;
 #endif
-      }
-    }
+     }
+   }
 #ifdef pdebug
-    G4cout<<"G4QE::FSI: nH="<<nHadr<<"="<<theQHadrons.size()<<", sum="<<sum<<G4endl;
+   G4cout<<"G4QE::FSI: nH="<<nHadr<<"="<<theQHadrons.size()<<", sum="<<sum<<G4endl;
 #endif
 #ifdef chdebug
-    // *** (4) Charge Control Sum Calculation for the Charge Conservation Check ***
-    ccContSum=0;                   // Intermediate ChargeControlSum 
-    cbContSum=0;                   // Intermediate BaryonNumberControlSum 
-    if(nHadr)for(unsigned ic4=0; ic4<nHadr; ic4++) if(!(theQHadrons[ic4]->GetNFragments()))
-    {
-        ccContSum+=theQHadrons[ic4]->GetCharge();
-        cbContSum+=theQHadrons[ic4]->GetBaryonNumber();
+   // *** (4) Charge Control Sum Calculation for the Charge Conservation Check ***
+   ccContSum=0;                   // Intermediate ChargeControlSum 
+   cbContSum=0;                   // Intermediate BaryonNumberControlSum 
+   if(nHadr)for(unsigned ic4=0; ic4<nHadr; ic4++) if(!(theQHadrons[ic4]->GetNFragments()))
+   {
+       ccContSum+=theQHadrons[ic4]->GetCharge();
+       cbContSum+=theQHadrons[ic4]->GetBaryonNumber();
 	   }
-    if(ccContSum-chContSum || cbContSum-bnContSum)
-    {
-      G4cout<<"*G4QE::FSI:(4) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-            <<G4endl;
-      //throw G4QException("G4QEnvironment::FSInteract: (4) Charge is not conserved");
-    }
-    // ***
+   if(ccContSum-chContSum || cbContSum-bnContSum)
+   {
+     G4cout<<"*G4QE::FSI:(4) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+           <<G4endl;
+     //throw G4QException("G4QEnvironment::FSInteract: (4) Charge is not conserved");
+   }
+   // ***
 #endif
-    if(nHadr>1)for(unsigned hdr=0; hdr<theQHadrons.size()-1; hdr++)//Ord:theBigestIstheLast
-    {
+   if(nHadr>1)for(unsigned hdr=0; hdr<theQHadrons.size()-1; hdr++)//Ord:theBigestIstheLast
+   {
 #ifdef pdebug
-      G4cout<<"G4QE::FSI:ORD,h="<<hdr<<"<"<<nHadr<<",hPDG="<<theQHadrons[hdr]->GetPDGCode()
-            <<G4endl;
+     G4cout<<"G4QE::FSI:ORD,h="<<hdr<<"<"<<nHadr<<",hPDG="<<theQHadrons[hdr]->GetPDGCode()
+           <<G4endl;
 #endif
-      G4QHadron* curHadr = theQHadrons[hdr];  // Get a pointer to the current Hadron
-      G4QHadron* theLast = theQHadrons[theQHadrons.size()-1]; //Get Ptr to the Last Hadron
-      G4int hB           = curHadr->GetBaryonNumber();
-      G4int lB           = theLast->GetBaryonNumber();
+     G4QHadron* curHadr = theQHadrons[hdr];  // Get a pointer to the current Hadron
+     G4QHadron* theLast = theQHadrons[theQHadrons.size()-1]; //Get Ptr to the Last Hadron
+     G4int hB           = curHadr->GetBaryonNumber();
+     G4int lB           = theLast->GetBaryonNumber();
 #ifdef pdebug
-      G4cout<<"G4QE::FSI:hBN="<<hB<<"<lBN="<<lB<<",lstPDG="<<theLast->GetPDGCode()<<G4endl;
+     G4cout<<"G4QE::FSI:hBN="<<hB<<"<lBN="<<lB<<",lstPDG="<<theLast->GetPDGCode()<<G4endl;
 #endif
-      if(lB<hB)                               // Must be swapped
+     if(lB<hB)                               // Must be swapped
 	     {
-        G4QPDGCode   hQPDG = curHadr->GetQPDG();
-        G4LorentzVector h4m= curHadr->Get4Momentum();
-        curHadr->Set4Momentum(theLast->Get4Momentum());
-        G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
-        if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
-        else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
-        theLast->Set4Momentum(h4m);
-        theLast->SetQPDG(hQPDG);
+       G4QPDGCode   hQPDG = curHadr->GetQPDG();
+       G4LorentzVector h4m= curHadr->Get4Momentum();
+       curHadr->Set4Momentum(theLast->Get4Momentum());
+       G4QPDGCode lQP=theLast->GetQPDG();    // The QPDG of the last
+       if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of LastHadr
+       else curHadr->SetQC(theLast->GetQC());// CurHadrPDG instead of LastHadrPDG
+       theLast->Set4Momentum(h4m);
+       theLast->SetQPDG(hQPDG);
 	     }
-    }
-    nHadr=theQHadrons.size();
+   }
+   nHadr=theQHadrons.size();
 #ifdef chdebug
-    // *** (5) Charge Control Sum Calculation for the Charge Conservation Check ***
-    ccContSum=0;                              // Intermediate ChargeControlSum 
-    cbContSum=0;                              // Intermediate BaryonNumberControlSum 
-    if(nHadr)for(unsigned ic5=0; ic5<nHadr; ic5++) if(!(theQHadrons[ic5]->GetNFragments()))
-    {
-      ccContSum+=theQHadrons[ic5]->GetCharge();
-      cbContSum+=theQHadrons[ic5]->GetBaryonNumber();
-    }
-    if(ccContSum-chContSum || cbContSum-bnContSum)
-    {
-      G4cout<<"*G4QE::FSI:(5) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-            <<G4endl;
-      //throw G4QException("G4QEnvironment::FSInteract: (5) Charge is not conserved");
-    }
-    // ***
-#endif
-    if(gamCount)
-    {
-      G4QHadron* theLast = theQHadrons[nHadr-1];// Get a pointer to the Last Hadron
-      if(theLast->GetBaryonNumber()>1)        // "Absorb photons & evaporate/decay" case
-      {
-        G4QHadron* theNew  = new G4QHadron(theLast); // Make New Hadron of the Last Hadron
+   // *** (5) Charge Control Sum Calculation for the Charge Conservation Check ***
+   ccContSum=0;                              // Intermediate ChargeControlSum 
+   cbContSum=0;                              // Intermediate BaryonNumberControlSum 
+   if(nHadr)for(unsigned ic5=0; ic5<nHadr; ic5++) if(!(theQHadrons[ic5]->GetNFragments()))
+   {
+     ccContSum+=theQHadrons[ic5]->GetCharge();
+     cbContSum+=theQHadrons[ic5]->GetBaryonNumber();
+   }
+   if(ccContSum-chContSum || cbContSum-bnContSum)
+   {
+     G4cout<<"*G4QE::FSI:(5) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+           <<G4endl;
+     //throw G4QException("G4QEnvironment::FSInteract: (5) Charge is not conserved");
+   }
+   // ***
+#endif
+   if(gamCount)
+   {
+     G4QHadron* theLast = theQHadrons[nHadr-1];// Get a pointer to the Last Hadron
+     if(theLast->GetBaryonNumber()>1)        // "Absorb photons & evaporate/decay" case
+     {
+       G4QHadron* theNew  = new G4QHadron(theLast); // Make New Hadron of the Last Hadron
 #ifdef ffdebug
-        G4cout<<"G4QE::FSI:BeforeLastSub,n="<<nHadr<<",PDG="<<theNew->GetPDGCode()<<G4endl;
+       G4cout<<"G4QE::FSI:BeforeLastSub,n="<<nHadr<<",PDG="<<theNew->GetPDGCode()<<G4endl;
 #endif
-        theQHadrons.pop_back();               // the last QHadron is excluded from OUTPUT
-        delete theLast;//*!When kill,DON'T forget to delete theLastQHadron as an instance!*
-        nHadr--;                              // TheLastHadron is only virtually exists now
-        G4int newPDG=theNew->GetPDGCode();
-        G4LorentzVector new4M=theNew->Get4Momentum(); // 4-mom of the fragment
+       theQHadrons.pop_back();               // the last QHadron is excluded from OUTPUT
+       delete theLast;//*!When kill,DON'T forget to delete theLastQHadron as an instance!*
+       nHadr--;                              // TheLastHadron is only virtually exists now
+       G4int newPDG=theNew->GetPDGCode();
+       G4LorentzVector new4M=theNew->Get4Momentum(); // 4-mom of the fragment
 #ifdef pdebug
-        G4cout<<"G4QE::FSI:gSum4M="<<sum<<" is added to "<<new4M<<", PDG="<<newPDG<<G4endl;
+       G4cout<<"G4QE::FSI:gSum4M="<<sum<<" is added to "<<new4M<<", PDG="<<newPDG<<G4endl;
 #endif
-        G4LorentzVector exRes4M=new4M+sum;    //Icrease 4Mom of theLast by "sum of gammas"
-        G4QNucleus exResidN(exRes4M,newPDG);
-        //G4double mGamEva=2700.;             // @@Threshold for the evaporation
-        G4double mGamEva=1700.;               // @@Threshold for the evaporation
+       G4LorentzVector exRes4M=new4M+sum;    //Icrease 4Mom of theLast by "sum of gammas"
+       G4QNucleus exResidN(exRes4M,newPDG);
+       //G4double mGamEva=2700.;             // @@Threshold for the evaporation
+       G4double mGamEva=1700.;               // @@Threshold for the evaporation
 	       if(exResidN.SplitBaryon())
 	       //if(2>3)                             //CloseTheFirstPriorityResN+gamSumEvaporation
 	       {
-          theNew->Set4Momentum(exRes4M);      // Icrease 4Mom of theLast by "sum" to Evapor
+         theNew->Set4Momentum(exRes4M);      // Icrease 4Mom of theLast by "sum" to Evapor
 #ifdef ffdebug
-          G4cout<<"G4QE::FSI:BeforeE(1),n="<<nHadr<<",nPDG="<<theNew->GetPDGCode()<<G4endl;
+         G4cout<<"G4QE::FSI:BeforeE(1),n="<<nHadr<<",nPDG="<<theNew->GetPDGCode()<<G4endl;
 #endif
-          EvaporateResidual(theNew);          // Try to evaporate the Nucl.(@@DecDib)(d.e.)
-        }
-        else if(theNew->GetPDGCode()==90002002&&exRes4M.m()>mHe3+mNeut&&G4UniformRand()>.5)
+         EvaporateResidual(theNew);          // Try to evaporate the Nucl.(@@DecDib)(d.e.)
+       }
+       else if(theNew->GetPDGCode()==90002002&&exRes4M.m()>mHe3+mNeut&&G4UniformRand()>.5)
 	       {
-          theNew->Set4Momentum(exRes4M);      // Icrease 4Mom of theLast by "sum" to Evapor
-          G4LorentzVector n4M(0.,0.,0.,mNeut);
-          G4LorentzVector h4M(0.,0.,0.,mHe3);
-          if(!theNew->DecayIn2(n4M,h4M))
-          {
-            G4cerr<<"***G4QE::FSI:GamSup, tM="<<exRes4M.m()<<"<n+He3="<<mNeut+mHe3<<G4endl;
-            throw G4QException("***G4QEnvironment::FSInter:GamSUPPRES DecIn2(n+He3)error");
-          }
+         theNew->Set4Momentum(exRes4M);      // Icrease 4Mom of theLast by "sum" to Evapor
+         G4LorentzVector n4M(0.,0.,0.,mNeut);
+         G4LorentzVector h4M(0.,0.,0.,mHe3);
+         if(!theNew->DecayIn2(n4M,h4M))
+         {
+           G4cerr<<"***G4QE::FSI:GamSup, tM="<<exRes4M.m()<<"<n+He3="<<mNeut+mHe3<<G4endl;
+           throw G4QException("***G4QEnvironment::FSInter:GamSUPPRES DecIn2(n+He3)error");
+         }
 #ifdef ffdebug
-          G4cout<<"G4QE::FSI:Gamma Suppression succided, n="<<n4M<<", He3="<<h4M<<G4endl;
-#endif
-          theNew->Set4Momentum(n4M);
-          theNew->SetQPDG(nQPDG);             // convert the alpha to the neutron
-          theQHadrons.push_back(theNew);      // (delete equivalent for theHad=neutron)
-          G4QHadron* theHe3 = new G4QHadron(90002001,h4M);// Make a New Hadr for the He3
-          theQHadrons.push_back(theHe3);      // (delete equivalent for the proton)
-        }
+         G4cout<<"G4QE::FSI:Gamma Suppression succided, n="<<n4M<<", He3="<<h4M<<G4endl;
+#endif
+         theNew->Set4Momentum(n4M);
+         theNew->SetQPDG(nQPDG);             // convert the alpha to the neutron
+         theQHadrons.push_back(theNew);      // (delete equivalent for theHad=neutron)
+         G4QHadron* theHe3 = new G4QHadron(90002001,h4M);// Make a New Hadr for the He3
+         theQHadrons.push_back(theHe3);      // (delete equivalent for the proton)
+       }
 	       else if(nHadr)                        // Get LastHadrBefResNuc, absorb gam & decay
 	       //else if(2>3)                        // Close the pair absorbtion of gamma
 	       {
-          if(nHadr>1)for(unsigned sh=0; sh<theQHadrons.size()-1; sh++)//Ord:MinE is TheLast
-          {
-            G4QHadron* curHadr = theQHadrons[sh];// Get a pointer to the current Hadron
-            G4QHadron* thePrev = theQHadrons[theQHadrons.size()-1]; //GetPtr to theLastHadr
-            G4LorentzVector h4M= curHadr->Get4Momentum();
-            G4LorentzVector l4M= thePrev->Get4Momentum();
+         if(nHadr>1)for(unsigned sh=0; sh<theQHadrons.size()-1; sh++)//Ord:MinE is TheLast
+         {
+           G4QHadron* curHadr = theQHadrons[sh];// Get a pointer to the current Hadron
+           G4QHadron* thePrev = theQHadrons[theQHadrons.size()-1]; //GetPtr to theLastHadr
+           G4LorentzVector h4M= curHadr->Get4Momentum();
+           G4LorentzVector l4M= thePrev->Get4Momentum();
 #ifdef ffdebug
-            G4cout<<"G4QE::FSI:SO,h="<<sh<<"<"<<nHadr<<",PDG/LV="<<curHadr->GetPDGCode()
-                  <<h4M<<G4endl;
+           G4cout<<"G4QE::FSI:SO,h="<<sh<<"<"<<nHadr<<",PDG/LV="<<curHadr->GetPDGCode()
+                 <<h4M<<G4endl;
 #endif
-            G4double hM=h4M.m();
-            G4double hT=h4M.e()-hM;
-            G4double lT=l4M.e()-l4M.m();
+           G4double hM=h4M.m();
+           G4double hT=h4M.e()-hM;
+           G4double lT=l4M.e()-l4M.m();
 #ifdef ffdebug
-            G4cout<<"G4QE::FSI:hT="<<hT<<"<T="<<lT<<".PDG="<<thePrev->GetPDGCode()<<G4endl;
+           G4cout<<"G4QE::FSI:hT="<<hT<<"<T="<<lT<<".PDG="<<thePrev->GetPDGCode()<<G4endl;
 #endif
-            if(hM>mGamEva&&lT>hT)             // Must be swapped as the current is smaller
+           if(hM>mGamEva&&lT>hT)             // Must be swapped as the current is smaller
 	           {
-              G4QPDGCode   hQPDG = curHadr->GetQPDG();
-              curHadr->Set4Momentum(l4M);
-              G4QPDGCode lQP=thePrev->GetQPDG();    // The QPDG of the previous
-              if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-              else curHadr->SetQC(thePrev->GetQC());// CurHadrPDG instead of PrevHadrPDG
-              thePrev->Set4Momentum(h4M);
-              thePrev->SetQPDG(hQPDG);
+             G4QPDGCode   hQPDG = curHadr->GetQPDG();
+             curHadr->Set4Momentum(l4M);
+             G4QPDGCode lQP=thePrev->GetQPDG();    // The QPDG of the previous
+             if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+             else curHadr->SetQC(thePrev->GetQC());// CurHadrPDG instead of PrevHadrPDG
+             thePrev->Set4Momentum(h4M);
+             thePrev->SetQPDG(hQPDG);
 	           }
-          }
-          nHadr=theQHadrons.size();
-          G4QHadron* thePrev = theQHadrons[nHadr-1]; // GetPtr to the BeforeResidNuclHadron
-          if(thePrev->Get4Momentum().m()>mGamEva)
-          {
-            G4QHadron* theHad  = new G4QHadron(thePrev);// MakeNewHadr of theBeforeResNuclH
+         }
+         nHadr=theQHadrons.size();
+         G4QHadron* thePrev = theQHadrons[nHadr-1]; // GetPtr to the BeforeResidNuclHadron
+         if(thePrev->Get4Momentum().m()>mGamEva)
+         {
+           G4QHadron* theHad  = new G4QHadron(thePrev);// MakeNewHadr of theBeforeResNuclH
 #ifdef ffdebug
-            G4cout<<"G4QE::FSI:BeforeResidNucHadr nH="<<nHadr<<",hPDG="
-                  <<theHad->GetPDGCode()<<G4endl;
-#endif
-            theQHadrons.pop_back();           // theLastQHadron excluded from OUTPUT
-            delete thePrev;//*!When kill,DON'T forget to delete theLastQHadr asAnInstance!*
-            G4LorentzVector n4M=theNew->Get4Momentum();// 4Mom of theLast (biggest nucleus)
-            G4LorentzVector h4M=theHad->Get4Momentum();// 4Mom of the previous Hadron in HV
-            G4LorentzVector dh4M=exRes4M+h4M; // 4Mom of LH+PH+sum(gam) for theDecay
-            G4double dhM=dh4M.m();            // M of LH+PH+sum(gammas) for theDecay
-            if(theHad->GetPDGCode()==90001001&&dhM>n4M.m()+mProt+mNeut&&G4UniformRand()>.5)
+           G4cout<<"G4QE::FSI:BeforeResidNucHadr nH="<<nHadr<<",hPDG="
+                 <<theHad->GetPDGCode()<<G4endl;
+#endif
+           theQHadrons.pop_back();           // theLastQHadron excluded from OUTPUT
+           delete thePrev;//*!When kill,DON'T forget to delete theLastQHadr asAnInstance!*
+           G4LorentzVector n4M=theNew->Get4Momentum();// 4Mom of theLast (biggest nucleus)
+           G4LorentzVector h4M=theHad->Get4Momentum();// 4Mom of the previous Hadron in HV
+           G4LorentzVector dh4M=exRes4M+h4M; // 4Mom of LH+PH+sum(gam) for theDecay
+           G4double dhM=dh4M.m();            // M of LH+PH+sum(gammas) for theDecay
+           if(theHad->GetPDGCode()==90001001&&dhM>n4M.m()+mProt+mNeut&&G4UniformRand()>.5)
 		          //if(2>3)                           // Close Possibility toSplitDeuteron
-            {
-              G4double nuM=n4M.m();
-              h4M=G4LorentzVector(0.,0.,0.,mNeut);
-              G4LorentzVector p4M(0.,0.,0.,mProt);
-              G4double sum=nuM+mNeut+mProt;
-              if(fabs(dhM-sum)<eps)
-              {
-                n4M=dh4M*(nuM/sum);
-                h4M=dh4M*(mNeut/sum);
-                p4M=dh4M*(mProt/sum);
-              }
-              else if(dhM<sum || !G4QHadron(dh4M).DecayIn3(n4M,h4M,p4M))
-              {
-                G4cerr<<"***G4QE::FSI:GamSupByD,M="<<dhM<<"<A+p+n="<<sum<<G4endl;
-                throw G4QException("G4QEnviron::FSInt:Gamma SUPPRESSION by D DecIn3error");
-              }
+           {
+             G4double nuM=n4M.m();
+             h4M=G4LorentzVector(0.,0.,0.,mNeut);
+             G4LorentzVector p4M(0.,0.,0.,mProt);
+             G4double sum=nuM+mNeut+mProt;
+             if(fabs(dhM-sum)<eps)
+             {
+               n4M=dh4M*(nuM/sum);
+               h4M=dh4M*(mNeut/sum);
+               p4M=dh4M*(mProt/sum);
+             }
+             else if(dhM<sum || !G4QHadron(dh4M).DecayIn3(n4M,h4M,p4M))
+             {
+               G4cerr<<"***G4QE::FSI:GamSupByD,M="<<dhM<<"<A+p+n="<<sum<<G4endl;
+               throw G4QException("G4QEnviron::FSInt:Gamma SUPPRESSION by D DecIn3error");
+             }
 #ifdef ffdebug
-              G4cout<<"G4QE::FSI:GamSuppression by d succided,h="<<h4M<<",A="<<n4M<<G4endl;
-#endif
-              theHad->Set4Momentum(h4M);
-              theHad->SetQPDG(nQPDG);         // convert the deuteron to the neutron
-              theQHadrons.push_back(theHad);  // (delete equivalent for theHad=neutron)
-              G4QHadron* theProt = new G4QHadron(90001000,p4M);// Make NewHadr for Proton
-              theQHadrons.push_back(theProt); // (delete equivalent for the proton)
-              theNew->Set4Momentum(n4M);
-              EvaporateResidual(theNew);      // TryToEvaporate theResNuc onceMore(del.eq.)
-            }
-            else
-            {
-              if(!G4QHadron(dh4M).DecayIn2(n4M,h4M))
-              {
-                G4cerr<<"*G4QE::FSI:GamSup,M="<<dh4M.m()<<"<A+h="<<n4M.m()+h4M.m()<<G4endl;
-                throw G4QException("G4QEnviron::FSInt:GamSUPPRESSION (3) DecIn2 error");
-              }
+             G4cout<<"G4QE::FSI:GamSuppression by d succided,h="<<h4M<<",A="<<n4M<<G4endl;
+#endif
+             theHad->Set4Momentum(h4M);
+             theHad->SetQPDG(nQPDG);         // convert the deuteron to the neutron
+             theQHadrons.push_back(theHad);  // (delete equivalent for theHad=neutron)
+             G4QHadron* theProt = new G4QHadron(90001000,p4M);// Make NewHadr for Proton
+             theQHadrons.push_back(theProt); // (delete equivalent for the proton)
+             theNew->Set4Momentum(n4M);
+             EvaporateResidual(theNew);      // TryToEvaporate theResNuc onceMore(del.eq.)
+           }
+           else
+           {
+             if(!G4QHadron(dh4M).DecayIn2(n4M,h4M))
+             {
+               G4cerr<<"*G4QE::FSI:GamSup,M="<<dh4M.m()<<"<A+h="<<n4M.m()+h4M.m()<<G4endl;
+               throw G4QException("G4QEnviron::FSInt:GamSUPPRESSION (3) DecIn2 error");
+             }
 #ifdef ffdebug
-              G4cout<<"G4QE::FSI:Gamma Suppression succided, h="<<h4M<<", A="<<n4M<<G4endl;
+             G4cout<<"G4QE::FSI:Gamma Suppression succided, h="<<h4M<<", A="<<n4M<<G4endl;
 #endif
-              theHad->Set4Momentum(h4M);
-              theQHadrons.push_back(theHad);  // (delete equivalent for theHad)
-              theNew->Set4Momentum(n4M);
-              EvaporateResidual(theNew);      // Try to evaporate theResNuc (del.eq.)
-            }
+             theHad->Set4Momentum(h4M);
+             theQHadrons.push_back(theHad);  // (delete equivalent for theHad)
+             theNew->Set4Momentum(n4M);
+             EvaporateResidual(theNew);      // Try to evaporate theResNuc (del.eq.)
+           }
 	         }
-          else
+         else
 	         {
-            theNew->Set4Momentum(exRes4M);    // Icrease 4MomOfTheLast by "sum" for Evapor
+           theNew->Set4Momentum(exRes4M);    // Icrease 4MomOfTheLast by "sum" for Evapor
 #ifdef ffdebug
-            G4cout<<"G4QE::FSI:BeforE(2),n="<<nHadr<<",PDG="<<theNew->GetPDGCode()<<G4endl;
+           G4cout<<"G4QE::FSI:BeforE(2),n="<<nHadr<<",PDG="<<theNew->GetPDGCode()<<G4endl;
 #endif
-            EvaporateResidual(theNew);  // Try to evaporate the Nucl.(@@DecDib)(delete eq.)
-          }
-        }
+           EvaporateResidual(theNew);  // Try to evaporate the Nucl.(@@DecDib)(delete eq.)
+         }
+       }
 	       else                            // Absorb gammas to theResidNucleus and evaporateIt
 	       {
-          theNew->Set4Momentum(exRes4M);// Icrease 4Mom of the Last by the "sum" for Evap
-          EvaporateResidual(theNew);    // Try to evaporate the Nucl.(@@DecDib)(delete eq.)
+         theNew->Set4Momentum(exRes4M);// Icrease 4Mom of the Last by the "sum" for Evap
+         EvaporateResidual(theNew);    // Try to evaporate the Nucl.(@@DecDib)(delete eq.)
 #ifdef ffdebug
-          G4cout<<"G4QE::FSI:Bef.E(3),n="<<nHadr<<",PDG="<<newPDG<<",4M="<<exRes4M<<G4endl;
-          unsigned nHN=theQHadrons.size();
-          G4cout<<"G4QE::FSI:AfterEvaporation: nNew="<<nHN<<G4endl;
-          if(nHN>nHadr)for(unsigned idp=nHadr; idp<nHN; idp++)
+         G4cout<<"G4QE::FSI:Bef.E(3),n="<<nHadr<<",PDG="<<newPDG<<",4M="<<exRes4M<<G4endl;
+         unsigned nHN=theQHadrons.size();
+         G4cout<<"G4QE::FSI:AfterEvaporation: nNew="<<nHN<<G4endl;
+         if(nHN>nHadr)for(unsigned idp=nHadr; idp<nHN; idp++)
 		        G4cout<<"G4QE::FSI: h#"<<idp<<", PDG="<<theQHadrons[idp]->GetPDGCode()<<G4endl;
 #endif
-        }
-        //G4int onH=nHadr;
-        nHadr=theQHadrons.size();
-        //if(nHadr>onH) bfAct=true;
-      } // End of "the last is the nucleus" case
-    } // End of "There are gammas to assimilate"
-  } // End of the While-LOOOP for the Back Fusion
-  tot4Mom=tmp4Mom; // Recover tot4Mom after the "En/Mom conservation" reduction
-  // Final attempt to alpha-decay the residual nucleus, suppressing the gamma ===========
-  G4int gamcnt=0; // Counter of the residual gammas at this level
-  nHadr=theQHadrons.size();
-  unsigned maxB=nHadr-1;
+       }
+       //G4int onH=nHadr;
+       nHadr=theQHadrons.size();
+       //if(nHadr>onH) bfAct=true;
+     } // End of "the last is the nucleus" case
+   } // End of "There are gammas to assimilate"
+ } // End of the While-LOOOP for the Back Fusion
+ tot4Mom=tmp4Mom; // Recover tot4Mom after the "En/Mom conservation" reduction
+ // Final attempt to alpha-decay the residual nucleus, suppressing the gamma ===========
+ G4int gamcnt=0; // Counter of the residual gammas at this level
+ nHadr=theQHadrons.size();
+ unsigned maxB=nHadr-1;
 #ifdef chdebug
-  // *** (6) Charge Control Sum Calculation for the Charge Conservation Check ***
-  ccContSum=0;                   // Intermediate ChargeControlSum 
-  cbContSum=0;                   // Intermediate BaryonNumberControlSum 
-  if(nHadr)for(unsigned ic6=0; ic6<nHadr; ic6++) if(!(theQHadrons[ic6]->GetNFragments()))
-  {
-    ccContSum+=theQHadrons[ic6]->GetCharge();
-    cbContSum+=theQHadrons[ic6]->GetBaryonNumber();
-  }
-  if(ccContSum-chContSum || cbContSum-bnContSum)
-  {
-    G4cout<<"*G4QE::FSI:(6) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-          <<G4endl;
-    //throw G4QException("G4QEnvironment::FSInteract: (6) Charge is not conserved");
-  }
-  // ***
-#endif
-  lHadr=theQHadrons[maxB]->GetBaryonNumber();
-  G4int tHadr=lHadr;                             // Total Baryon number
-  if(nHadr>1)for(unsigned ipo=0; ipo<theQHadrons.size()-1; ipo++) // Find BiggestNuclFragm
-  {
-    G4int hPDG = theQHadrons[ipo]->GetPDGCode();
-    if(hPDG==22) gamcnt++;
-    else
-    {
-      G4int hBN  = theQHadrons[ipo]->GetBaryonNumber();
-      tHadr+=hBN;
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:h#"<<ipo<<":hPDG="<<hPDG<<",hBN="<<hBN<<",nH="<<theQHadrons.size()
-            <<G4endl;
-#endif
-      if(hBN>lHadr)
-      {
-        lHadr=hBN;
-        maxB=ipo;
-      }                                           // the current biggest nuclear fragment
+ // *** (6) Charge Control Sum Calculation for the Charge Conservation Check ***
+ ccContSum=0;                   // Intermediate ChargeControlSum 
+ cbContSum=0;                   // Intermediate BaryonNumberControlSum 
+ if(nHadr)for(unsigned ic6=0; ic6<nHadr; ic6++) if(!(theQHadrons[ic6]->GetNFragments()))
+ {
+   ccContSum+=theQHadrons[ic6]->GetCharge();
+   cbContSum+=theQHadrons[ic6]->GetBaryonNumber();
+ }
+ if(ccContSum-chContSum || cbContSum-bnContSum)
+ {
+   G4cout<<"*G4QE::FSI:(6) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+         <<G4endl;
+   //throw G4QException("G4QEnvironment::FSInteract: (6) Charge is not conserved");
+ }
+ // ***
+#endif
+ lHadr=theQHadrons[maxB]->GetBaryonNumber();
+ G4int tHadr=lHadr;                             // Total Baryon number
+ if(nHadr>1)for(unsigned ipo=0; ipo<theQHadrons.size()-1; ipo++) // Find BiggestNuclFragm
+ {
+   G4int hPDG = theQHadrons[ipo]->GetPDGCode();
+   if(hPDG==22) gamcnt++;
+   else
+   {
+     G4int hBN  = theQHadrons[ipo]->GetBaryonNumber();
+     tHadr+=hBN;
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:h#"<<ipo<<":hPDG="<<hPDG<<",hBN="<<hBN<<",nH="<<theQHadrons.size()
+           <<G4endl;
+#endif
+     if(hBN>lHadr)
+     {
+       lHadr=hBN;
+       maxB=ipo;
+     }                                           // the current biggest nuclear fragment
 	   }
-  }
+ }
 #ifdef pdebug
-  G4cout<<"G4QE::FSI:max#"<<maxB<<",lB="<<lHadr<<",tBN="<<tHadr<<",gam="<<gamcnt<<G4endl;
+ G4cout<<"G4QE::FSI:max#"<<maxB<<",lB="<<lHadr<<",tBN="<<tHadr<<",gam="<<gamcnt<<G4endl;
 #endif
-  nHadr=theQHadrons.size();
+ nHadr=theQHadrons.size();
 #ifdef chdebug
-  // *** (7) Charge Control Sum Calculation for the Charge Conservation Check ***
-  ccContSum=0;                   // Intermediate ChargeControlSum
-  cbContSum=0;                   // Intermediate BaryonNumberControlSum
-  if(nHadr)for(unsigned ic7=0; ic7<nHadr; ic7++) if(!(theQHadrons[ic7]->GetNFragments()))
-  {
-    ccContSum+=theQHadrons[ic7]->GetCharge();
-    cbContSum+=theQHadrons[ic7]->GetBaryonNumber();
-  }
-  if(ccContSum-chContSum || cbContSum-bnContSum)
-  {
-    G4cout<<"*G4QE::FSI:(7) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-          <<G4endl;
-    //throw G4QException("G4QEnvironment::FSInteract: (7) Charge is not conserved");
-  }
-  // ***
-#endif
-  if(gamcnt&&tHadr>1)                           // Only if there are gammas one should act
-  {
-    if(maxB+1<nHadr)                            // If maxB<Last, swap theCurH and theLastH
-    {
-      G4QHadron* theCurr = theQHadrons[maxB];   // Pointer to the Current Hadron
-      G4QHadron* theLast = theQHadrons[nHadr-1];// Pointer to the Last Hadron
-      G4QHadron* curHadr = new G4QHadron(theCurr);//Remember theCurrentHadron to put on top
-      G4QPDGCode lQP=theLast->GetQPDG();        // The QPDG of the last
-      if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-      else theCurr->SetQC(theLast->GetQC());    // CurHadrPDG instead of LastHadrPDG
-      theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution
-      theQHadrons.pop_back();                   // Rnt to theLastHadron is excluded from HV
-      delete theLast;//*!!When kill,DON'T forget to delete the last QHadron as an inst. !!*
-      theQHadrons.push_back(curHadr);           // The current Hadron, which is the Biggest
-    }
-    nHadr=theQHadrons.size();                   // Must be the same
-    // Now it is necessary to absorb the photon (photons) and try to radiate alpha or evap.
-    G4LorentzVector gamSum(0.,0.,0.,0.);
-    if(nHadr>1)for(unsigned gp=0; gp<nHadr-1; gp++)// Find Gumma, remember and kill
-    {
-      G4QHadron* theCurr = theQHadrons[gp];       // Pointer to the Current Hadron
-      G4int hPDG=theCurr->GetPDGCode();
-#ifdef pdebug
-      G4cout<<"G4QE::FSI:gp#"<<gp<<", PDG="<<hPDG<<", is found"<<G4endl;
-#endif
-      if(hPDG==22)                                // Photon is foun on the "gp" position
+ // *** (7) Charge Control Sum Calculation for the Charge Conservation Check ***
+ ccContSum=0;                   // Intermediate ChargeControlSum
+ cbContSum=0;                   // Intermediate BaryonNumberControlSum
+ if(nHadr)for(unsigned ic7=0; ic7<nHadr; ic7++) if(!(theQHadrons[ic7]->GetNFragments()))
+ {
+   ccContSum+=theQHadrons[ic7]->GetCharge();
+   cbContSum+=theQHadrons[ic7]->GetBaryonNumber();
+ }
+ if(ccContSum-chContSum || cbContSum-bnContSum)
+ {
+   G4cout<<"*G4QE::FSI:(7) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+         <<G4endl;
+   //throw G4QException("G4QEnvironment::FSInteract: (7) Charge is not conserved");
+ }
+ // ***
+#endif
+ if(gamcnt&&tHadr>1)                           // Only if there are gammas one should act
+ {
+   if(maxB+1<nHadr)                            // If maxB<Last, swap theCurH and theLastH
+   {
+     G4QHadron* theCurr = theQHadrons[maxB];   // Pointer to the Current Hadron
+     G4QHadron* theLast = theQHadrons[nHadr-1];// Pointer to the Last Hadron
+     G4QHadron* curHadr = new G4QHadron(theCurr);//Remember theCurrentHadron to put on top
+     G4QPDGCode lQP=theLast->GetQPDG();        // The QPDG of the last
+     if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+     else theCurr->SetQC(theLast->GetQC());    // CurHadrPDG instead of LastHadrPDG
+     theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution
+     theQHadrons.pop_back();                   // Rnt to theLastHadron is excluded from HV
+     delete theLast;//*!!When kill,DON'T forget to delete the last QHadron as an inst. !!*
+     theQHadrons.push_back(curHadr);           // The current Hadron, which is the Biggest
+   }
+   nHadr=theQHadrons.size();                   // Must be the same
+   // Now it is necessary to absorb the photon (photons) and try to radiate alpha or evap.
+   G4LorentzVector gamSum(0.,0.,0.,0.);
+   if(nHadr>1)for(unsigned gp=0; gp<nHadr-1; gp++)// Find Gumma, remember and kill
+   {
+     G4QHadron* theCurr = theQHadrons[gp];       // Pointer to the Current Hadron
+     G4int hPDG=theCurr->GetPDGCode();
+#ifdef pdebug
+     G4cout<<"G4QE::FSI:gp#"<<gp<<", PDG="<<hPDG<<", is found"<<G4endl;
+#endif
+     if(hPDG==22)                                // Photon is foun on the "gp" position
 	     {
-        gamSum=gamSum+theCurr->Get4Momentum();    // Accumulate the 4Momenta of the photon
-        unsigned nLast=nHadr-1;                   // position of theLastHadron (gp<nHadr-1)
-        G4QHadron* theLast = theQHadrons[nLast];  // Pointer to the Last Hadron
-        while(nLast>gp && theLast->GetPDGCode()==22) // "TheLast is a photon too" LOOP
+       gamSum=gamSum+theCurr->Get4Momentum();    // Accumulate the 4Momenta of the photon
+       unsigned nLast=nHadr-1;                   // position of theLastHadron (gp<nHadr-1)
+       G4QHadron* theLast = theQHadrons[nLast];  // Pointer to the Last Hadron
+       while(nLast>gp && theLast->GetPDGCode()==22) // "TheLast is a photon too" LOOP
 								{
-          gamSum=gamSum+theLast->Get4Momentum();  // Accumulate 4-momentum of theLastPhoton
-          theQHadrons.pop_back();                 // Pnt to theLastHadr.is excluded from HV
-          delete theLast;//*!!When kill,DON'T forget to delete theLastQHadron as an inst!!*
-          nHadr=theQHadrons.size();
-          nLast=nHadr-1;
-          theLast = theQHadrons[nLast];
-        }
-        if(nLast>gp)
-        {
-          G4QPDGCode lQP=theLast->GetQPDG();      // The QPDG of the last
-          if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-          else theCurr->SetQC(theLast->GetQC());  // CurHadrPDG instead of LastHadrPDG
-          theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution
-          theQHadrons.pop_back();                 // Pnt to theLastHadr.is excluded from HV
-          delete theLast;//*!|When kill,DON'T forget to delete theLastQHadron as an inst!!*
-          nHadr=theQHadrons.size();
-#ifdef pdebug
-          G4cout<<"G4QE::FSI:RepBy lPDG="<<lQP<<",nH="<<nHadr<<",gS="<<gamSum<<G4endl;
-#endif
-        }
+         gamSum=gamSum+theLast->Get4Momentum();  // Accumulate 4-momentum of theLastPhoton
+         theQHadrons.pop_back();                 // Pnt to theLastHadr.is excluded from HV
+         delete theLast;//*!!When kill,DON'T forget to delete theLastQHadron as an inst!!*
+         nHadr=theQHadrons.size();
+         nLast=nHadr-1;
+         theLast = theQHadrons[nLast];
+       }
+       if(nLast>gp)
+       {
+         G4QPDGCode lQP=theLast->GetQPDG();      // The QPDG of the last
+         if(lQP.GetPDGCode()!=10) theCurr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+         else theCurr->SetQC(theLast->GetQC());  // CurHadrPDG instead of LastHadrPDG
+         theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution
+         theQHadrons.pop_back();                 // Pnt to theLastHadr.is excluded from HV
+         delete theLast;//*!|When kill,DON'T forget to delete theLastQHadron as an inst!!*
+         nHadr=theQHadrons.size();
+#ifdef pdebug
+         G4cout<<"G4QE::FSI:RepBy lPDG="<<lQP<<",nH="<<nHadr<<",gS="<<gamSum<<G4endl;
+#endif
+       }
 	     }
-    }
-    // @@ Now it is necessary to try to emit alpha or evaporate the residual nucleus
-    G4QHadron* theLast = theQHadrons[nHadr-1];   // Pointer to the Last Hadron
-    if(theLast->GetPDGCode()==22)
+   }
+   // @@ Now it is necessary to try to emit alpha or evaporate the residual nucleus
+   G4QHadron* theLast = theQHadrons[nHadr-1];   // Pointer to the Last Hadron
+   if(theLast->GetPDGCode()==22)
 	   {
-      gamSum=gamSum+theLast->Get4Momentum();     // Accumulate 4-momentum of the LastPhoton
-      theQHadrons.pop_back();                    // Pnt to theLastHadr.is excluded from HV
-      delete theLast; //**!!When kill,DON'T forget to delete theLastQHadron as an inst.!!**
-      nHadr=theQHadrons.size();
+     gamSum=gamSum+theLast->Get4Momentum();     // Accumulate 4-momentum of the LastPhoton
+     theQHadrons.pop_back();                    // Pnt to theLastHadr.is excluded from HV
+     delete theLast; //**!!When kill,DON'T forget to delete theLastQHadron as an inst.!!**
+     nHadr=theQHadrons.size();
 #ifdef pdebug
-      G4cout<<"G4QE::FSI: The last photon is killed, nH="<<nHadr<<",gS="<<gamSum<<G4endl;
+     G4cout<<"G4QE::FSI: The last photon is killed, nH="<<nHadr<<",gS="<<gamSum<<G4endl;
 #endif
-      theLast = theQHadrons[nHadr-1];
+     theLast = theQHadrons[nHadr-1];
 	   }
-    G4int nEx=nHadr-2;                           // position to be exchanged with theLast
-    while(theLast->GetBaryonNumber()<1 && nEx>=0)// theLastHadron must be a nucleus (A>0)
+   G4int nEx=nHadr-2;                           // position to be exchanged with theLast
+   while(theLast->GetBaryonNumber()<1 && nEx>=0)// theLastHadron must be a nucleus (A>0)
 				{
-      G4QHadron* theEx=theQHadrons[nEx];         // A hadron to be exchanged with theLast
-      G4LorentzVector ex4Mom=theEx->Get4Momentum();
-      G4QPDGCode exQPDG=theEx->GetQPDG();
-      G4QContent exQC=theEx->GetQC();
-      G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
-      if(lQP.GetPDGCode()!=10) theEx->SetQPDG(lQP); //CurHadr instead of PrevHadr
-      else theEx->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
-      theEx->Set4Momentum(theLast->Get4Momentum());
-      if(exQPDG.GetPDGCode()!=10) theLast->SetQPDG(exQPDG);
-      else theLast->SetQC(exQC);                 // CurHadrPDG instead of LastHadrPDG
-      theLast->Set4Momentum(ex4Mom);
-      nEx--;
-    }
-    G4QHadron* curHadr = new G4QHadron(theLast); // Pnt to theCurrentHadron is theLastCopy
-    theQHadrons.pop_back();                 // Pnt to theLastHadron is excluded from OUTPUT
-    delete theLast;//*!! When kill,DON'T forget to delete theLas QHadron as an instance !!*
-    G4int theLB= curHadr->GetBaryonNumber();
-    G4LorentzVector tR4M=curHadr->Get4Momentum()+gamSum;
-    G4double tRM=tR4M.m();                       // TotMass of theResidualNucleus to decay
-    if(theLB>4)
+     G4QHadron* theEx=theQHadrons[nEx];         // A hadron to be exchanged with theLast
+     G4LorentzVector ex4Mom=theEx->Get4Momentum();
+     G4QPDGCode exQPDG=theEx->GetQPDG();
+     G4QContent exQC=theEx->GetQC();
+     G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
+     if(lQP.GetPDGCode()!=10) theEx->SetQPDG(lQP); //CurHadr instead of PrevHadr
+     else theEx->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
+     theEx->Set4Momentum(theLast->Get4Momentum());
+     if(exQPDG.GetPDGCode()!=10) theLast->SetQPDG(exQPDG);
+     else theLast->SetQC(exQC);                 // CurHadrPDG instead of LastHadrPDG
+     theLast->Set4Momentum(ex4Mom);
+     nEx--;
+   }
+   G4QHadron* curHadr = new G4QHadron(theLast); // Pnt to theCurrentHadron is theLastCopy
+   theQHadrons.pop_back();                 // Pnt to theLastHadron is excluded from OUTPUT
+   delete theLast;//*!! When kill,DON'T forget to delete theLas QHadron as an instance !!*
+   G4int theLB= curHadr->GetBaryonNumber();
+   G4LorentzVector tR4M=curHadr->Get4Momentum()+gamSum;
+   G4double tRM=tR4M.m();                       // TotMass of theResidualNucleus to decay
+   if(theLB>4)
 	   {
 	     G4QContent lrQC=curHadr->GetQC()-G4QContent(6,6,0,0,0,0);
-      G4QNucleus lrN(lrQC);
-      G4double lrM=lrN.GetMZNS();
-      if(tRM>lrM+mAlph)
+     G4QNucleus lrN(lrQC);
+     G4double lrM=lrN.GetMZNS();
+     if(tRM>lrM+mAlph)
 	     {
-        G4LorentzVector lr4M(0.,0.,0.,lrM);
-        G4LorentzVector al4M(0.,0.,0.,mAlph);
-        if(!G4QHadron(tR4M).DecayIn2(lr4M,al4M))
-        {
-          curHadr->Set4Momentum(tR4M);
-          EvaporateResidual(curHadr); // delete equivalent
+       G4LorentzVector lr4M(0.,0.,0.,lrM);
+       G4LorentzVector al4M(0.,0.,0.,mAlph);
+       if(!G4QHadron(tR4M).DecayIn2(lr4M,al4M))
+       {
+         curHadr->Set4Momentum(tR4M);
+         EvaporateResidual(curHadr); // delete equivalent
 #ifdef fdebug
-          G4cout<<"G4QE::FSI: After Evap (1) nH="<<theQHadrons.size()<<G4endl;
+         G4cout<<"G4QE::FSI: After Evap (1) nH="<<theQHadrons.size()<<G4endl;
 #endif
 	       }
-        else
-        {
+       else
+       {
 		        delete curHadr;
-          G4int APDG=lrN.GetPDG();
-#ifdef pdebug
-          G4cout<<"G4QE::FSI: Final A+alpha, A="<<APDG<<lr4M<<", a="<<al4M<<G4endl;
-#endif
-          G4QHadron* lrH = new G4QHadron(APDG,lr4M);
-          theQHadrons.push_back(lrH);      // (delete equivalent for lrH)
-          G4QHadron* alH = new G4QHadron(90002002,al4M);
-          theQHadrons.push_back(alH);      // (delete equivalent for alH)
-        }
-      }
-      else
-      {
-        curHadr->Set4Momentum(tR4M);
-        EvaporateResidual(curHadr); // delete equivalent
+         G4int APDG=lrN.GetPDG();
+#ifdef pdebug
+         G4cout<<"G4QE::FSI: Final A+alpha, A="<<APDG<<lr4M<<", a="<<al4M<<G4endl;
+#endif
+         G4QHadron* lrH = new G4QHadron(APDG,lr4M);
+         theQHadrons.push_back(lrH);      // (delete equivalent for lrH)
+         G4QHadron* alH = new G4QHadron(90002002,al4M);
+         theQHadrons.push_back(alH);      // (delete equivalent for alH)
+       }
+     }
+     else
+     {
+       curHadr->Set4Momentum(tR4M);
+       EvaporateResidual(curHadr); // delete equivalent
 #ifdef fdebug
-        G4cout<<"G4QE::FSI: After Evap (2) nH="<<theQHadrons.size()<<G4endl;
+       G4cout<<"G4QE::FSI: After Evap (2) nH="<<theQHadrons.size()<<G4endl;
 #endif
 	     }
-    }
-    else
-    {
-      curHadr->Set4Momentum(tR4M);
-      EvaporateResidual(curHadr); // delete equivalent
+   }
+   else
+   {
+     curHadr->Set4Momentum(tR4M);
+     EvaporateResidual(curHadr); // delete equivalent
 #ifdef fdebug
-      G4cout<<"G4QE::FSI: After Evap (5) nH="<<theQHadrons.size()<<G4endl;
+     G4cout<<"G4QE::FSI: After Evap (5) nH="<<theQHadrons.size()<<G4endl;
 #endif
 	   }
-  }
-  //Now just fill the output theFravment vector (User is responsible to ClearAndDestroy it)
-  nHadr=theQHadrons.size();
+ }
+ //Now just fill the output theFravment vector (User is responsible to ClearAndDestroy it)
+ nHadr=theQHadrons.size();
 #ifdef chdebug
-  // *** (8) Charge Control Sum Calculation for the Charge Conservation Check ***
-  ccContSum=0;                   // Intermediate ChargeControlSum 
-  cbContSum=0;                   // Intermediate BaryonNumberControlSum
-  if(nHadr)for(unsigned ic8=0; ic8<nHadr; ic8++) if(!(theQHadrons[ic8]->GetNFragments()))
-  {
-    ccContSum+=theQHadrons[ic8]->GetCharge();
-    cbContSum+=theQHadrons[ic8]->GetBaryonNumber();
-  }
-  if(ccContSum-chContSum || cbContSum-bnContSum)
-  {
-    G4cout<<"*G4QE::FSI:(8) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
-          <<G4endl;
-    //throw G4QException("G4QEnvironment::FSInteract: (8) Charge is not conserved");
-  }
-  // ***
-#endif
-  if(nHadr) for(unsigned hd=0; hd<theQHadrons.size(); hd++)
-  {
-    //G4QHadron* curHadr = new G4QHadron(theQHadrons[hd]);
-    G4QHadron* curHadr = theQHadrons[hd];
-    G4int hPDG=curHadr->GetPDGCode();
-    if(hPDG==22 && fabs(curHadr->Get4Momentum().e())<.00001) // E=0, gamma in the OUTPUT
-    {
-      unsigned lin=theQHadrons.size()-1;
-      G4QHadron* theLast = theQHadrons[lin];// Pointer to theLastHadron in theQHadrVector
-      if(lin>hd)
-      {
-        G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
-        if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-        else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
-        curHadr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution (4Mom)
-      }
-      //else break; // It's not necessary to delete: not copy to theFragments is enough
-      delete theLast;//*!!When kill, DON'T forget to delete theLastQHadron asAnInstance!!
-      theQHadrons.pop_back();              //pointer to theLastHadron is excluded from HV
-      hPDG=curHadr->GetPDGCode();          // Redefine thePDGCode of theCurrentHadron
-      if(lin==hd) break;
-    }
+ // *** (8) Charge Control Sum Calculation for the Charge Conservation Check ***
+ ccContSum=0;                   // Intermediate ChargeControlSum 
+ cbContSum=0;                   // Intermediate BaryonNumberControlSum
+ if(nHadr)for(unsigned ic8=0; ic8<nHadr; ic8++) if(!(theQHadrons[ic8]->GetNFragments()))
+ {
+   ccContSum+=theQHadrons[ic8]->GetCharge();
+   cbContSum+=theQHadrons[ic8]->GetBaryonNumber();
+ }
+ if(ccContSum-chContSum || cbContSum-bnContSum)
+ {
+   G4cout<<"*G4QE::FSI:(8) dC="<<ccContSum-chContSum<<",dB="<<cbContSum-bnContSum
+         <<G4endl;
+   //throw G4QException("G4QEnvironment::FSInteract: (8) Charge is not conserved");
+ }
+ // ***
+#endif
+ if(nHadr) for(unsigned hd=0; hd<theQHadrons.size(); hd++)
+ {
+   //G4QHadron* curHadr = new G4QHadron(theQHadrons[hd]);
+   G4QHadron* curHadr = theQHadrons[hd];
+   G4int hPDG=curHadr->GetPDGCode();
+   if(hPDG==22 && fabs(curHadr->Get4Momentum().e())<.00001) // E=0, gamma in the OUTPUT
+   {
+     unsigned lin=theQHadrons.size()-1;
+     G4QHadron* theLast = theQHadrons[lin];// Pointer to theLastHadron in theQHadrVector
+     if(lin>hd)
+     {
+       G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
+       if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+       else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
+       curHadr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution (4Mom)
+     }
+     //else break; // It's not necessary to delete: not copy to theFragments is enough
+     delete theLast;//*!!When kill, DON'T forget to delete theLastQHadron asAnInstance!!
+     theQHadrons.pop_back();              //pointer to theLastHadron is excluded from HV
+     hPDG=curHadr->GetPDGCode();          // Redefine thePDGCode of theCurrentHadron
+     if(lin==hd) break;
+   }
 #ifdef fdebug
-    G4cout<<"G4QE::FSI: LOOP starts nH="<<nHadr<<", h#"<<hd<<", PDG="<<hPDG<<G4endl;
+   G4cout<<"G4QE::FSI: LOOP starts nH="<<nHadr<<", h#"<<hd<<", PDG="<<hPDG<<G4endl;
 #endif
-    if(hPDG==89999003||hPDG==90002999) G4cout<<"G4QEnv::FSI:nD-/pD++(0)="<<hPDG<<G4endl;
-    if(hPDG==89999004||hPDG==90003999) G4cout<<"G4QEnv::FSI:nnD-/ppD++(0)="<<hPDG<<G4endl;
-    //if(hPDG==89998003||hPDG==90002998)G4cout<<"G4QE::FSI:D-Pi-/D++Pi+PDG="<<hPDG<<G4endl;
-    if(hPDG>100000000) G4cout<<"***G4QE::FSI: h#"<<hd<<", wrong PDGCode="<<hPDG<<G4endl;
+   if(hPDG==89999003||hPDG==90002999) G4cout<<"G4QEnv::FSI:nD-/pD++(0)="<<hPDG<<G4endl;
+   if(hPDG==89999004||hPDG==90003999) G4cout<<"G4QEnv::FSI:nnD-/ppD++(0)="<<hPDG<<G4endl;
+   //if(hPDG==89998003||hPDG==90002998)G4cout<<"G4QE::FSI:D-Pi-/D++Pi+PDG="<<hPDG<<G4endl;
+   if(hPDG>100000000) G4cout<<"***G4QE::FSI: h#"<<hd<<", wrong PDGCode="<<hPDG<<G4endl;
 #ifdef fdebug
-    G4cout<<"G4QE::FSI:Copy is made with PDG="<<hPDG<<G4endl;//To compare with Original
-#endif
-    G4int hBN=curHadr->GetBaryonNumber();
-    G4int hCG=curHadr->GetCharge();
-    G4int hST=curHadr->GetStrangeness();
-    G4int hNF=curHadr->GetNFragments();
-    G4bool fOK=true;
-    if(hNF==-1) curHadr->SetNFragments(0);
-    else if(hPDG==91000000) curHadr->SetQPDG(G4QPDGCode(3122));// Move to theNextLoop
-    else if(hPDG==90998003||hPDG==91002998)    // n,pi-,Sigma- OR p,pi+,Sigma+ (StrangeIso)
-    {                                          // @@ can be converted here to B>2
+   G4cout<<"G4QE::FSI:Copy is made with PDG="<<hPDG<<G4endl;//To compare with Original
+#endif
+   G4int hBN=curHadr->GetBaryonNumber();
+   G4int hCG=curHadr->GetCharge();
+   G4int hST=curHadr->GetStrangeness();
+   G4int hNF=curHadr->GetNFragments();
+   G4bool fOK=true;
+   if(hNF==-1) curHadr->SetNFragments(0);
+   else if(hPDG==91000000) curHadr->SetQPDG(G4QPDGCode(3122));// Move to theNextLoop
+   else if(hPDG==90998003||hPDG==91002998)    // n,pi-,Sigma- OR p,pi+,Sigma+ (StrangeIso)
+   {                                          // @@ can be converted here to B>2
 #ifdef fdebug
-      G4cout<<"G4QE::FSI: Pi+Nuc+Sigma state decay is found PDG="<<hPDG<<G4endl;
-#endif
-      G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theIsoNucleus
-      G4double reM=r4M.m();                   // Real mass of the IsoNucleus
-      G4bool dub=false;
-      G4int PDGnu=2112;
-      G4double mNucl=mNeut;
-      G4int PDGpi=-211;
-      G4double mPion=mPi;
-      G4int PDGsi=3112;
-      G4double mSi=mSigM;
-      G4double sum=mNucl+mPion+mSi;
-      if(hPDG==90998003&&reM<sum)                      // Default -- values
+     G4cout<<"G4QE::FSI: Pi+Nuc+Sigma state decay is found PDG="<<hPDG<<G4endl;
+#endif
+     G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theIsoNucleus
+     G4double reM=r4M.m();                   // Real mass of the IsoNucleus
+     G4bool dub=false;
+     G4int PDGnu=2112;
+     G4double mNucl=mNeut;
+     G4int PDGpi=-211;
+     G4double mPion=mPi;
+     G4int PDGsi=3112;
+     G4double mSi=mSigM;
+     G4double sum=mNucl+mPion+mSi;
+     if(hPDG==90998003&&reM<sum)                      // Default -- values
 	     {
-        PDGsi=2112;
-        mSi=mNeut;
-        mPion=mPi+mPi;
-        sum=mNucl+mPion+mSi;
-        dub=true;
-      }
-      if(hPDG==91002998)                      // Change -- default values to +++ values
+       PDGsi=2112;
+       mSi=mNeut;
+       mPion=mPi+mPi;
+       sum=mNucl+mPion+mSi;
+       dub=true;
+     }
+     if(hPDG==91002998)                      // Change -- default values to +++ values
 	     {
-        mNucl=mProt;
-        PDGnu=2212;
-        PDGpi=211;
-        PDGsi=3222;
-        mSi  =mSigP;
-        sum=mNucl+mPion+mSi;
-        if(reM<sum)
+       mNucl=mProt;
+       PDGnu=2212;
+       PDGpi=211;
+       PDGsi=3222;
+       mSi  =mSigP;
+       sum=mNucl+mPion+mSi;
+       if(reM<sum)
 	       {
-          PDGsi=2212;
-          mSi=mProt;
-          sum=mNucl+mPion+mSi;
-        }
-      }
-      G4LorentzVector n4M(0.,0.,0.,mNucl);
-      G4LorentzVector p4M(0.,0.,0.,mPion);
-      G4LorentzVector k4M(0.,0.,0.,mSi);
-      if(fabs(reM-sum)<eps)
+         PDGsi=2212;
+         mSi=mProt;
+         sum=mNucl+mPion+mSi;
+       }
+     }
+     G4LorentzVector n4M(0.,0.,0.,mNucl);
+     G4LorentzVector p4M(0.,0.,0.,mPion);
+     G4LorentzVector k4M(0.,0.,0.,mSi);
+     if(fabs(reM-sum)<eps)
 	     {
-        //G4cout<<"G4QE::FSI:*TMP* PiDelta split PDG="<<hPDG<<G4endl;//To find out why?
-        n4M=r4M*(mNucl/sum);
-        p4M=r4M*(mPion/sum);
-        k4M=r4M*(mSi/sum);
-      }
-      else if(reM<sum || !G4QHadron(r4M).DecayIn3(n4M,p4M,k4M))
-      {
-        G4cout<<"---Warning---G4QE::FSI:Pi+N+Sigma recovery INPDG="<<hPDG<<","<<reM<<" < "
-              <<mNucl<<"(PDG="<<PDGnu<<")+Pi="<<mPion<<")+Sigma="<<mSi<<"="<<sum<<G4endl;
-        if(!theEnvironment.GetA())
-        {
-          G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
-          G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
-          if(hd+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
-          {
-            theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
-            G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
-            if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-            else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
-            curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-          }
-          theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-          delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-          G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-          if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
-          {
-            qH->SetNFragments(-1);              //@@ To avoid looping
-            G4cout<<"---Warning---G4QE::FSI:PiNSig Failed, LeaveAsItIs 4m="<<r4M<<G4endl;
-            theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
-          }
-          else
-          {
+       //G4cout<<"G4QE::FSI:*TMP* PiDelta split PDG="<<hPDG<<G4endl;//To find out why?
+       n4M=r4M*(mNucl/sum);
+       p4M=r4M*(mPion/sum);
+       k4M=r4M*(mSi/sum);
+     }
+     else if(reM<sum || !G4QHadron(r4M).DecayIn3(n4M,p4M,k4M))
+     {
+       G4cout<<"---Warning---G4QE::FSI:Pi+N+Sigma recovery INPDG="<<hPDG<<","<<reM<<" < "
+             <<mNucl<<"(PDG="<<PDGnu<<")+Pi="<<mPion<<")+Sigma="<<mSi<<"="<<sum<<G4endl;
+       if(!theEnvironment.GetA())
+       {
+         G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
+         G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
+         if(hd+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
+         {
+           theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
+           G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
+           if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+           else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
+           curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+         }
+         theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+         delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+         G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+         if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
+         {
+           qH->SetNFragments(-1);              //@@ To avoid looping
+           G4cout<<"---Warning---G4QE::FSI:PiNSig Failed, LeaveAsItIs 4m="<<r4M<<G4endl;
+           theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
+         }
+         else
+         {
 #ifdef fdebug
-            for(unsigned hp=0; hp<theQHadrons.size(); hp++)
-            {
-              G4QHadron* cpHadr = new G4QHadron(theQHadrons[hp]);
-              G4int hpPDG=cpHadr->GetPDGCode();
-              G4LorentzVector hpLV=cpHadr->Get4Momentum();
+           for(unsigned hp=0; hp<theQHadrons.size(); hp++)
+           {
+             G4QHadron* cpHadr = new G4QHadron(theQHadrons[hp]);
+             G4int hpPDG=cpHadr->GetPDGCode();
+             G4LorentzVector hpLV=cpHadr->Get4Momentum();
 		      G4cout<<"G4QE::FSI:h#"<<hp<<": hPDG="<<hpPDG<<", h4M="<<hpLV<<G4endl;
-            }
+           }
 #endif
-            delete qH;
-            nHadr=theQHadrons.size();
-          }
-          delete quasH;
-          fOK=false;
+           delete qH;
+           nHadr=theQHadrons.size();
+         }
+         delete quasH;
+         fOK=false;
 		      }
-        else
-        {
-          G4cerr<<"**G4QEnv::FSI: No Final PiNSig recovery, Env="<<theEnvironment<<G4endl;
-          throw G4QException("***G4QEnvironment::FSInter:PiNucSigma Final Decay Error");
-        }
+       else
+       {
+         G4cerr<<"**G4QEnv::FSI: No Final PiNSig recovery, Env="<<theEnvironment<<G4endl;
+         throw G4QException("***G4QEnvironment::FSInter:PiNucSigma Final Decay Error");
+       }
 #ifdef fdebug
-        G4cout<<"G4QEnv::FSI: PiNSi recover #"<<hd<<",PDG="<<curHadr->GetPDGCode()<<G4endl;
+       G4cout<<"G4QEnv::FSI: PiNSi recover #"<<hd<<",PDG="<<curHadr->GetPDGCode()<<G4endl;
 #endif
-      }
-      if(fOK)
-      {
+     }
+     if(fOK)
+     {
 #ifdef fdebug
-        G4cout<<"G4QE::FSI:PiNSigma==>"<<r4M<<"->N="<<PDGnu<<n4M<<"+Pi="<<PDGpi<<p4M
-              <<"+ Sigma="<<PDGsi<<k4M<<G4endl;
+       G4cout<<"G4QE::FSI:PiNSigma==>"<<r4M<<"->N="<<PDGnu<<n4M<<"+Pi="<<PDGpi<<p4M
+             <<"+ Sigma="<<PDGsi<<k4M<<G4endl;
 #endif
-        curHadr->Set4Momentum(n4M);
-        curHadr->SetQPDG(G4QPDGCode(PDGnu));// At least one nucleun always exists
-        if(dub)
+       curHadr->Set4Momentum(n4M);
+       curHadr->SetQPDG(G4QPDGCode(PDGnu));// At least one nucleun always exists
+       if(dub)
 		      {
-          p4M/=2.;
-          G4QHadron* Pid = new G4QHadron(PDGpi,p4M); // Create a Hadron for the pion
-          theQHadrons.push_back(Pid);       // Fill pion (delete equivalent)
-        }
-        G4QHadron* Pi = new G4QHadron(PDGpi,p4M); // Create a Hadron for the pion
-        theQHadrons.push_back(Pi);          // Fill pion (delete equivalent)
-        G4QHadron* Si = new G4QHadron(PDGsi,k4M); // Create a Hadron for the Sigma
-        theQHadrons.push_back(Si);          // Fill Sigma (delete equivalent)
-      }
+         p4M/=2.;
+         G4QHadron* Pid = new G4QHadron(PDGpi,p4M); // Create a Hadron for the pion
+         theQHadrons.push_back(Pid);       // Fill pion (delete equivalent)
+       }
+       G4QHadron* Pi = new G4QHadron(PDGpi,p4M); // Create a Hadron for the pion
+       theQHadrons.push_back(Pi);          // Fill pion (delete equivalent)
+       G4QHadron* Si = new G4QHadron(PDGsi,k4M); // Create a Hadron for the Sigma
+       theQHadrons.push_back(Si);          // Fill Sigma (delete equivalent)
+     }
 #ifdef fdebug
-      G4cout<<"G4QE::FSI:*TMP* PiNSigma end up PDG="<<hPDG<<G4endl;//To find out why?
+     G4cout<<"G4QE::FSI:*TMP* PiNSigma end up PDG="<<hPDG<<G4endl;//To find out why?
 #endif
-    }
-    else if(hPDG==89998003||hPDG==90002998)   // Isonucleus (pi- + DEL- or pi+ + DEL++)
+   }
+   else if(hPDG==89998003||hPDG==90002998)   // Isonucleus (pi- + DEL- or pi+ + DEL++)
 	   {                                         // @@ can be converted here to B>1
-      //G4cout<<"G4QE::FSI:*TMP* PiDelta decay PDG="<<hPDG<<G4endl;//To find out why?
-      G4double mNucl=mNeut;
-      G4int PDGnu=2112;
-      G4int PDGpi=-211;
-      if(hPDG==90002998)                      // Change DEL- default values to DEL++ values
+     //G4cout<<"G4QE::FSI:*TMP* PiDelta decay PDG="<<hPDG<<G4endl;//To find out why?
+     G4double mNucl=mNeut;
+     G4int PDGnu=2112;
+     G4int PDGpi=-211;
+     if(hPDG==90002998)                      // Change DEL- default values to DEL++ values
 	     {
-        mNucl=mProt;
-        PDGnu=2212;
-        PDGpi=211;
-      }
-      //G4double nucM=mNucl*hBN;
-      G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theIsoNucleus
-      G4double reM=r4M.m();                   // Real mass of the IsoNucleus
-      G4LorentzVector n4M(0.,0.,0.,mNucl);
-      G4LorentzVector p4M(0.,0.,0.,mPi);
-      G4LorentzVector k4M(0.,0.,0.,mPi);
-      G4double sum=mNucl+mPi+mPi;
-      if(fabs(reM-sum)<eps)
+       mNucl=mProt;
+       PDGnu=2212;
+       PDGpi=211;
+     }
+     //G4double nucM=mNucl*hBN;
+     G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theIsoNucleus
+     G4double reM=r4M.m();                   // Real mass of the IsoNucleus
+     G4LorentzVector n4M(0.,0.,0.,mNucl);
+     G4LorentzVector p4M(0.,0.,0.,mPi);
+     G4LorentzVector k4M(0.,0.,0.,mPi);
+     G4double sum=mNucl+mPi+mPi;
+     if(fabs(reM-sum)<eps)
 	     {
-        //G4cout<<"G4QE::FSI:*TMP* PiDelta split PDG="<<hPDG<<G4endl;//To find out why?
-        n4M=r4M*(mNucl/sum);
-        p4M=r4M*(mPi/sum);
-        k4M=r4M*(mPi/sum);
-      }
-      else if(reM<sum || !G4QHadron(r4M).DecayIn3(n4M,p4M,k4M))
-      {
-        G4cout<<"---Warning---G4QE::FSI: Isonuc+Pi recovery INPDG="<<hPDG<<","<<reM<<" < "
-              <<mNucl<<"(PDG="<<PDGnu<<") + 2*"<<mPi<<"="<<sum<<G4endl;
-        if(!theEnvironment.GetA())
-        {
-          G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
-          G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
-          if(hd+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
-          {
-            theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
-            G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
-            if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-            else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
-            curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-          }
-          theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-          delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-          G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-          if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
-          {
-            qH->SetNFragments(-1);              //@@ To avoid looping
-            G4cout<<"---Warning---G4QE::FSI:IsoN+Pi Failed, LeaveAsItIs 4m="<<r4M<<G4endl;
-            theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
-          }
-          else
-          {
-            delete qH;
-            nHadr=theQHadrons.size();
-          }
-          delete quasH;
-          fOK=false;
+       //G4cout<<"G4QE::FSI:*TMP* PiDelta split PDG="<<hPDG<<G4endl;//To find out why?
+       n4M=r4M*(mNucl/sum);
+       p4M=r4M*(mPi/sum);
+       k4M=r4M*(mPi/sum);
+     }
+     else if(reM<sum || !G4QHadron(r4M).DecayIn3(n4M,p4M,k4M))
+     {
+       G4cout<<"---Warning---G4QE::FSI: Isonuc+Pi recovery INPDG="<<hPDG<<","<<reM<<" < "
+             <<mNucl<<"(PDG="<<PDGnu<<") + 2*"<<mPi<<"="<<sum<<G4endl;
+       if(!theEnvironment.GetA())
+       {
+         G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
+         G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
+         if(hd+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
+         {
+           theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
+           G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
+           if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+           else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
+           curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+         }
+         theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+         delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+         G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+         if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
+         {
+           qH->SetNFragments(-1);              //@@ To avoid looping
+           G4cout<<"---Warning---G4QE::FSI:IsoN+Pi Failed, LeaveAsItIs 4m="<<r4M<<G4endl;
+           theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
+         }
+         else
+         {
+           delete qH;
+           nHadr=theQHadrons.size();
+         }
+         delete quasH;
+         fOK=false;
 		      }
-        else
-        {
-          G4cerr<<"**G4QEnv::FSI: No Final IsoN+Pi recovery, Env="<<theEnvironment<<G4endl;
-          throw G4QException("***G4QEnvironment::FSInter:IsoNucl+Pi FinalDecayError");
-        }
+       else
+       {
+         G4cerr<<"**G4QEnv::FSI: No Final IsoN+Pi recovery, Env="<<theEnvironment<<G4endl;
+         throw G4QException("***G4QEnvironment::FSInter:IsoNucl+Pi FinalDecayError");
+       }
 #ifdef fdebug
-        G4cout<<"G4QEnv::FSI: PiDel recover #"<<hd<<",PDG="<<curHadr->GetPDGCode()<<G4endl;
+       G4cout<<"G4QEnv::FSI: PiDel recover #"<<hd<<",PDG="<<curHadr->GetPDGCode()<<G4endl;
 #endif
-      }
-      if(fOK)
-      {
+     }
+     if(fOK)
+     {
 #ifdef fdebug
-        G4cout<<"G4QE::FSI:IsoNuc+Pi==>"<<r4M<<"->N="<<PDGnu<<n4M<<"+Pi="<<PDGpi<<p4M
-              <<"+ Pi="<<PDGpi<<k4M<<G4endl;
-#endif
-        curHadr->Set4Momentum(n4M);
-        curHadr->SetQPDG(G4QPDGCode(PDGnu)); // At least one nucleun always exists
-        G4QHadron* Pi1 = new G4QHadron(PDGpi,p4M); // Create a Hadron for the pion
-        theQHadrons.push_back(Pi1);          // Fill pion (delete equivalent)
-        G4QHadron* Pi2 = new G4QHadron(PDGpi,k4M); // Create a Hadron for the pion
-        theQHadrons.push_back(Pi2);          // Fill pion (delete equivalent)
-      }
+       G4cout<<"G4QE::FSI:IsoNuc+Pi==>"<<r4M<<"->N="<<PDGnu<<n4M<<"+Pi="<<PDGpi<<p4M
+             <<"+ Pi="<<PDGpi<<k4M<<G4endl;
+#endif
+       curHadr->Set4Momentum(n4M);
+       curHadr->SetQPDG(G4QPDGCode(PDGnu)); // At least one nucleun always exists
+       G4QHadron* Pi1 = new G4QHadron(PDGpi,p4M); // Create a Hadron for the pion
+       theQHadrons.push_back(Pi1);          // Fill pion (delete equivalent)
+       G4QHadron* Pi2 = new G4QHadron(PDGpi,k4M); // Create a Hadron for the pion
+       theQHadrons.push_back(Pi2);          // Fill pion (delete equivalent)
+     }
 #ifdef fdebug
-      G4cout<<"G4QE::FSI:*TMP* PiDelta end up PDG="<<hPDG<<G4endl;//To find out why?
+     G4cout<<"G4QE::FSI:*TMP* PiDelta end up PDG="<<hPDG<<G4endl;//To find out why?
 #endif
-    }
-    else if(hBN>0 && !hST && (hCG<0||hCG>hBN)) // Isonucleus (n*N+k*DEL- or n*P+k*DEL++)
+   }
+   else if(hBN>0 && !hST && (hCG<0||hCG>hBN)) // Isonucleus (n*N+k*DEL- or n*P+k*DEL++)
 	   {
-      G4double mNucl=mNeut;
-      G4int PDGnu=2112;
-      G4int PDGpi=-211;
-      G4int nPi=-hCG;                         // Prototype of the minimum number of pions
-      if(hCG>0)                               // Change DEL- default values to DEL++ values
+     G4double mNucl=mNeut;
+     G4int PDGnu=2112;
+     G4int PDGpi=-211;
+     G4int nPi=-hCG;                         // Prototype of the minimum number of pions
+     if(hCG>0)                               // Change DEL- default values to DEL++ values
 	     {
-        mNucl=mProt;
-        PDGnu=2212;
-        PDGpi=211;
-        nPi=hCG-hBN;
-      }
-      G4double nucM=mNucl*hBN;
-      G4double pioM=mPi*nPi;
-      G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theIsoNucleus
-      G4double reM=r4M.m();                   // Real mass of the IsoNucleus
-      G4LorentzVector n4M(0.,0.,0.,nucM);
-      G4LorentzVector k4M(0.,0.,0.,pioM);
-      G4double sum=nucM+pioM;
-      if(fabs(reM-sum)<eps)
+       mNucl=mProt;
+       PDGnu=2212;
+       PDGpi=211;
+       nPi=hCG-hBN;
+     }
+     G4double nucM=mNucl*hBN;
+     G4double pioM=mPi*nPi;
+     G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theIsoNucleus
+     G4double reM=r4M.m();                   // Real mass of the IsoNucleus
+     G4LorentzVector n4M(0.,0.,0.,nucM);
+     G4LorentzVector k4M(0.,0.,0.,pioM);
+     G4double sum=nucM+pioM;
+     if(fabs(reM-sum)<eps)
 	     {
-        n4M=r4M*(nucM/sum);
-        k4M=r4M*(pioM/sum);
-      }
-      else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,k4M))
-      {
+       n4M=r4M*(nucM/sum);
+       k4M=r4M*(pioM/sum);
+     }
+     else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,k4M))
+     {
 #ifdef fdebug
-        G4cout<<"---Warning---G4QE::FSI: Isonucleus recovery INPDG="<<hPDG<<", M="<<reM
-              <<" < "<<nucM<<"+"<<pioM<<"="<<sum<<G4endl;
-#endif
-        if(!theEnvironment.GetA())
-        {
-          G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
-          G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
-          G4QContent tQC=qH->GetQC();            // Quark content of the hadron
-          G4LorentzVector t4M=qH->Get4Momentum();// 4Momentum of the hadron
-          if(hd+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
-          {
-            theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
-            G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
-            if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-            else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
-            curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-          }
-          theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-          delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-          G4Quasmon* quasH = new G4Quasmon(tQC,t4M); // Fake Quasmon for the Recovery
-          if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
-          {
-            G4int tPDG=qH->GetPDGCode();
-            qH->SetNFragments(-1);              // @@ To avoid looping
-            G4cout<<"---Warning---G4QE::FSI:IsoN="<<tPDG<<tQC<<" FAsIs 4m="<<t4M<<G4endl;
-            theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
-          }
-          else
-          {
+       G4cout<<"---Warning---G4QE::FSI: Isonucleus recovery INPDG="<<hPDG<<", M="<<reM
+             <<" < "<<nucM<<"+"<<pioM<<"="<<sum<<G4endl;
+#endif
+       if(!theEnvironment.GetA())
+       {
+         G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
+         G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
+         G4QContent tQC=qH->GetQC();            // Quark content of the hadron
+         G4LorentzVector t4M=qH->Get4Momentum();// 4Momentum of the hadron
+         if(hd+1<theQHadrons.size())            // If ipo<Last, swap CurHadr & LastHadr
+         {
+           theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
+           G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
+           if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+           else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
+           curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+         }
+         theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+         delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+         G4Quasmon* quasH = new G4Quasmon(tQC,t4M); // Fake Quasmon for the Recovery
+         if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
+         {
+           G4int tPDG=qH->GetPDGCode();
+           qH->SetNFragments(-1);              // @@ To avoid looping
+           G4cout<<"---Warning---G4QE::FSI:IsoN="<<tPDG<<tQC<<" FAsIs 4m="<<t4M<<G4endl;
+           theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
+         }
+         else
+         {
 #ifdef fdebug
-            for(unsigned hp=0; hp<theQHadrons.size(); hp++)
-            {
-              G4QHadron* cpHadr = new G4QHadron(theQHadrons[hp]);
-              G4int hpPDG=cpHadr->GetPDGCode();
-              G4LorentzVector hpLV=cpHadr->Get4Momentum();
+           for(unsigned hp=0; hp<theQHadrons.size(); hp++)
+           {
+             G4QHadron* cpHadr = new G4QHadron(theQHadrons[hp]);
+             G4int hpPDG=cpHadr->GetPDGCode();
+             G4LorentzVector hpLV=cpHadr->Get4Momentum();
 		            G4cout<<"G4QE::FSI:h#"<<hp<<": hPDG="<<hpPDG<<", h4M="<<hpLV<<G4endl;
-            }
+           }
 #endif
-            delete qH;                           // Temporary Hadron is used for recovery
-            nHadr=theQHadrons.size();
-          }
-          delete quasH;                          // TemporaryQuasmon is used for recovery
-          fOK=false;
+           delete qH;                           // Temporary Hadron is used for recovery
+           nHadr=theQHadrons.size();
+         }
+         delete quasH;                          // TemporaryQuasmon is used for recovery
+         fOK=false;
 		      }
-        else
-        {
-          G4cerr<<"***G4QEnv::FSI: No FinalIsoNucRecovery, Env="<<theEnvironment<<G4endl;
-          throw G4QException("***G4QEnvironment::FSInter:IsoNucleus FinalDecayError");
-        }
+       else
+       {
+         G4cerr<<"***G4QEnv::FSI: No FinalIsoNucRecovery, Env="<<theEnvironment<<G4endl;
+         throw G4QException("***G4QEnvironment::FSInter:IsoNucleus FinalDecayError");
+       }
 #ifdef fdebug
-        G4cout<<"G4QEnv::FSI: Isonucleus recovery outPDG="<<curHadr->GetPDGCode()<<G4endl;
+       G4cout<<"G4QEnv::FSI: Isonucleus recovery outPDG="<<curHadr->GetPDGCode()<<G4endl;
 #endif
-      }
-      if(fOK)
-      {
+     }
+     if(fOK)
+     {
 #ifdef fdebug
-        G4cout<<"G4QE::FSI:IsoN==>"<<r4M<<"->N="<<PDGnu<<n4M<<"+Pi="<<PDGpi<<k4M<<G4endl;
+       G4cout<<"G4QE::FSI:IsoN==>"<<r4M<<"->N="<<PDGnu<<n4M<<"+Pi="<<PDGpi<<k4M<<G4endl;
 #endif
 		      if(hBN>1) n4M/=hBN;                    // Calculate the 4mom per one nucleon
-        curHadr->Set4Momentum(n4M);
-        curHadr->SetQPDG(G4QPDGCode(PDGnu));   // At least one nucleun always exists
-        if(hBN>1) for(G4int ih=1; ih<hBN; ih++)
-        {
-          G4QHadron* Hi = new G4QHadron(PDGnu,n4M); // Create a Hadron for the baryon
-          theQHadrons.push_back(Hi);    // (del.eq.- user is responsible for del)
-          //theFragments->push_back(Hi);        // Fill nucleons (delete equivalent)
-        }
-        if(nPi>1) k4M/=nPi;
-        for(G4int ip=0; ip<nPi; ip++)
-        {
-          G4QHadron* Hj = new G4QHadron(PDGpi,k4M); // Create a Hadron for the pion
-          theQHadrons.push_back(Hj);          // Fill pion (delete equivalent)
-        }
-      }
+       curHadr->Set4Momentum(n4M);
+       curHadr->SetQPDG(G4QPDGCode(PDGnu));   // At least one nucleun always exists
+       if(hBN>1) for(G4int ih=1; ih<hBN; ih++)
+       {
+         G4QHadron* Hi = new G4QHadron(PDGnu,n4M); // Create a Hadron for the baryon
+         theQHadrons.push_back(Hi);    // (del.eq.- user is responsible for del)
+         //theFragments->push_back(Hi);        // Fill nucleons (delete equivalent)
+       }
+       if(nPi>1) k4M/=nPi;
+       for(G4int ip=0; ip<nPi; ip++)
+       {
+         G4QHadron* Hj = new G4QHadron(PDGpi,k4M); // Create a Hadron for the pion
+         theQHadrons.push_back(Hj);          // Fill pion (delete equivalent)
+       }
+     }
 #ifdef fdebug
-      G4cout<<"G4QEnv::FSI: Isonucleus decay result h#="<<hd<<", outPDG="<<hPDG<<G4endl;
-#endif
-    }
-      else if ( hBN > 1 && 
-               ( (hBN == hCG && !hST) || 
-                 (!hCG && !hST) || 
-                 (!hCG && hST==hBN) ) ) //(n*P, n*N, or n*L)
-      {
-      // *** Temporary Correction *** (To find out where is the error)
-      if(hPDG==90000003 && fabs(curHadr->Get4Momentum().m()-mNeut-mNeut)<.1) {
-        hPDG=90000002;
-        hBN=2;
-        G4cout<<"--Warning--G4QEnv::FSI:3->2 neutrons conversion (***Check it***)"<<G4endl;
-      }
-      // End of the Temporary Correction
-      if     (!hCG&&!hST)     hPDG=90000001;
-      else if(hBN==hCG&&!hST) hPDG=90001000;
-      else if(!hCG&&hST==hBN) hPDG=91000000;
-      else throw G4QException("***G4QEnvironment::FSInteract: MultyDibaryon cant be here");
-      G4LorentzVector newLV=(curHadr->Get4Momentum())/hBN;
-      curHadr->Set4Momentum(newLV);
-      curHadr->SetQPDG(G4QPDGCode(hPDG));
-      for(G4int bd=1; bd<hBN; bd++)
-      {
-        G4QHadron* secHadr = new G4QHadron(curHadr);
-        theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
-        //theFragments->push_back(secHadr);// (del.equiv. - user is responsible for that)
-      }
-      }
-    else if(hST<0 && hBN>0) // AntistrangeNucleus (@@ see above, already done)
+     G4cout<<"G4QEnv::FSI: Isonucleus decay result h#="<<hd<<", outPDG="<<hPDG<<G4endl;
+#endif
+   }
+     else if ( hBN > 1 && 
+              ( (hBN == hCG && !hST) || 
+                (!hCG && !hST) || 
+                (!hCG && hST==hBN) ) ) //(n*P, n*N, or n*L)
+     {
+     // *** Temporary Correction *** (To find out where is the error)
+     if(hPDG==90000003 && fabs(curHadr->Get4Momentum().m()-mNeut-mNeut)<.1) {
+       hPDG=90000002;
+       hBN=2;
+       G4cout<<"--Warning--G4QEnv::FSI:3->2 neutrons conversion (***Check it***)"<<G4endl;
+     }
+     // End of the Temporary Correction
+     if     (!hCG&&!hST)     hPDG=90000001;
+     else if(hBN==hCG&&!hST) hPDG=90001000;
+     else if(!hCG&&hST==hBN) hPDG=91000000;
+     else throw G4QException("***G4QEnvironment::FSInteract: MultyDibaryon cant be here");
+     G4LorentzVector newLV=(curHadr->Get4Momentum())/hBN;
+     curHadr->Set4Momentum(newLV);
+     curHadr->SetQPDG(G4QPDGCode(hPDG));
+     for(G4int bd=1; bd<hBN; bd++)
+     {
+       G4QHadron* secHadr = new G4QHadron(curHadr);
+       theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
+       //theFragments->push_back(secHadr);// (del.equiv. - user is responsible for that)
+     }
+     }
+   else if(hST<0 && hBN>0) // AntistrangeNucleus (@@ see above, already done)
 	   {
-      G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theAntiStrangeNucleus
-      G4double reM=r4M.m();              // Real mass of the antiStrange nucleus
-      G4QContent nQC=curHadr->GetQC();   // QCont of the Antistrange nucleus
-      G4QNucleus  newN0(nQC-K0QC);
-      G4int  RPDG=newN0.GetPDG();
-      G4double mR=newN0.GetMZNS();       // Residual mass for K0
-      G4double mKaon=mK0;                // Prototype is mass of K0
-      G4int    kPDG =311;                // Prototype is PDG of K0
-      G4QNucleus  newNp(nQC-KpQC);
-      G4double mp=newNp.GetMZNS();       // Residual mass for K+
-      if(mp+mK<mR+mK0)                   // Select K+ as the minimum mass of products
-      {
-        mR=mp;
-        RPDG=newNp.GetPDG();
-        mKaon=mK;
-        kPDG=321;
-      }
-      G4double sum=mR+mKaon;
-      if(sum>reM)                        // for GEANT4 (Can not decay in kaon and residual)
+     G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theAntiStrangeNucleus
+     G4double reM=r4M.m();              // Real mass of the antiStrange nucleus
+     G4QContent nQC=curHadr->GetQC();   // QCont of the Antistrange nucleus
+     G4QNucleus  newN0(nQC-K0QC);
+     G4int  RPDG=newN0.GetPDG();
+     G4double mR=newN0.GetMZNS();       // Residual mass for K0
+     G4double mKaon=mK0;                // Prototype is mass of K0
+     G4int    kPDG =311;                // Prototype is PDG of K0
+     G4QNucleus  newNp(nQC-KpQC);
+     G4double mp=newNp.GetMZNS();       // Residual mass for K+
+     if(mp+mK<mR+mK0)                   // Select K+ as the minimum mass of products
+     {
+       mR=mp;
+       RPDG=newNp.GetPDG();
+       mKaon=mK;
+       kPDG=321;
+     }
+     G4double sum=mR+mKaon;
+     if(sum>reM)                        // for GEANT4 (Can not decay in kaon and residual)
 	     {
-        if(kPDG==321)                    // *** Very seldom *** "K+->pi+ conversion"
+       if(kPDG==321)                    // *** Very seldom *** "K+->pi+ conversion"
 		      {
-          kPDG=211;
-          mKaon=mPi;
+         kPDG=211;
+         mKaon=mPi;
 		      }
-        else                             // *** Very seldom *** "K0(S=-1)->pi- conversion"
+       else                             // *** Very seldom *** "K0(S=-1)->pi- conversion"
 		      {
-          kPDG=111;
-          mKaon=mPi0;
+         kPDG=111;
+         mKaon=mPi0;
 		      }
-        sum=mR+mKaon;
-      }
-      G4LorentzVector n4M(0.,0.,0.,mR);
-      G4LorentzVector k4M(0.,0.,0.,mKaon);
-      if(fabs(reM-sum)<eps)
+       sum=mR+mKaon;
+     }
+     G4LorentzVector n4M(0.,0.,0.,mR);
+     G4LorentzVector k4M(0.,0.,0.,mKaon);
+     if(fabs(reM-sum)<eps)
 	     {
-        n4M=r4M*(mR/sum);
-        k4M=r4M*(mKaon/sum);
-      }
-      else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,k4M))
-      {
-        G4cout<<"---Warning---G4QE::FSI: Try to recover ASN="<<hPDG<<","<<reM<<"<"<<mR<<"+"
-              <<mKaon<<"="<<sum<<G4endl;
-        if(!theEnvironment.GetA())
-        {
-          G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
-          G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
-          if(hd+1<theQHadrons.size())           // If ipo<Last, swap CurHadr & LastHadr
-          {
-            theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
-            G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
-            if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
-            else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
-            curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
-          }
-          theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
-          delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
-          G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
-          if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
-          {
-            qH->SetNFragments(-1);              //@@ To avoid looping
-            G4cout<<"---Warning---G4QE::FSI:AntiStraN Failed LeaveAsItIs 4m="<<r4M<<G4endl;
-            theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
-          }
-          else
-          {
-            delete qH;
-            nHadr=theQHadrons.size();
-          }
-          delete quasH;
-          fOK=false;
+       n4M=r4M*(mR/sum);
+       k4M=r4M*(mKaon/sum);
+     }
+     else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,k4M))
+     {
+       G4cout<<"---Warning---G4QE::FSI: Try to recover ASN="<<hPDG<<","<<reM<<"<"<<mR<<"+"
+             <<mKaon<<"="<<sum<<G4endl;
+       if(!theEnvironment.GetA())
+       {
+         G4QHadron* theLast = curHadr;          // Prototype of Pointer to theLastHadron
+         G4QHadron* qH = new G4QHadron(curHadr);// Copy of the Current Hadron
+         if(hd+1<theQHadrons.size())           // If ipo<Last, swap CurHadr & LastHadr
+         {
+           theLast = theQHadrons[theQHadrons.size()-1]; // Pointer to LastHadr(ipo<Last)
+           G4QPDGCode lQP=theLast->GetQPDG();         // The QPDG of the last
+           if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP); //CurHadr instead of PrevHadr
+           else curHadr->SetQC(theLast->GetQC());       // CurHadrPDG instead of LastHadrPDG
+           curHadr->Set4Momentum(theLast->Get4Momentum()); // ... 4Momentum substitution
+         }
+         theQHadrons.pop_back();        // exclude theLastHadron pointer from the OUTPUT
+         delete theLast; //*!! When killing, DON'T forget to delete the last QHadron !!*
+         G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());//Fake Quasmon
+         if(!CheckGroundState(quasH,true))      // Try to correct by other hadrons
+         {
+           qH->SetNFragments(-1);              //@@ To avoid looping
+           G4cout<<"---Warning---G4QE::FSI:AntiStraN Failed LeaveAsItIs 4m="<<r4M<<G4endl;
+           theQHadrons.push_back(qH);           // Leave as it is (delete equivalent)
+         }
+         else
+         {
+           delete qH;
+           nHadr=theQHadrons.size();
+         }
+         delete quasH;
+         fOK=false;
 		      }
-        else
-        {
-          G4cerr<<"***G4QEnv::FSI: No Final AntiSN recovery, E="<<theEnvironment<<G4endl;
-          throw G4QException("***G4QEnvironment::FSInter:AntistrangeNucleus decayError");
-        }
-      }
-      if(fOK)
-      {
+       else
+       {
+         G4cerr<<"***G4QEnv::FSI: No Final AntiSN recovery, E="<<theEnvironment<<G4endl;
+         throw G4QException("***G4QEnvironment::FSInter:AntistrangeNucleus decayError");
+       }
+     }
+     if(fOK)
+     {
 #ifdef fdebug
-        G4cout<<"G4QE::FSI:AntiSN==>"<<r4M<<"->A="<<RPDG<<n4M<<"+K="<<kPDG<<k4M<<G4endl;
-#endif
-        curHadr->Set4Momentum(k4M);                 // Kaon
-        curHadr->SetQPDG(G4QPDGCode(kPDG));
-        G4QHadron* theRes = new G4QHadron(RPDG,n4M);// Make a New Hadr for the residual
-        EvaporateResidual(theRes);                  // Try to evaporate theResNuc (del.eq.)
-      }
-    }
-    else if(hPDG>90500000&&hPDG!=91000000&&hPDG!=91000999&&hPDG!=90999001) // Only for G4
+       G4cout<<"G4QE::FSI:AntiSN==>"<<r4M<<"->A="<<RPDG<<n4M<<"+K="<<kPDG<<k4M<<G4endl;
+#endif
+       curHadr->Set4Momentum(k4M);                 // Kaon
+       curHadr->SetQPDG(G4QPDGCode(kPDG));
+       G4QHadron* theRes = new G4QHadron(RPDG,n4M);// Make a New Hadr for the residual
+       EvaporateResidual(theRes);                  // Try to evaporate theResNuc (del.eq.)
+     }
+   }
+   else if(hPDG>90500000&&hPDG!=91000000&&hPDG!=91000999&&hPDG!=90999001) // Only for G4
 	// @@ Xi & Omega- can be added here ^^^, if show up below
 	   {
 #ifdef pdebug
-      G4cout<<"***G4QEnvironment::FSI:*G4* Hypernucleus PDG="<<hPDG<<" must decay"<<G4endl;
+     G4cout<<"***G4QEnvironment::FSI:*G4* Hypernucleus PDG="<<hPDG<<" must decay"<<G4endl;
 #endif
-      G4int nL=curHadr->GetStrangeness();      // A number of Lambdas in the Hypernucleus
-      G4int nB=curHadr->GetBaryonNumber();     // Total Baryon Number of the Hypernucleus
-      G4int nC=curHadr->GetCharge();           // Charge of the Hypernucleus
-      G4int nSM=0;                             // A#0f unavoidable Sigma-
-      G4int nSP=0;                             // A#0f unavoidable Sigma+
-      if(nC<0)                                 // Negative hypernucleus
+     G4int nL=curHadr->GetStrangeness();      // A number of Lambdas in the Hypernucleus
+     G4int nB=curHadr->GetBaryonNumber();     // Total Baryon Number of the Hypernucleus
+     G4int nC=curHadr->GetCharge();           // Charge of the Hypernucleus
+     G4int nSM=0;                             // A#0f unavoidable Sigma-
+     G4int nSP=0;                             // A#0f unavoidable Sigma+
+     if(nC<0)                                 // Negative hypernucleus
 	     {
-        if(-nC<=nL)
+       if(-nC<=nL)
 		      {
-          nSM=-nC;                             // Can be compensated by Sigma-
-          nL+=nC;                              // Reduce the residual strangeness
-        }
-        else
+         nSM=-nC;                             // Can be compensated by Sigma-
+         nL+=nC;                              // Reduce the residual strangeness
+       }
+       else
 		      {
-          nSM=nL;                              // The maximum number of Sigma-
-          nL=0;                                // Kill the residual strangeness
-        }
-      }
-      else if(nC>nB-nL)                        // Extra positive hypernucleus
+         nSM=nL;                              // The maximum number of Sigma-
+         nL=0;                                // Kill the residual strangeness
+       }
+     }
+     else if(nC>nB-nL)                        // Extra positive hypernucleus
 	     {
-        if(nC<=nB)
+       if(nC<=nB)
 		      {
-          G4int dH=nB-nC;
-          nSP=nL-dH;                           // Can be compensated by Sigma+
-          nL=dH;                               // Reduce the residual strangeness
-        }
-        else
+         G4int dH=nB-nC;
+         nSP=nL-dH;                           // Can be compensated by Sigma+
+         nL=dH;                               // Reduce the residual strangeness
+       }
+       else
 		      {
-          nSP=nL;                              // The maximum number of Sigma+
-          nL=0;                                // Kill the residual strangeness
-        }
-      }
-      G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-momentum of the hypernucleus
-      G4double reM=r4M.m();                    // Real mass of the hypernucleus
-      G4int rlPDG = hPDG-nL*1000000-nSP*1000999-nSM*999001;// Subtract Lamb/Sig from Nucl
-      G4int    sPDG=3122;                      // Prototype for the Hyperon PDG (Lambda)
-      G4double MLa=mLamb;                      // Prototype for one Hyperon decay
-#ifdef pdebug
-      G4cout<<"G4QEnvironment::FSI:*G4* nS+="<<nSP<<", nS-="<<nSM<<", nL="<<nL<<G4endl;
-#endif
-      if(nSP||nSM)
+         nSP=nL;                              // The maximum number of Sigma+
+         nL=0;                                // Kill the residual strangeness
+       }
+     }
+     G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-momentum of the hypernucleus
+     G4double reM=r4M.m();                    // Real mass of the hypernucleus
+     G4int rlPDG = hPDG-nL*1000000-nSP*1000999-nSM*999001;// Subtract Lamb/Sig from Nucl
+     G4int    sPDG=3122;                      // Prototype for the Hyperon PDG (Lambda)
+     G4double MLa=mLamb;                      // Prototype for one Hyperon decay
+#ifdef pdebug
+     G4cout<<"G4QEnvironment::FSI:*G4* nS+="<<nSP<<", nS-="<<nSM<<", nL="<<nL<<G4endl;
+#endif
+     if(nSP||nSM)
 	     {
-        if(nL)
-        {
-          G4cout<<"***G4QE::FSI: HypNPDG="<<hPDG<<": both Sigm&Lamb -> Improve it"<<G4endl;
-          //throw G4QException("*G4QEnvironment::FSInter: Both Lambda&Sigma in Hypernucl");
-          // @@ Correction, which does not conserv the charge !! (-> add decay in 3)
-          if(nSP) nL+=nSP;
-          else    nL+=nSM;
-        }
-        if(nSP)
+       if(nL)
+       {
+         G4cout<<"***G4QE::FSI: HypNPDG="<<hPDG<<": both Sigm&Lamb -> Improve it"<<G4endl;
+         //throw G4QException("*G4QEnvironment::FSInter: Both Lambda&Sigma in Hypernucl");
+         // @@ Correction, which does not conserv the charge !! (-> add decay in 3)
+         if(nSP) nL+=nSP;
+         else    nL+=nSM;
+       }
+       if(nSP)
 		      {
-          nL=nSP;
-          sPDG=3222;
-          MLa=mSigP;
-        }
-        else
+         nL=nSP;
+         sPDG=3222;
+         MLa=mSigP;
+       }
+       else
 		      {
-          nL=nSM;
-          sPDG=3112;
-          MLa=mSigM;
-        }
-      }
+         nL=nSM;
+         sPDG=3112;
+         MLa=mSigM;
+       }
+     }
 #ifdef pdebug
-      G4cout<<"G4QEnvironment::FSI:*G4* mS="<<MLa<<", sPDG="<<sPDG<<", nL="<<nL<<G4endl;
+     G4cout<<"G4QEnvironment::FSI:*G4* mS="<<MLa<<", sPDG="<<sPDG<<", nL="<<nL<<G4endl;
 #endif
-      if(nL>1) MLa*=nL;
-      G4double rlM=G4QNucleus(rlPDG).GetMZNS();// Mass of the new residualNonstrangeNucleus
-      if(!nSP&&!nSM&&nL==1&&reM>rlM+mSigZ&&G4UniformRand()>.5) // Sigma0 @@ AddToHadroniz.?
+     if(nL>1) MLa*=nL;
+     G4double rlM=G4QNucleus(rlPDG).GetMZNS();// Mass of the new residualNonstrangeNucleus
+     if(!nSP&&!nSM&&nL==1&&reM>rlM+mSigZ&&G4UniformRand()>.5) // Sigma0 @@ AddToHadroniz.?
 	     {
-        sPDG=3212;
-        MLa=mSigZ;
-      }
-      G4int rnPDG = hPDG-nL*999999;            // Convert Lambdas to neutrons (for convInN)
-      G4QNucleus rnN(rnPDG);                   // New nonstrange nucleus
-      G4double rnM=rnN.GetMZNS();              // Mass of the new nonstrange nucleus
-      // @@ Take into account that there can be Iso-Hypernucleus (Add PI+,R & Pi-,R decays)
-      if(rlPDG==90000000)                      // Multy Hyperon (HyperNuc of only hyperons)
+       sPDG=3212;
+       MLa=mSigZ;
+     }
+     G4int rnPDG = hPDG-nL*999999;            // Convert Lambdas to neutrons (for convInN)
+     G4QNucleus rnN(rnPDG);                   // New nonstrange nucleus
+     G4double rnM=rnN.GetMZNS();              // Mass of the new nonstrange nucleus
+     // @@ Take into account that there can be Iso-Hypernucleus (Add PI+,R & Pi-,R decays)
+     if(rlPDG==90000000)                      // Multy Hyperon (HyperNuc of only hyperons)
 	     {
-        if(nL>1) r4M=r4M/nL;                   // split the 4-mom for the MultyLambda
-        for(G4int il=0; il<nL; il++)           // loop over Lambdas
-        {
-          G4QHadron* theLam = new G4QHadron(sPDG,r4M);// Make a New Hadr for the Hyperon
-          theQHadrons.push_back(theLam);       // (del.eq.- user is responsible for del)
-        }
-      }
+       if(nL>1) r4M=r4M/nL;                   // split the 4-mom for the MultyLambda
+       for(G4int il=0; il<nL; il++)           // loop over Lambdas
+       {
+         G4QHadron* theLam = new G4QHadron(sPDG,r4M);// Make a New Hadr for the Hyperon
+         theQHadrons.push_back(theLam);       // (del.eq.- user is responsible for del)
+       }
+     }
 	     else if(reM>rlM+MLa-eps)                  // Lambda(or Sigma) can be split
 	     {
-        G4LorentzVector n4M(0.,0.,0.,rlM);
-        G4LorentzVector h4M(0.,0.,0.,MLa);
-        G4double sum=rlM+MLa;
-        if(fabs(reM-sum)<eps)
+       G4LorentzVector n4M(0.,0.,0.,rlM);
+       G4LorentzVector h4M(0.,0.,0.,MLa);
+       G4double sum=rlM+MLa;
+       if(fabs(reM-sum)<eps)
 	       {
-          n4M=r4M*(rlM/sum);
-          h4M=r4M*(MLa/sum);
-        }
-        else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,h4M))
-        {
-          G4cerr<<"***G4QE::FSI:Hypern, M="<<reM<<"<A+n*L="<<sum<<",d="<<sum-reM<<G4endl;
-          throw G4QException("***G4QEnvironment::FSInter: Hypernuclear L-decay error");
-        }
-#ifdef pdebug
-        G4cout<<"*G4QE::FSI:HypN "<<r4M<<"->A="<<rlPDG<<n4M<<", n*Lamb="<<nL<<h4M<<G4endl;
-#endif
-        curHadr->Set4Momentum(n4M);
-        curHadr->SetQPDG(G4QPDGCode(rlPDG));   // converted hypernucleus
-        if(rlPDG==90000002)                    // Additional action with curHadr change
+         n4M=r4M*(rlM/sum);
+         h4M=r4M*(MLa/sum);
+       }
+       else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,h4M))
+       {
+         G4cerr<<"***G4QE::FSI:Hypern, M="<<reM<<"<A+n*L="<<sum<<",d="<<sum-reM<<G4endl;
+         throw G4QException("***G4QEnvironment::FSInter: Hypernuclear L-decay error");
+       }
+#ifdef pdebug
+       G4cout<<"*G4QE::FSI:HypN "<<r4M<<"->A="<<rlPDG<<n4M<<", n*Lamb="<<nL<<h4M<<G4endl;
+#endif
+       curHadr->Set4Momentum(n4M);
+       curHadr->SetQPDG(G4QPDGCode(rlPDG));   // converted hypernucleus
+       if(rlPDG==90000002)                    // Additional action with curHadr change
 	       {
-          G4LorentzVector newLV=n4M/2.;
-          curHadr->Set4Momentum(newLV);
-          curHadr->SetQPDG(G4QPDGCode(90000001));
-          G4QHadron* secHadr = new G4QHadron(curHadr);
-          theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
-        }
-        else if(rlPDG==90002000)               // Additional action with curHadr change
+         G4LorentzVector newLV=n4M/2.;
+         curHadr->Set4Momentum(newLV);
+         curHadr->SetQPDG(G4QPDGCode(90000001));
+         G4QHadron* secHadr = new G4QHadron(curHadr);
+         theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
+       }
+       else if(rlPDG==90002000)               // Additional action with curHadr change
 	       {
-          G4LorentzVector newLV=n4M/2.;
-          curHadr->Set4Momentum(newLV);
-          curHadr->SetQPDG(G4QPDGCode(90001000));
-          G4QHadron* secHadr = new G4QHadron(curHadr);
-          theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
-        }
-        // @@(?) Add multybaryon decays if necessary (Now it anyhow is made later)
+         G4LorentzVector newLV=n4M/2.;
+         curHadr->Set4Momentum(newLV);
+         curHadr->SetQPDG(G4QPDGCode(90001000));
+         G4QHadron* secHadr = new G4QHadron(curHadr);
+         theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
+       }
+       // @@(?) Add multybaryon decays if necessary (Now it anyhow is made later)
 #ifdef fdebug
-        G4cout<<"*G4QE::FSI: resNucPDG="<<curHadr->GetPDGCode()<<G4endl;
-#endif
-        if(nL>1) h4M=h4M/nL;                   // split the lambda's 4-mom if necessary
-        for(G4int il=0; il<nL; il++)           // loop over excessive
-        {
-          G4QHadron* theLamb = new G4QHadron(sPDG,h4M);// Make a New Hadr for the Hyperon
-          theQHadrons.push_back(theLamb);      // (del.eq.- user is responsible for del)
-        }
-      }
+       G4cout<<"*G4QE::FSI: resNucPDG="<<curHadr->GetPDGCode()<<G4endl;
+#endif
+       if(nL>1) h4M=h4M/nL;                   // split the lambda's 4-mom if necessary
+       for(G4int il=0; il<nL; il++)           // loop over excessive
+       {
+         G4QHadron* theLamb = new G4QHadron(sPDG,h4M);// Make a New Hadr for the Hyperon
+         theQHadrons.push_back(theLamb);      // (del.eq.- user is responsible for del)
+       }
+     }
 	     else if(reM>rnM+mPi0-eps&&!nSP&&!nSM)    // Lambda->N only if Sigmas are absent
 	     {
-        G4int nPi=static_cast<G4int>((reM-rnM)/mPi0);
-        if (nPi>nL) nPi=nL;
-        G4double npiM=nPi*mPi0;
-        G4LorentzVector n4M(0.,0.,0.,rnM);
-        G4LorentzVector h4M(0.,0.,0.,npiM);
-        G4double sum=rnM+npiM;
-        if(fabs(reM-sum)<eps)
+       G4int nPi=static_cast<G4int>((reM-rnM)/mPi0);
+       if (nPi>nL) nPi=nL;
+       G4double npiM=nPi*mPi0;
+       G4LorentzVector n4M(0.,0.,0.,rnM);
+       G4LorentzVector h4M(0.,0.,0.,npiM);
+       G4double sum=rnM+npiM;
+       if(fabs(reM-sum)<eps)
 	       {
-          n4M=r4M*(rnM/sum);
-          h4M=r4M*(npiM/sum);
-        }
-        else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,h4M))
-        {
-          G4cerr<<"***G4QE::FSI:Hypern, M="<<reM<<"<A+n*Pi0="<<sum<<",d="<<sum-reM<<G4endl;
-          throw G4QException("***G4QEnvironment::FSInter: Hypernuclear decay error");
-        }
-        curHadr->Set4Momentum(n4M);
-        curHadr->SetQPDG(G4QPDGCode(rnPDG));   // converted hypernucleus
+         n4M=r4M*(rnM/sum);
+         h4M=r4M*(npiM/sum);
+       }
+       else if(reM<sum || !G4QHadron(r4M).DecayIn2(n4M,h4M))
+       {
+         G4cerr<<"***G4QE::FSI:Hypern, M="<<reM<<"<A+n*Pi0="<<sum<<",d="<<sum-reM<<G4endl;
+         throw G4QException("***G4QEnvironment::FSInter: Hypernuclear decay error");
+       }
+       curHadr->Set4Momentum(n4M);
+       curHadr->SetQPDG(G4QPDGCode(rnPDG));   // converted hypernucleus
 #ifdef fdebug
-        G4cout<<"*G4QE::FSI:HypN "<<r4M<<"->A="<<rnPDG<<n4M<<",n*Pi0="<<nPi<<h4M<<G4endl;
-#endif
-        if(nPi>1) h4M=h4M/nPi;                 // split the 4-mom if necessary
-        for(G4int ihn=0; ihn<nPi; ihn++)       // loop over additional pions
-        {
-          G4QHadron* thePion = new G4QHadron(111,h4M);// Make a New Hadr for the pion
-          theQHadrons.push_back(thePion);    // (del.eq.- user is responsible for del)
-          //theFragments->push_back(thePion);    // (delete equivalent for the pion)
-        }
-        if(rnPDG==90000002)                    // Additional action with curHadr change
+       G4cout<<"*G4QE::FSI:HypN "<<r4M<<"->A="<<rnPDG<<n4M<<",n*Pi0="<<nPi<<h4M<<G4endl;
+#endif
+       if(nPi>1) h4M=h4M/nPi;                 // split the 4-mom if necessary
+       for(G4int ihn=0; ihn<nPi; ihn++)       // loop over additional pions
+       {
+         G4QHadron* thePion = new G4QHadron(111,h4M);// Make a New Hadr for the pion
+         theQHadrons.push_back(thePion);    // (del.eq.- user is responsible for del)
+         //theFragments->push_back(thePion);    // (delete equivalent for the pion)
+       }
+       if(rnPDG==90000002)                    // Additional action with curHadr change
 	       {
-          G4LorentzVector newLV=n4M/2.;
-          curHadr->Set4Momentum(newLV);
-          curHadr->SetQPDG(G4QPDGCode(90000001));
-          G4QHadron* secHadr = new G4QHadron(curHadr);
-          theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
-          //theFragments->push_back(secHadr);    // (del.eq.- user is responsible for del)
-        }
-        else if(rnPDG==90002000)               // Additional action with curHadr change
+         G4LorentzVector newLV=n4M/2.;
+         curHadr->Set4Momentum(newLV);
+         curHadr->SetQPDG(G4QPDGCode(90000001));
+         G4QHadron* secHadr = new G4QHadron(curHadr);
+         theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
+         //theFragments->push_back(secHadr);    // (del.eq.- user is responsible for del)
+       }
+       else if(rnPDG==90002000)               // Additional action with curHadr change
 	       {
-          G4LorentzVector newLV=n4M/2.;
-          curHadr->Set4Momentum(newLV);
-          curHadr->SetQPDG(G4QPDGCode(90001000));
-          G4QHadron* secHadr = new G4QHadron(curHadr);
-          theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
-          //theFragments->push_back(secHadr);    // (del.eq.- user is responsible for del)
-        }
-        // @@ Add multybaryon decays if necessary
-      }
-      else // If this Excepton shows up (lowProbable appearance) => include gamma decay
+         G4LorentzVector newLV=n4M/2.;
+         curHadr->Set4Momentum(newLV);
+         curHadr->SetQPDG(G4QPDGCode(90001000));
+         G4QHadron* secHadr = new G4QHadron(curHadr);
+         theQHadrons.push_back(secHadr);    // (del.eq.- user is responsible for del)
+         //theFragments->push_back(secHadr);    // (del.eq.- user is responsible for del)
+       }
+       // @@ Add multybaryon decays if necessary
+     }
+     else // If this Excepton shows up (lowProbable appearance) => include gamma decay
 	     {
-        G4double d=rlM+MLa-reM;
+       G4double d=rlM+MLa-reM;
 		G4cerr<<"G4QE::FSI:R="<<rlM<<",S+="<<nSP<<",S-="<<nSM<<",L="<<nL<<",d="<<d<<G4endl;
-        d=rnM+mPi0-reM;
+       d=rnM+mPi0-reM;
 		G4cerr<<"***G4QE::FSI: HypN="<<hPDG<<", M="<<reM<<"<"<<rnM+mPi0<<",d="<<d<<G4endl;
-        throw G4QException("G4QEnvironment::FSInteract: Hypernuclear conversion");
-      }
-    }
-    //unsigned nHd=theQHadrons.size()-1;
-    //if(hd==nHd && !fOK)
+       throw G4QException("G4QEnvironment::FSInteract: Hypernuclear conversion");
+     }
+   }
+   //unsigned nHd=theQHadrons.size()-1;
+   //if(hd==nHd && !fOK)
 	//{
-    //  G4cout<<"---Warning---G4QE::FSI: The Last #"<<hd<<" hadron must be filled"<<G4endl;
+   //  G4cout<<"---Warning---G4QE::FSI: The Last #"<<hd<<" hadron must be filled"<<G4endl;
 	//  fOK=true;
-    //  curHadr = new G4QHadron(theQHadrons[hd]);
-    //}
-    //if(fOK) theFragments->push_back(curHadr);  //(del eq. - user is responsible for del)
-    //else hd--;
-    if(!fOK) hd--;
-  } // 
+   //  curHadr = new G4QHadron(theQHadrons[hd]);
+   //}
+   //if(fOK) theFragments->push_back(curHadr);  //(del eq. - user is responsible for del)
+   //else hd--;
+   if(!fOK) hd--;
+ } // 
 #ifdef fdebug
-  G4cout<<"G4QE::FSI:==>OUT,nH="<<theQHadrons.size()<<",nF="<<theFragments->size()<<G4endl;
-#endif
-  // *** (Final) Charge Control Sum Calculation for the Charge Conservation Check ***
-  //nHadr=theFragments->size();
-  nHadr=theQHadrons.size();
-  G4int cfContSum=0;                   // Final ChargeControlSum 
-  G4int bfContSum=0;                   // Final BaryonNumberControlSum 
-  if(nHadr)for(unsigned f=0; f<nHadr; f++)
-  {
-    G4QHadron* curHadr = new G4QHadron(theQHadrons[f]);
-#ifdef pdebug
-    G4cout<<"G4QE::FSI:#"<<f<<curHadr->Get4Momentum()<<curHadr->GetPDGCode()<<G4endl;
-#endif
-    if(!(curHadr->GetNFragments()))
-    {
-      G4int chg=curHadr->GetCharge();
-      cfContSum+=chg;
-      G4int brn=curHadr->GetBaryonNumber();
-      bfContSum+=brn;
-      G4int str=curHadr->GetStrangeness();
-      if ( brn > 1 && 
-           ( (!str && (chg == brn || !chg)) || 
-             (!chg && str == brn) ) ) // Check for multibaryon(split)
-      {
-        G4int             bPDG=90000001; // Prototype: multineutron
-        if     (chg==brn) bPDG=90001000; // Multyproton
-        else if(str==brn) bPDG=91000000; // Multilambda
-        G4LorentzVector sp4m=curHadr->Get4Momentum()/brn; // Split 4-mom of the Multibaryon
-        curHadr->Set4Momentum(sp4m);
-        curHadr->SetQPDG(G4QPDGCode(bPDG)); // Substitute Multibaryon by a baryon
-        for (G4int ib=1; ib<brn; ib++)
+ G4cout<<"G4QE::FSI:==>OUT,nH="<<theQHadrons.size()<<",nF="<<theFragments->size()<<G4endl;
+#endif
+ // *** (Final) Charge Control Sum Calculation for the Charge Conservation Check ***
+ //nHadr=theFragments->size();
+ nHadr=theQHadrons.size();
+ G4int cfContSum=0;                   // Final ChargeControlSum 
+ G4int bfContSum=0;                   // Final BaryonNumberControlSum 
+ if(nHadr)for(unsigned f=0; f<nHadr; f++)
+ {
+   G4QHadron* curHadr = new G4QHadron(theQHadrons[f]);
+#ifdef pdebug
+   G4cout<<"G4QE::FSI:#"<<f<<curHadr->Get4Momentum()<<curHadr->GetPDGCode()<<G4endl;
+#endif
+   if(!(curHadr->GetNFragments()))
+   {
+     G4int chg=curHadr->GetCharge();
+     cfContSum+=chg;
+     G4int brn=curHadr->GetBaryonNumber();
+     bfContSum+=brn;
+     G4int str=curHadr->GetStrangeness();
+     if ( brn > 1 && 
+          ( (!str && (chg == brn || !chg)) || 
+            (!chg && str == brn) ) ) // Check for multibaryon(split)
+     {
+       G4int             bPDG=90000001; // Prototype: multineutron
+       if     (chg==brn) bPDG=90001000; // Multyproton
+       else if(str==brn) bPDG=91000000; // Multilambda
+       G4LorentzVector sp4m=curHadr->Get4Momentum()/brn; // Split 4-mom of the Multibaryon
+       curHadr->Set4Momentum(sp4m);
+       curHadr->SetQPDG(G4QPDGCode(bPDG)); // Substitute Multibaryon by a baryon
+       for (G4int ib=1; ib<brn; ib++)
 		      {
-          G4QHadron* bH = new G4QHadron(bPDG, sp4m);
-         theFragments->push_back(bH);     //(del eq. - user is responsible for deleting)
-        }
-      }
-      theFragments->push_back(curHadr);  //(del eq. - user is responsible for deleting)
-    }
-  }
-  if(cfContSum-chContSum || bfContSum-bnContSum)
-  {
-    G4cerr<<"*G4QE::FSI:(9) Ch="<<cfContSum-chContSum<<",Bn="<<bfContSum-bnContSum<<G4endl;
+         G4QHadron* bH = new G4QHadron(bPDG, sp4m);
+        theFragments->push_back(bH);     //(del eq. - user is responsible for deleting)
+       }
+     }
+     theFragments->push_back(curHadr);  //(del eq. - user is responsible for deleting)
+   }
+ }
 #ifdef chdebug
-    throw G4QException("G4QEnvironment::FSInteract: (9) Charge is not conserved");
+ if(cfContSum-chContSum || bfContSum-bnContSum) // @@ TIA Residual Nucleus correction!
+ {
+   G4cerr<<"*G4QE::FSI:(9) Ch="<<cfContSum-chContSum<<",Bn="<<bfContSum-bnContSum<<G4endl;
+
+   throw G4QException("G4QEnvironment::FSInteract: (9) Charge is not conserved");
+ }
 #endif
-  }
-  // ***
-  return theFragments;
+ // ***
+ return theFragments;
 } // End of "FSInteraction"
 
 //The public Quasmons duplication with delete responsibility of User (!)
 G4QuasmonVector* G4QEnvironment::GetQuasmons()
 {//              =============================
-  G4int nQ=theQuasmons.size();
+ G4int nQ=theQuasmons.size();
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::GetQuasmons is called nQ="<<nQ<<G4endl;
+ G4cout<<"G4QEnvironment::GetQuasmons is called nQ="<<nQ<<G4endl;
 #endif
-  G4QuasmonVector* quasmons = new G4QuasmonVector;   // !! User is responsible to delet it
-  if(nQ) for(G4int iq=0; iq<nQ; iq++)
-  {
+ G4QuasmonVector* quasmons = new G4QuasmonVector;   // !! User is responsible to delet it
+ if(nQ) for(G4int iq=0; iq<nQ; iq++)
+ {
 #ifdef pdebug
-    G4cout<<"G4QEnv::GetQuasm:Q#"<<iq<<",QQPDG="<<theQuasmons[iq]->GetQPDG()<<",QQC="
-          <<theQuasmons[iq]->GetQC()<<",M="<<theQuasmons[iq]->Get4Momentum().m()<<G4endl;
+   G4cout<<"G4QEnv::GetQuasm:Q#"<<iq<<",QQPDG="<<theQuasmons[iq]->GetQPDG()<<",QQC="
+         <<theQuasmons[iq]->GetQC()<<",M="<<theQuasmons[iq]->Get4Momentum().m()<<G4endl;
 #endif
-    G4Quasmon* curQ = new G4Quasmon(theQuasmons[iq]);
-    quasmons->push_back(curQ);                 // (delete equivalent - user is responsible)
-  }
+   G4Quasmon* curQ = new G4Quasmon(theQuasmons[iq]);
+   quasmons->push_back(curQ);                 // (delete equivalent - user is responsible)
+ }
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::GetQuasmons ===OUT==="<<G4endl;
+ G4cout<<"G4QEnvironment::GetQuasmons ===OUT==="<<G4endl;
 #endif
-  return quasmons;
+ return quasmons;
 } // End of GetQuasmons
 
 //The public QHadrons duplication with delete responsibility of User (!)
 G4QHadronVector* G4QEnvironment::GetQHadrons()
 {//              =============================
-  G4int nH=theQHadrons.size();
+ G4int nH=theQHadrons.size();
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::GetQHadrons is called nH="<<nH<<G4endl;
+ G4cout<<"G4QEnvironment::GetQHadrons is called nH="<<nH<<G4endl;
 #endif
-  G4QHadronVector* hadrons = new G4QHadronVector;  // !! User is responsible to delet it
-  if(nH) for(G4int ih=0; ih<nH; ih++)
-  {
+ G4QHadronVector* hadrons = new G4QHadronVector;  // !! User is responsible to delet it
+ if(nH) for(G4int ih=0; ih<nH; ih++)
+ {
 #ifdef pdebug
-    G4cout<<"G4QEnv::GetQHadrons:H#"<<ih<<",HQPDG="<<theQHadrons[ih]->GetQPDG()<<",HQC="
-          <<theQHadrons[ih]->GetQC()<<",HM="<<theQHadrons[ih]->GetMass()<<G4endl;
+   G4cout<<"G4QEnv::GetQHadrons:H#"<<ih<<",HQPDG="<<theQHadrons[ih]->GetQPDG()<<",HQC="
+         <<theQHadrons[ih]->GetQC()<<",HM="<<theQHadrons[ih]->GetMass()<<G4endl;
 #endif
-    G4QHadron* curH = new G4QHadron(theQHadrons[ih]);
-    hadrons->push_back(curH);                       // (del. equiv. - user is responsibile)
-  }
+   G4QHadron* curH = new G4QHadron(theQHadrons[ih]);
+   hadrons->push_back(curH);                       // (del. equiv. - user is responsibile)
+ }
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::GetQHadrons ===OUT=== Copied nQH="<<hadrons->size()<<G4endl;
+ G4cout<<"G4QEnvironment::GetQHadrons ===OUT=== Copied nQH="<<hadrons->size()<<G4endl;
 #endif
-  return hadrons;
+ return hadrons;
 } // End of GetQHadrons
 
 //Public QHadrons cleaning up after extraction (GetQHadrons) between Construct and Fragment
 void G4QEnvironment::CleanUpQHadrons()
 {//  =================================
-  for_each(theQHadrons.begin(), theQHadrons.end(), DeleteQHadron());
-  theQHadrons.clear();
+ for_each(theQHadrons.begin(), theQHadrons.end(), DeleteQHadron());
+ theQHadrons.clear();
 } // End of CleanUpQHadrons
 
 //The public FillQHadrons filling. It must be used only internally in CHIPS
 void G4QEnvironment::FillQHadrons(G4QHadronVector* input)
 {//                  ====================================
-  G4int nH=input->size();
+ G4int nH=input->size();
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::FillQHadrons is called nH="<<nH<<G4endl;
+ G4cout<<"G4QEnvironment::FillQHadrons is called nH="<<nH<<G4endl;
 #endif
-  if(nH) for(G4int ih=0; ih<nH; ih++)
-  {
+ if(nH) for(G4int ih=0; ih<nH; ih++)
+ {
 #ifdef pdebug
-    G4cout<<"G4QEnv::FillQHadrons:H#"<<ih<<",HQPDG="<<(*input)[ih]->GetQPDG()<<",HQC="
-          <<(*input)[ih]->GetQC()<<",HM="<<(*input)[ih]->GetMass()<<G4endl;
+   G4cout<<"G4QEnv::FillQHadrons:H#"<<ih<<",HQPDG="<<(*input)[ih]->GetQPDG()<<",HQC="
+         <<(*input)[ih]->GetQC()<<",HM="<<(*input)[ih]->GetMass()<<G4endl;
 #endif
-    G4QHadron* curH = new G4QHadron((*input)[ih]);
-    theQHadrons.push_back(curH);                        // (del. equiv. 
-  }
+   G4QHadron* curH = new G4QHadron((*input)[ih]);
+   theQHadrons.push_back(curH);                        // (del. equiv. 
+ }
 #ifdef pdebug
-  G4cout<<"G4QEnvironment::FillQHadrons ===OUT=== Filled nQH="<<theQHadrons.size()<<G4endl;
+ G4cout<<"G4QEnvironment::FillQHadrons ===OUT=== Filled nQH="<<theQHadrons.size()<<G4endl;
 #endif
 } // End of FillQHadrons
 
 //Decay of the excited Baryon in baryon & meson (gamma)
 void G4QEnvironment::DecayBaryon(G4QHadron* qH)
 {//  ============================================
-  static const G4QPDGCode gQPDG(22);
-  static const G4QPDGCode pizQPDG(111);
-  static const G4QPDGCode pipQPDG(211);
-  static const G4QPDGCode pimQPDG(-211);
-  static const G4QPDGCode kmQPDG(-321);
-  static const G4QPDGCode kzQPDG(-311);
-  static const G4QPDGCode nQPDG(2112);
-  static const G4QPDGCode pQPDG(2212);
-  static const G4QPDGCode lQPDG(3122);
-  static const G4QPDGCode laQPDG(3122);
-  static const G4QPDGCode smQPDG(3112);
-  static const G4QPDGCode szQPDG(3212);
-  static const G4QPDGCode spQPDG(3222);
-  static const G4QPDGCode kszQPDG(3322);
-  static const G4QPDGCode ksmQPDG(3312);
-  static const G4double mPi  = G4QPDGCode(211).GetMass();
-  static const G4double mPi0 = G4QPDGCode(111).GetMass();
-  static const G4double mK   = G4QPDGCode(321).GetMass();
-  static const G4double mK0  = G4QPDGCode(311).GetMass();
-  static const G4double mNeut= G4QPDGCode(2112).GetMass();
-  static const G4double mProt= G4QPDGCode(2212).GetMass();
-  static const G4double mSigM= G4QPDGCode(3112).GetMass();
-  static const G4double mLamb= G4QPDGCode(3122).GetMass();
-  static const G4double mSigZ= G4QPDGCode(3212).GetMass();
-  static const G4double mSigP= G4QPDGCode(3222).GetMass();
-  //static const G4double mKsiM= G4QPDGCode(3312).GetMass();
-  //static const G4double mKsi0= G4QPDGCode(3322).GetMass();
-  //static const G4double mOmeg= G4QPDGCode(3334).GetMass();
-  static const G4double mNPi0 = mPi0+ mNeut;
-  static const G4double mNPi  = mPi + mNeut;
-  static const G4double mPPi0 = mPi0+ mProt;
-  static const G4double mPPi  = mPi + mProt;
-  static const G4double mLPi0 = mPi0+ mLamb;
-  static const G4double mLPi  = mPi + mLamb;
-  static const G4double mSpPi = mPi + mSigP;
-  static const G4double mSmPi = mPi + mSigP;
-  static const G4double mPK   = mK  + mProt;
-  static const G4double mPKZ  = mK0 + mProt;
-  static const G4double mNKZ  = mK0 + mNeut;
-  static const G4double mSpPi0= mPi0+ mSigP;
-  static const G4double mSzPi0= mPi0+ mSigZ;
-  static const G4double mSzPi = mPi + mSigZ;
-  static const G4double eps  = 0.003;
-  //static const G4QNucleus vacuum(90000000);
-  G4int theLB= qH->GetBaryonNumber();          // Baryon number of the Baryon
-  if(theLB!=1)
-  {
-    G4cerr<<"***G4QEnvironment::DecayBaryon: A!=1 -> fill as it is"<<G4endl;
+ static const G4QPDGCode gQPDG(22);
+ static const G4QPDGCode pizQPDG(111);
+ static const G4QPDGCode pipQPDG(211);
+ static const G4QPDGCode pimQPDG(-211);
+ static const G4QPDGCode kmQPDG(-321);
+ static const G4QPDGCode kzQPDG(-311);
+ static const G4QPDGCode nQPDG(2112);
+ static const G4QPDGCode pQPDG(2212);
+ static const G4QPDGCode lQPDG(3122);
+ static const G4QPDGCode laQPDG(3122);
+ static const G4QPDGCode smQPDG(3112);
+ static const G4QPDGCode szQPDG(3212);
+ static const G4QPDGCode spQPDG(3222);
+ static const G4QPDGCode kszQPDG(3322);
+ static const G4QPDGCode ksmQPDG(3312);
+ static const G4double mPi  = G4QPDGCode(211).GetMass();
+ static const G4double mPi0 = G4QPDGCode(111).GetMass();
+ static const G4double mK   = G4QPDGCode(321).GetMass();
+ static const G4double mK0  = G4QPDGCode(311).GetMass();
+ static const G4double mNeut= G4QPDGCode(2112).GetMass();
+ static const G4double mProt= G4QPDGCode(2212).GetMass();
+ static const G4double mSigM= G4QPDGCode(3112).GetMass();
+ static const G4double mLamb= G4QPDGCode(3122).GetMass();
+ static const G4double mSigZ= G4QPDGCode(3212).GetMass();
+ static const G4double mSigP= G4QPDGCode(3222).GetMass();
+ //static const G4double mKsiM= G4QPDGCode(3312).GetMass();
+ //static const G4double mKsi0= G4QPDGCode(3322).GetMass();
+ //static const G4double mOmeg= G4QPDGCode(3334).GetMass();
+ static const G4double mNPi0 = mPi0+ mNeut;
+ static const G4double mNPi  = mPi + mNeut;
+ static const G4double mPPi0 = mPi0+ mProt;
+ static const G4double mPPi  = mPi + mProt;
+ static const G4double mLPi0 = mPi0+ mLamb;
+ static const G4double mLPi  = mPi + mLamb;
+ static const G4double mSpPi = mPi + mSigP;
+ static const G4double mSmPi = mPi + mSigP;
+ static const G4double mPK   = mK  + mProt;
+ static const G4double mPKZ  = mK0 + mProt;
+ static const G4double mNKZ  = mK0 + mNeut;
+ static const G4double mSpPi0= mPi0+ mSigP;
+ static const G4double mSzPi0= mPi0+ mSigZ;
+ static const G4double mSzPi = mPi + mSigZ;
+ static const G4double eps  = 0.003;
+ //static const G4QNucleus vacuum(90000000);
+ G4int theLB= qH->GetBaryonNumber();          // Baryon number of the Baryon
+ if(theLB!=1)
+ {
+   G4cerr<<"***G4QEnvironment::DecayBaryon: A!=1 -> fill as it is"<<G4endl;
 #ifdef ppdebug
-    throw G4QException("G4QEnv::DecayBaryon: Unknown Baryon with A!=1");
-#endif
-    theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
-    return;
-  }
-  G4int theLC= qH->GetCharge();                // Chsrge of the Baryon
-  G4int theLS= qH->GetStrangeness();           // Strangness of the Baryon
-  //G4int          qPDG = qH->GetPDGCode();      // PDG Code of the decaying baryon
-  G4LorentzVector q4M = qH->Get4Momentum();    // Get 4-momentum of the Baryon
-  G4double         qM = q4M.m();               // Mass of the Baryon
-#ifdef pdebug
-  G4cout<<"G4QEnv::DecayBaryon: *Called* S="<<theLS<<",C="<<theLC<<",4M="<<q4M<<qM<<G4endl;
-#endif
-  // Select a chanel of the baryon decay
-  G4QPDGCode     fQPDG = pQPDG;                 // Prototype for Proton
-  G4double       fMass= mProt;
-  G4QPDGCode     sQPDG = pizQPDG;                  // Prototype for Pi0
-  G4double       sMass= mPi0;
-  if(!theLS)                    // This is only for not strange baryons
-  {
-    if(!theLC)                  // Neutron like: n+gam, n+Pi0, p+Pi- are possible
+   throw G4QException("G4QEnv::DecayBaryon: Unknown Baryon with A!=1");
+#endif
+   theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
+   return;
+ }
+ G4int theLC= qH->GetCharge();                // Chsrge of the Baryon
+ G4int theLS= qH->GetStrangeness();           // Strangness of the Baryon
+ //G4int          qPDG = qH->GetPDGCode();      // PDG Code of the decaying baryon
+ G4LorentzVector q4M = qH->Get4Momentum();    // Get 4-momentum of the Baryon
+ G4double         qM = q4M.m();               // Mass of the Baryon
+#ifdef pdebug
+ G4cout<<"G4QEnv::DecayBaryon: *Called* S="<<theLS<<",C="<<theLC<<",4M="<<q4M<<qM<<G4endl;
+#endif
+ // Select a chanel of the baryon decay
+ G4QPDGCode     fQPDG = pQPDG;                 // Prototype for Proton
+ G4double       fMass= mProt;
+ G4QPDGCode     sQPDG = pizQPDG;                  // Prototype for Pi0
+ G4double       sMass= mPi0;
+ if(!theLS)                    // This is only for not strange baryons
+ {
+   if(!theLC)                  // Neutron like: n+gam, n+Pi0, p+Pi- are possible
 				{
-      if(qM<mNPi0)              // Only n+gamma decay is possible
+     if(qM<mNPi0)              // Only n+gamma decay is possible
 						{
-        if(fabs(qM-mNeut)<eps)
+       if(fabs(qM-mNeut)<eps)
 								{
 #ifdef pdebug
-          G4cout<<"G4QEnv::DecayBaryon: Fill Neutron AsIs"<<G4endl;
-#endif
-          theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
-          return;
-        }
-        fQPDG=nQPDG;            // Baryon is neutron
-        fMass=mNeut;
-        sQPDG=gQPDG;            // Meson is gamma
-        sMass=0.;
-      }
-      else if(qM>mPPi)          // Both n+pi0 (p=2/3) & p+Pi- (p=1/3) are possible
+         G4cout<<"G4QEnv::DecayBaryon: Fill Neutron AsIs"<<G4endl;
+#endif
+         theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
+         return;
+       }
+       fQPDG=nQPDG;            // Baryon is neutron
+       fMass=mNeut;
+       sQPDG=gQPDG;            // Meson is gamma
+       sMass=0.;
+     }
+     else if(qM>mPPi)          // Both n+pi0 (p=2/3) & p+Pi- (p=1/3) are possible
 						{
-        if(G4UniformRand()>.333333333) // Clebsh value for the Isobar decay
-        {
-          fQPDG=nQPDG;          // Baryon is neutron (meson is Pi0)
-          fMass=mNeut;
-        }
-        else
-        {
-          sQPDG=pimQPDG;        // Meson is Pi- (baryon is proton)
-          sMass=mPi;
-        }
-      }
+       if(G4UniformRand()>.333333333) // Clebsh value for the Isobar decay
+       {
+         fQPDG=nQPDG;          // Baryon is neutron (meson is Pi0)
+         fMass=mNeut;
+       }
+       else
+       {
+         sQPDG=pimQPDG;        // Meson is Pi- (baryon is proton)
+         sMass=mPi;
+       }
+     }
 						else                      // Only n+Pi0 decay is possible
-      {
-        fQPDG=nQPDG;            // Baryon is neutron
-        fMass=mNeut;
-      }
-    }
-    else if(theLC==1)           // Proton like: p+gam, p+Pi0, n+Pi+ are possible
+     {
+       fQPDG=nQPDG;            // Baryon is neutron
+       fMass=mNeut;
+     }
+   }
+   else if(theLC==1)           // Proton like: p+gam, p+Pi0, n+Pi+ are possible
 				{
-      if(qM<mPPi0)              // Only p+gamma decay is possible
+     if(qM<mPPi0)              // Only p+gamma decay is possible
 						{
-        if(fabs(qM-mProt)<eps)
+       if(fabs(qM-mProt)<eps)
 								{
 #ifdef pdebug
-          G4cout<<"G4QEnv::DecayBaryon: Fill Proton AsIs"<<G4endl;
+         G4cout<<"G4QEnv::DecayBaryon: Fill Proton AsIs"<<G4endl;
 #endif
-          theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
-          return;
-        }
-        sQPDG=gQPDG;            // Meson is gamma (baryon is proton)
-        sMass=0.;
-      }
-      else if(qM>mNPi)          // Both p+pi0 (p=2/3) & n+Pi+ (p=1/3) are possible
+         theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
+         return;
+       }
+       sQPDG=gQPDG;            // Meson is gamma (baryon is proton)
+       sMass=0.;
+     }
+     else if(qM>mNPi)          // Both p+pi0 (p=2/3) & n+Pi+ (p=1/3) are possible
 						{
-        if(G4UniformRand()<.333333333) // Clebsh value for the Isobar decay
-        {
-          fQPDG=nQPDG;          // Baryon is neutron
-          fMass=mNeut;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        // p+Pi0 is a default case
-      }
-      // p+Pi0 is a default case
-    }
-    else if(theLC==2)           // Delta++ like: only p+PiP is possible
+       if(G4UniformRand()<.333333333) // Clebsh value for the Isobar decay
+       {
+         fQPDG=nQPDG;          // Baryon is neutron
+         fMass=mNeut;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       // p+Pi0 is a default case
+     }
+     // p+Pi0 is a default case
+   }
+   else if(theLC==2)           // Delta++ like: only p+PiP is possible
 				{
-      if(qM>mPPi)               // Only p+gamma decay is possible
+     if(qM>mPPi)               // Only p+gamma decay is possible
 						{
-        sQPDG=pipQPDG;          // Meson is Pi+ (baryon is proton)
-        sMass=mPi;
-      }
-      else                      // @@ Can be aReason to search for anError in Fragmentation
+       sQPDG=pipQPDG;          // Meson is Pi+ (baryon is proton)
+       sMass=mPi;
+     }
+     else                      // @@ Can be aReason to search for anError in Fragmentation
 						{
 #ifdef pdebug
-        G4cout<<"-Warning-G4QE::DecBary:*AsIs* DEL++ M="<<qM<<"<"<<mPPi<<G4endl;
+       G4cout<<"-Warning-G4QE::DecBary:*AsIs* DEL++ M="<<qM<<"<"<<mPPi<<G4endl;
 #endif
-        theQHadrons.push_back(qH);               // Fill AsIs (delete equivalent)
-        return;
-      }
-    }
-    else if(theLC==-1)          // Delta- like: only n+PiM is possible
+       theQHadrons.push_back(qH);               // Fill AsIs (delete equivalent)
+       return;
+     }
+   }
+   else if(theLC==-1)          // Delta- like: only n+PiM is possible
 				{
-      if(qM+eps>mNPi)           // Only p+gamma decay is possible
+     if(qM+eps>mNPi)           // Only p+gamma decay is possible
 						{
-        fQPDG=nQPDG;            // Baryon is neutron
-        fMass=mNeut;
-        sQPDG=pimQPDG;          // Meson is Pi-
-        sMass=mPi;
-      }
-      else                      // @@ Can be aReason to search for anError in Fragmentation
+       fQPDG=nQPDG;            // Baryon is neutron
+       fMass=mNeut;
+       sQPDG=pimQPDG;          // Meson is Pi-
+       sMass=mPi;
+     }
+     else                      // @@ Can be aReason to search for anError in Fragmentation
 						{
 #ifdef pdebug
-        G4cout<<"-Warning-G4QE::DecBary:*AsIs* DEL++ M="<<qM<<"<"<<mNPi<<G4endl;
+       G4cout<<"-Warning-G4QE::DecBary:*AsIs* DEL++ M="<<qM<<"<"<<mNPi<<G4endl;
 #endif
-        theQHadrons.push_back(qH);               // Fill AsIs (delete equivalent)
-        return;
-      }
-    }
-    else 
-    {
+       theQHadrons.push_back(qH);               // Fill AsIs (delete equivalent)
+       return;
+     }
+   }
+   else 
+   {
 #ifdef pdebug
-      G4cout<<"-Warning-G4QE::DecBary:*AsIs* UnknBaryon (S=0) QC="<<qH->GetQC()<<G4endl;
+     G4cout<<"-Warning-G4QE::DecBary:*AsIs* UnknBaryon (S=0) QC="<<qH->GetQC()<<G4endl;
 #endif
-      theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
-      return;
-    }
-  }
-  else if(theLS==1)             // ======>>>> S=1 <<<<==========
-  {
-    if(!theLC)                  // -->> Lambda/Sz: L+g,L+Pi0,Sz+Pi0,Sm+Pip,Sp+Pim,p+Km,n+Kz
+     theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
+     return;
+   }
+ }
+ else if(theLS==1)             // ======>>>> S=1 <<<<==========
+ {
+   if(!theLC)                  // -->> Lambda/Sz: L+g,L+Pi0,Sz+Pi0,Sm+Pip,Sp+Pim,p+Km,n+Kz
 				{
-      if(qM<mLPi0)              // Only Lambda+gamma decay is possible
+     if(qM<mLPi0)              // Only Lambda+gamma decay is possible
 						{
-        if(fabs(qM-mLamb)<eps)
+       if(fabs(qM-mLamb)<eps)
 								{
 #ifdef pdebug
-          G4cout<<"G4QEnv::DecayBaryon: Fill Lambda AsIs"<<G4endl;
-#endif
-          theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
-          return;
-        }
-        fQPDG=lQPDG;            // Baryon is Lambda
-        fMass=mLamb;
-        sQPDG=gQPDG;            // Meson is gamma
-        sMass=0.;
-      }
-      else if(qM<mSzPi0)        // Only Lambda+Pi0 is possible
+         G4cout<<"G4QEnv::DecayBaryon: Fill Lambda AsIs"<<G4endl;
+#endif
+         theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
+         return;
+       }
+       fQPDG=lQPDG;            // Baryon is Lambda
+       fMass=mLamb;
+       sQPDG=gQPDG;            // Meson is gamma
+       sMass=0.;
+     }
+     else if(qM<mSzPi0)        // Only Lambda+Pi0 is possible
 						{
-        fQPDG=lQPDG;            // Baryon is Lambda
-        fMass=mLamb;
-      }
-      else if(qM<mSpPi)         // Both Lambda+Pi0 & Sigma0+Pi0 are possible
+       fQPDG=lQPDG;            // Baryon is Lambda
+       fMass=mLamb;
+     }
+     else if(qM<mSpPi)         // Both Lambda+Pi0 & Sigma0+Pi0 are possible
 						{
-        if(G4UniformRand()>.6)  // @@ Relative probability (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-        }
-        else
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-        }
-      }
-      else if(qM<mSmPi)         // Lambda+Pi0, Sigma0+Pi0, & SigmaP+PiM are possible
+       if(G4UniformRand()>.6)  // @@ Relative probability (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+       }
+       else
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+       }
+     }
+     else if(qM<mSmPi)         // Lambda+Pi0, Sigma0+Pi0, & SigmaP+PiM are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.4)               // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-        }
-        else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-        }
-        else
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-      }
-      else if(qM<mPK)           // Lambda+Pi0, Sig0+Pi0, SigP+PiM, SigM+PiP are possible
+       G4double ra=G4UniformRand();
+       if(ra<.4)               // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+       }
+       else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+       }
+       else
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+     }
+     else if(qM<mPK)           // Lambda+Pi0, Sig0+Pi0, SigP+PiM, SigM+PiP are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.35)              // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-        }
-        else if(ra<.6)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-        }
-        else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=smQPDG;         // Baryon is SigmaM
-          fMass=mSigM;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-      }
-      else if(qM<mNKZ)          // Lambda+Pi0, Sig0+Pi0, SigP+PiM, SigM+PiP are possible
+       G4double ra=G4UniformRand();
+       if(ra<.35)              // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+       }
+       else if(ra<.6)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+       }
+       else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=smQPDG;         // Baryon is SigmaM
+         fMass=mSigM;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+     }
+     else if(qM<mNKZ)          // Lambda+Pi0, Sig0+Pi0, SigP+PiM, SigM+PiP are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.3)               // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-        }
-        else if(ra<.5)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-        }
-        else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=smQPDG;         // Baryon is SigmaM
-          fMass=mSigM;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else if(ra<.9)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else
-        {
-          fQPDG=pQPDG;          // Baryon is Proton
-          fMass=mProt;
-          sQPDG=kmQPDG;         // Meson is K-
-          sMass=mK;
-        }
-      }
+       G4double ra=G4UniformRand();
+       if(ra<.3)               // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+       }
+       else if(ra<.5)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+       }
+       else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=smQPDG;         // Baryon is SigmaM
+         fMass=mSigM;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else if(ra<.9)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else
+       {
+         fQPDG=pQPDG;          // Baryon is Proton
+         fMass=mProt;
+         sQPDG=kmQPDG;         // Meson is K-
+         sMass=mK;
+       }
+     }
 						else                      // Only n+Pi0 decay is possible
-      {
-        G4double ra=G4UniformRand();
-        if(ra<.3)               // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-        }
-        else if(ra<.5)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-        }
-        else if(ra<.65)         // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=smQPDG;         // Baryon is SigmaM
-          fMass=mSigM;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else if(ra<.9)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=pQPDG;          // Baryon is Proton
-          fMass=mProt;
-          sQPDG=kmQPDG;         // Meson is K-
-          sMass=mK;
-        }
-        else
-        {
-          fQPDG=nQPDG;          // Baryon is Neutron
-          fMass=mNeut;
-          sQPDG=kzQPDG;         // Meson is K0
-          sMass=mK0;
-        }
-      }
-    }
-    else if(theLC==1)           // SigmaP: SigP+gam,SigP+Pi0,Sp+PiP,L+Pi0,p+K0 are possible
+     {
+       G4double ra=G4UniformRand();
+       if(ra<.3)               // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+       }
+       else if(ra<.5)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+       }
+       else if(ra<.65)         // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=smQPDG;         // Baryon is SigmaM
+         fMass=mSigM;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else if(ra<.9)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=pQPDG;          // Baryon is Proton
+         fMass=mProt;
+         sQPDG=kmQPDG;         // Meson is K-
+         sMass=mK;
+       }
+       else
+       {
+         fQPDG=nQPDG;          // Baryon is Neutron
+         fMass=mNeut;
+         sQPDG=kzQPDG;         // Meson is K0
+         sMass=mK0;
+       }
+     }
+   }
+   else if(theLC==1)           // SigmaP: SigP+gam,SigP+Pi0,Sp+PiP,L+Pi0,p+K0 are possible
 				{
-      if(qM<mLPi)               // Only SigmaPlus+gamma decay is possible
+     if(qM<mLPi)               // Only SigmaPlus+gamma decay is possible
 						{
-        if(fabs(qM-mSigP)<eps)
+       if(fabs(qM-mSigP)<eps)
 								{
 #ifdef pdebug
-          G4cout<<"G4QEnv::DecayBaryon: Fill SigmaPlus AsIs"<<G4endl;
-#endif
-          theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
-          return;
-        }
-        fQPDG=spQPDG;           // Baryon is SigmaP
-        fMass=mSigP;
-        sQPDG=gQPDG;            // Meson is gamma
-        sMass=0.;
-      }
-      else if(qM<mSpPi0)        // Only Lambda+PiP is possible
+         G4cout<<"G4QEnv::DecayBaryon: Fill SigmaPlus AsIs"<<G4endl;
+#endif
+         theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
+         return;
+       }
+       fQPDG=spQPDG;           // Baryon is SigmaP
+       fMass=mSigP;
+       sQPDG=gQPDG;            // Meson is gamma
+       sMass=0.;
+     }
+     else if(qM<mSpPi0)        // Only Lambda+PiP is possible
 						{
-        fQPDG=lQPDG;            // Baryon is Lambda
-        fMass=mLamb;
-        sQPDG=pipQPDG;          // Meson is Pi+
-        sMass=mPi;
-      }
-      else if(qM<mSzPi)         // Both Lambda+PiP & Sigma0+Pi0 are possible
+       fQPDG=lQPDG;            // Baryon is Lambda
+       fMass=mLamb;
+       sQPDG=pipQPDG;          // Meson is Pi+
+       sMass=mPi;
+     }
+     else if(qM<mSzPi)         // Both Lambda+PiP & Sigma0+Pi0 are possible
 						{
-        if(G4UniformRand()<.6)  // @@ Relative probability (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-        }
-      }
-      else if(qM<mPKZ)          // Lambda+PiP, SigmaP+Pi0, & Sigma0+PiP are possible
+       if(G4UniformRand()<.6)  // @@ Relative probability (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+       }
+     }
+     else if(qM<mPKZ)          // Lambda+PiP, SigmaP+Pi0, & Sigma0+PiP are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.4)               // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-        }
-        else
-        {
-          fQPDG=szQPDG;         // Baryon is SigmaZ
-          fMass=mSigZ;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-      }
-      else                      // Lambda+PiP, SigmaP+Pi0, Sigma0+PiP, p+K0 are possible
+       G4double ra=G4UniformRand();
+       if(ra<.4)               // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+       }
+       else
+       {
+         fQPDG=szQPDG;         // Baryon is SigmaZ
+         fMass=mSigZ;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+     }
+     else                      // Lambda+PiP, SigmaP+Pi0, Sigma0+PiP, p+K0 are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.35)              // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else if(ra<.6)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=spQPDG;         // Baryon is SigmaP
-          fMass=mSigP;
-        }
-        else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is SigmaZ
-          fMass=mSigZ;
-          sQPDG=pipQPDG;        // Meson is Pi+
-          sMass=mPi;
-        }
-        else
-        {
-          fQPDG=pQPDG;          // Baryon is Proton
-          fMass=mProt;
-          sQPDG=kzQPDG;         // Meson is K0
-          sMass=mK0;
-        }
-      }
-    }
-    else if(theLC==-1)          // SigmaM: SigM+gam,SigM+Pi0,S0+PiM,L+Pi-,n+KM are possible
+       G4double ra=G4UniformRand();
+       if(ra<.35)              // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else if(ra<.6)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=spQPDG;         // Baryon is SigmaP
+         fMass=mSigP;
+       }
+       else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is SigmaZ
+         fMass=mSigZ;
+         sQPDG=pipQPDG;        // Meson is Pi+
+         sMass=mPi;
+       }
+       else
+       {
+         fQPDG=pQPDG;          // Baryon is Proton
+         fMass=mProt;
+         sQPDG=kzQPDG;         // Meson is K0
+         sMass=mK0;
+       }
+     }
+   }
+   else if(theLC==-1)          // SigmaM: SigM+gam,SigM+Pi0,S0+PiM,L+Pi-,n+KM are possible
 				{
-      if(qM<mLPi)               // Only SigmaMinus + gamma decay is possible
+     if(qM<mLPi)               // Only SigmaMinus + gamma decay is possible
 						{
-        if(fabs(qM-mSigM)<eps)
+       if(fabs(qM-mSigM)<eps)
 								{
 #ifdef pdebug
-          G4cout<<"G4QEnv::DecayBaryon: Fill SigmaMinus AsIs"<<G4endl;
-#endif
-          theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
-          return;
-        }
-        fQPDG=smQPDG;           // Baryon is SigmaP
-        fMass=mSigM;
-        sQPDG=gQPDG;            // Meson is gamma
-        sMass=0.;
-      }
-      else if(qM<mSzPi)         // Only Lambda+PiM is possible
+         G4cout<<"G4QEnv::DecayBaryon: Fill SigmaMinus AsIs"<<G4endl;
+#endif
+         theQHadrons.push_back(qH); // Fill AsIs (delete equivalent)
+         return;
+       }
+       fQPDG=smQPDG;           // Baryon is SigmaP
+       fMass=mSigM;
+       sQPDG=gQPDG;            // Meson is gamma
+       sMass=0.;
+     }
+     else if(qM<mSzPi)         // Only Lambda+PiM is possible
 						{
-        fQPDG=lQPDG;            // Baryon is Lambda
-        fMass=mLamb;
-        sQPDG=pimQPDG;          // Meson is Pi-
-        sMass=mPi;
-      }
-      else if(qM<mSzPi)         // Both Lambda+PiM & Sigma0+PiM are possible
+       fQPDG=lQPDG;            // Baryon is Lambda
+       fMass=mLamb;
+       sQPDG=pimQPDG;          // Meson is Pi-
+       sMass=mPi;
+     }
+     else if(qM<mSzPi)         // Both Lambda+PiM & Sigma0+PiM are possible
 						{
-        if(G4UniformRand()<.6)  // @@ Relative probability (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-      }
-      else if(qM<mPKZ)          // Lambda+PiM, Sigma0+PiM, & SigmaM+Pi0 are possible
+       if(G4UniformRand()<.6)  // @@ Relative probability (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+     }
+     else if(qM<mPKZ)          // Lambda+PiM, Sigma0+PiM, & SigmaM+Pi0 are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.4)               // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else
-        {
-          fQPDG=smQPDG;         // Baryon is SigmaM
-          fMass=mSigM;
-        }
-      }
-      else                      // Lambda+PiM, Sig0+PiM, SigM+Pi0, n+KM are possible
+       G4double ra=G4UniformRand();
+       if(ra<.4)               // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else if(ra<.7)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else
+       {
+         fQPDG=smQPDG;         // Baryon is SigmaM
+         fMass=mSigM;
+       }
+     }
+     else                      // Lambda+PiM, Sig0+PiM, SigM+Pi0, n+KM are possible
 						{
-        G4double ra=G4UniformRand();
-        if(ra<.35)              // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=lQPDG;          // Baryon is Lambda
-          fMass=mLamb;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else if(ra<.6)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=szQPDG;         // Baryon is Sigma0
-          fMass=mSigZ;
-          sQPDG=pimQPDG;        // Meson is Pi-
-          sMass=mPi;
-        }
-        else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
-        {
-          fQPDG=smQPDG;         // Baryon is SigmaM
-          fMass=mSigM;
-        }
-        else
-        {
-          fQPDG=nQPDG;          // Baryon is Proton
-          fMass=mNeut;
-          sQPDG=kmQPDG;         // Meson is K-
-          sMass=mK;
-        }
-      }
-    }
-    else 
-    {
-      //KsiM: KsiM+Pi0=1456.29, Ksi0+Pi=1454.4, L+K=1609.36, Sig0+K=1686.32, SigM+K0=1695.1
-      //KsiZ: Ksi0+Pi0=1449.81, KsiM+Pi=1460.9, L+K0=1613.3, Sig0+K0=1690.3, SigP+K=1683.05
-      //Omeg: Omeg+Pi0=1807.43, Ksi0+K=1808.5, KsiM+K0=1818.96
-      G4cout<<"-Warning-G4QE::DecBary:*AsIs* UnknownBaryon(S>1)QC="<<qH->GetQC()<<G4endl;
-      theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
-      return;
-    }
-  }
-  else 
-  {
-#ifdef pdebug
-    G4cout<<"---Warning---G4QE::DecBary:*AsIso* UnknBaryon(AntiS) QC="<<qH->GetQC()<<G4endl;
-#endif
-    theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
-    return;
-  }
-  G4LorentzVector f4Mom(0.,0.,0.,fMass);
-  G4LorentzVector s4Mom(0.,0.,0.,sMass);
-  G4double sum=fMass+sMass;
-  if(fabs(qM-sum)<eps)
+       G4double ra=G4UniformRand();
+       if(ra<.35)              // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=lQPDG;          // Baryon is Lambda
+         fMass=mLamb;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else if(ra<.6)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=szQPDG;         // Baryon is Sigma0
+         fMass=mSigZ;
+         sQPDG=pimQPDG;        // Meson is Pi-
+         sMass=mPi;
+       }
+       else if(ra<.8)          // @@ Rel. probab. (take into account Phase Space)
+       {
+         fQPDG=smQPDG;         // Baryon is SigmaM
+         fMass=mSigM;
+       }
+       else
+       {
+         fQPDG=nQPDG;          // Baryon is Proton
+         fMass=mNeut;
+         sQPDG=kmQPDG;         // Meson is K-
+         sMass=mK;
+       }
+     }
+   }
+   else 
+   {
+     //KsiM: KsiM+Pi0=1456.29, Ksi0+Pi=1454.4, L+K=1609.36, Sig0+K=1686.32, SigM+K0=1695.1
+     //KsiZ: Ksi0+Pi0=1449.81, KsiM+Pi=1460.9, L+K0=1613.3, Sig0+K0=1690.3, SigP+K=1683.05
+     //Omeg: Omeg+Pi0=1807.43, Ksi0+K=1808.5, KsiM+K0=1818.96
+     G4cout<<"-Warning-G4QE::DecBary:*AsIs* UnknownBaryon(S>1)QC="<<qH->GetQC()<<G4endl;
+     theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
+     return;
+   }
+ }
+ else 
+ {
+#ifdef pdebug
+   G4cout<<"---Warning---G4QE::DecBary:*AsIso* UnknBaryon(AntiS) QC="<<qH->GetQC()<<G4endl;
+#endif
+   theQHadrons.push_back(qH);                 // Fill AsIs (delete equivalent)
+   return;
+ }
+ G4LorentzVector f4Mom(0.,0.,0.,fMass);
+ G4LorentzVector s4Mom(0.,0.,0.,sMass);
+ G4double sum=fMass+sMass;
+ if(fabs(qM-sum)<eps)
 	 {
-    f4Mom=q4M*(fMass/sum);
-    s4Mom=q4M*(sMass/sum);
-  }
-  else if(qM<sum || !G4QHadron(q4M).DecayIn2(f4Mom, s4Mom))
-  {
-#ifdef pdebug
-    G4cout<<"---Warning---G4QE::DecBar:fPDG="<<fQPDG<<"(M="<<fMass<<")+sPDG="<<sQPDG<<"(M="
-          <<sMass<<") > TotM="<<q4M.m()<<G4endl;
-#endif
-    if(!theEnvironment.GetA())
-    {
-      G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());
+   f4Mom=q4M*(fMass/sum);
+   s4Mom=q4M*(sMass/sum);
+ }
+ else if(qM<sum || !G4QHadron(q4M).DecayIn2(f4Mom, s4Mom))
+ {
+#ifdef pdebug
+   G4cout<<"---Warning---G4QE::DecBar:fPDG="<<fQPDG<<"(M="<<fMass<<")+sPDG="<<sQPDG<<"(M="
+         <<sMass<<") > TotM="<<q4M.m()<<G4endl;
+#endif
+   if(!theEnvironment.GetA())
+   {
+     G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum());
 	     if(!CheckGroundState(quasH,true)) theQHadrons.push_back(qH); // Cor or fill asItIs
-      else delete qH;  
-      delete quasH;
-      return;
-    }
-    else
-    {
-      delete qH;
-      G4cerr<<"***G4QEnv::DecayBaryon: Can't Correct, *EmptyEnv*="<<theEnvironment<<G4endl;
-      throw G4QException("G4QEnv::DecayBaryon: Baryon DecayIn2 error");
-    }
-  }
-#ifdef pdebug
-  G4cout<<"G4QEnv::DecayBaryon: *DONE* f4M="<<f4Mom<<",fPDG="<<fQPDG<<", s4M="<<s4Mom
-        <<",sPDG="<<sQPDG<<G4endl;
-#endif
-  delete qH;
-  //
-  G4QHadron* H1 = new G4QHadron(fQPDG,f4Mom); // Create a Hadron for the 1-st baryon
-  theQHadrons.push_back(H1);                  // Fill "H1" (delete equivalent)
-  G4QHadron* H2 = new G4QHadron(sQPDG,s4Mom); // Create a Hadron for the 2-nd baryon
-  theQHadrons.push_back(H2);                  // Fill "H2" (delete equivalent)
+     else delete qH;  
+     delete quasH;
+     return;
+   }
+   else
+   {
+     delete qH;
+     G4cerr<<"***G4QEnv::DecayBaryon: Can't Correct, *EmptyEnv*="<<theEnvironment<<G4endl;
+     throw G4QException("G4QEnv::DecayBaryon: Baryon DecayIn2 error");
+   }
+ }
+#ifdef pdebug
+ G4cout<<"G4QEnv::DecayBaryon: *DONE* f4M="<<f4Mom<<",fPDG="<<fQPDG<<", s4M="<<s4Mom
+       <<",sPDG="<<sQPDG<<G4endl;
+#endif
+ delete qH;
+ //
+ G4QHadron* H1 = new G4QHadron(fQPDG,f4Mom); // Create a Hadron for the 1-st baryon
+ theQHadrons.push_back(H1);                  // Fill "H1" (delete equivalent)
+ G4QHadron* H2 = new G4QHadron(sQPDG,s4Mom); // Create a Hadron for the 2-nd baryon
+ theQHadrons.push_back(H2);                  // Fill "H2" (delete equivalent)
 } // End of DecayBaryon
 
 // Check that it's possible to decay the TotalResidualNucleus in Quasmon+Environ & correct
 // In case of correction the "quasm" is never deleted! If corFlag==true - correction.
 G4bool G4QEnvironment::CheckGroundState(G4Quasmon* quasm, G4bool corFlag)
 { //   ==================================================================
-  static const G4QPDGCode gamQPDG(22);
-  static const G4QContent neutQC(2,1,0,0,0,0);
-  static const G4QContent protQC(1,2,0,0,0,0);
-  static const G4QContent lambQC(1,1,1,0,0,0);
-  static const G4QContent pimQC(1,0,0,0,1,0);
-  static const G4QContent pipQC(0,1,0,1,0,0);
-  static const G4double mNeut= G4QPDGCode(2112).GetMass();
-  static const G4double mProt= G4QPDGCode(2212).GetMass();
-  static const G4double mLamb= G4QPDGCode(3122).GetMass();
-  static const G4double mPi  = G4QPDGCode(211).GetMass();
-  //static const G4double dmPi  = mPi+mPi;
-  ///@@@///
-  ///////////////corFlag=true;
-  ///@@@///
-  G4QContent valQ=quasm->GetQC();               // Quark content of the Quasmon
-  G4int    resQPDG=valQ.GetSPDGCode();          // Reachable in a member function
-  G4int    resB=valQ.GetBaryonNumber();         // Baryon number of the Quasmon
-  G4int    resC=valQ.GetCharge();               // Charge of the Quasmon
-  G4int    resS=valQ.GetStrangeness();          // Strangeness of the Quasmon
-  if(resQPDG==10 && resB>0) resQPDG=valQ.GetZNSPDGCode();
-  G4double resQMa=G4QPDGCode(resQPDG).GetMass();// GS Mass of the Residual Quasmon
-  G4double resEMa=0.;                           // GS Mass of the EmptyResidualEnvironment
-  G4bool   bsCond=false;                        // FragSeparatCondition for QuasmonInVacuum
-  G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.); // Prototype of the environment Mass
-  G4QContent reTQC=valQ;                        // Prototype QuarkContent of the ResidNucl
-  G4LorentzVector reTLV=quasm->Get4Momentum();  // Prototyoe 4-Mom of the Residual Nucleus
-  G4double reTM=reTLV.m();                      // Real mass of the Quasmon
-  G4int envPDG=theEnvironment.GetPDG();
+ static const G4QPDGCode gamQPDG(22);
+ static const G4QContent neutQC(2,1,0,0,0,0);
+ static const G4QContent protQC(1,2,0,0,0,0);
+ static const G4QContent lambQC(1,1,1,0,0,0);
+ static const G4QContent pimQC(1,0,0,0,1,0);
+ static const G4QContent pipQC(0,1,0,1,0,0);
+ static const G4double mNeut= G4QPDGCode(2112).GetMass();
+ static const G4double mProt= G4QPDGCode(2212).GetMass();
+ static const G4double mLamb= G4QPDGCode(3122).GetMass();
+ static const G4double mPi  = G4QPDGCode(211).GetMass();
+ //static const G4double dmPi  = mPi+mPi;
+ ///@@@///
+ ///////////////corFlag=true;
+ ///@@@///
+ G4QContent valQ=quasm->GetQC();               // Quark content of the Quasmon
+ G4int    resQPDG=valQ.GetSPDGCode();          // Reachable in a member function
+ G4int    resB=valQ.GetBaryonNumber();         // Baryon number of the Quasmon
+ G4int    resC=valQ.GetCharge();               // Charge of the Quasmon
+ G4int    resS=valQ.GetStrangeness();          // Strangeness of the Quasmon
+ if(resQPDG==10 && resB>0) resQPDG=valQ.GetZNSPDGCode();
+ G4double resQMa=G4QPDGCode(resQPDG).GetMass();// GS Mass of the Residual Quasmon
+ G4double resEMa=0.;                           // GS Mass of the EmptyResidualEnvironment
+ G4bool   bsCond=false;                        // FragSeparatCondition for QuasmonInVacuum
+ G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.); // Prototype of the environment Mass
+ G4QContent reTQC=valQ;                        // Prototype QuarkContent of the ResidNucl
+ G4LorentzVector reTLV=quasm->Get4Momentum();  // Prototyoe 4-Mom of the Residual Nucleus
+ G4double reTM=reTLV.m();                      // Real mass of the Quasmon
+ G4int envPDG=theEnvironment.GetPDG();
 
-  if ( resB > 1 && 
-       ( (!resS && ((resC == resB && reTM > resC*mProt) || (!resC && reTM > resB*mNeut) ) ) ||
-          (resS == resB && reTM > resS*mLamb) ) ) // Immediate Split(@@Decay) MultiBaryon
-  {
+ if ( resB > 1 && 
+      ( (!resS && ((resC == resB && reTM > resC*mProt) || (!resC && reTM > resB*mNeut) ) ) ||
+         (resS == resB && reTM > resS*mLamb) ) ) // Immediate Split(@@Decay) MultiBaryon
+ {
 #ifdef chdebug
-    G4cout<<"G4QE::CGS:*MultyBar*E="<<envPDG<<",B="<<resB<<",C="<<resC<<",S"<<resS<<G4endl;
-#endif
-    if(envPDG!=90000000)
-    {
-      resEMa=theEnvironment.GetMZNS();          // GSMass of the Residual Environment
-      enva4M=theEnvironment.Get4Momentum();     // 4-Mom of the Residual Environment
-      G4LorentzVector toLV=reTLV+enva4M;        // Total 4-mom for decay
-      enva4M=G4LorentzVector(0.,0.,0.,resEMa);  // GSM of the Environment
-      reTLV=G4LorentzVector(0.,0.,0.,resQMa);   // GSM of the Quasmon
-      if(G4QHadron(toLV).DecayIn2(reTLV,enva4M))
+   G4cout<<"G4QE::CGS:*MultyBar*E="<<envPDG<<",B="<<resB<<",C="<<resC<<",S"<<resS<<G4endl;
+#endif
+   if(envPDG!=90000000)
+   {
+     resEMa=theEnvironment.GetMZNS();          // GSMass of the Residual Environment
+     enva4M=theEnvironment.Get4Momentum();     // 4-Mom of the Residual Environment
+     G4LorentzVector toLV=reTLV+enva4M;        // Total 4-mom for decay
+     enva4M=G4LorentzVector(0.,0.,0.,resEMa);  // GSM of the Environment
+     reTLV=G4LorentzVector(0.,0.,0.,resQMa);   // GSM of the Quasmon
+     if(G4QHadron(toLV).DecayIn2(reTLV,enva4M))
 	     {
 #ifdef pdebug
-        G4cout<<"G4QE::CGS: fill EnvPDG="<<envPDG<<",4M="<<enva4M<<" and continue"<<G4endl;
+       G4cout<<"G4QE::CGS: fill EnvPDG="<<envPDG<<",4M="<<enva4M<<" and continue"<<G4endl;
 #endif
-        theQHadrons.push_back(new G4QHadron(envPDG,enva4M)); // (delete equivalent)
-        theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0), G4LorentzVector(0.,0.,0.,0.));
-      }
-      else G4cout<<"*G4QE::CGS:tM="<<toLV.m()<<toLV<<"<q="<<resQMa<<"+EM="<<resEMa<<G4endl;
-    }
-    G4int  baPDG=3122;                          // Prototype for MultiLambda
-    if(!resS) baPDG = (!resC) ? 2112 : 2212;    // MultiNeutron or MultiProton
+       theQHadrons.push_back(new G4QHadron(envPDG,enva4M)); // (delete equivalent)
+       theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0), G4LorentzVector(0.,0.,0.,0.));
+     }
+     else G4cout<<"*G4QE::CGS:tM="<<toLV.m()<<toLV<<"<q="<<resQMa<<"+EM="<<resEMa<<G4endl;
+   }
+   G4int  baPDG=3122;                          // Prototype for MultiLambda
+   if(!resS) baPDG = (!resC) ? 2112 : 2212;    // MultiNeutron or MultiProton
 #ifdef pdebug
-    G4cout<<"G4QE::CGS: fill "<<resB<<" of "<<baPDG<<" with t4M="<<reTLV<<G4endl;
+   G4cout<<"G4QE::CGS: fill "<<resB<<" of "<<baPDG<<" with t4M="<<reTLV<<G4endl;
 #endif
-    reTLV/=resB;                                // Recalculate! Anyway go out...
-    for(G4int ib=0; ib<resB; ib++) theQHadrons.push_back(new G4QHadron(baPDG,reTLV));
-    return true;
-  }
+   reTLV/=resB;                                // Recalculate! Anyway go out...
+   for(G4int ib=0; ib<resB; ib++) theQHadrons.push_back(new G4QHadron(baPDG,reTLV));
+   return true;
+ }
 #ifdef cdebug
-  if(resQPDG==89998005)
-   G4cout<<"G4QE::CGS:Q="<<valQ<<resQPDG<<",GM="<<resQMa<<",4M="<<reTLV<<reTLV.m()<<G4endl;
-#endif
-  G4double resSMa=resQMa;                       // Prototype MinimalSplitMass of ResidNucl
-  enva4M=theEnvironment.Get4Momentum();         // 4-Mom of the Residual Environment
-  if(envPDG!=90000000 && fabs(enva4M.m2())>1.)  // => "Environment is not vacuum" case
-  { // @@@@@@@@@@@@@@@@@@@ CALL SUBROUTINE ? @@@@@@@@@
-    resEMa=theEnvironment.GetMZNS();            // GSMass of the Residual Environment
+ if(resQPDG==89998005)
+  G4cout<<"G4QE::CGS:Q="<<valQ<<resQPDG<<",GM="<<resQMa<<",4M="<<reTLV<<reTLV.m()<<G4endl;
+#endif
+ G4double resSMa=resQMa;                       // Prototype MinimalSplitMass of ResidNucl
+ enva4M=theEnvironment.Get4Momentum();         // 4-Mom of the Residual Environment
+ if(envPDG!=90000000 && fabs(enva4M.m2())>1.)  // => "Environment is not vacuum" case
+ { // @@@@@@@@@@@@@@@@@@@ CALL SUBROUTINE ? @@@@@@@@@
+   resEMa=theEnvironment.GetMZNS();            // GSMass of the Residual Environment
 #ifdef cdebug
 	   G4cout<<"G4QE::CGS:EnvironmentExists,gsM="<<resEMa<<",4M="<<enva4M<<enva4M.m()<<G4endl;
 #endif
-    reTQC+=theEnvironment.GetQCZNS();           // Quark content of the Residual Nucleus
-    reTLV+=enva4M;                              // 4-Mom of Residual Nucleus
-    //resSMa+=resEMa;                           // Minimal Split Mass of Residual Nucleus
-    resSMa=G4QPDGCode(reTQC).GetMass();         // GS Mass of the Residual Quasmon+Environ
-  }
-  else                                          // Calculate BaryonSeparatCond for vacQuasm
-  {
-    G4double resQM=reTLV.m();                   // CM Mass of the Residual vacQuasmon
-    G4int    baryn=valQ.GetBaryonNumber();      // Baryon Number of the Residual vacQuasmon
-    if(baryn>1)                                 // => "Can split baryon?"
+   reTQC+=theEnvironment.GetQCZNS();           // Quark content of the Residual Nucleus
+   reTLV+=enva4M;                              // 4-Mom of Residual Nucleus
+   //resSMa+=resEMa;                           // Minimal Split Mass of Residual Nucleus
+   resSMa=G4QPDGCode(reTQC).GetMass();         // GS Mass of the Residual Quasmon+Environ
+ }
+ else                                          // Calculate BaryonSeparatCond for vacQuasm
+ {
+   G4double resQM=reTLV.m();                   // CM Mass of the Residual vacQuasmon
+   G4int    baryn=valQ.GetBaryonNumber();      // Baryon Number of the Residual vacQuasmon
+   if(baryn>1)                                 // => "Can split baryon?"
 	   {
-      if(valQ.GetN())                           // ===> "Can split neutron?"
+     if(valQ.GetN())                           // ===> "Can split neutron?"
 	     {
-        G4QContent resQC=valQ-neutQC;           // QC of Residual for the Neutron
-        G4int    resPDG=resQC.GetSPDGCode();    // PDG of Residual for the Neutron
-        if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode();
-        G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual
-        if(resMas+mNeut<resQM) bsCond=true;
+       G4QContent resQC=valQ-neutQC;           // QC of Residual for the Neutron
+       G4int    resPDG=resQC.GetSPDGCode();    // PDG of Residual for the Neutron
+       if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode();
+       G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual
+       if(resMas+mNeut<resQM) bsCond=true;
 	     }
-      else if(valQ.GetP())                      // ===> "Can split proton?"
+     else if(valQ.GetP())                      // ===> "Can split proton?"
 	     {
-        G4QContent resQC=valQ-protQC;           // QC of Residual for the Proton
-        G4int    resPDG=resQC.GetSPDGCode();    // PDG of Residual for the Proton
-        if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode();
-        G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual
-        if(resMas+mProt<resQM) bsCond=true;
+       G4QContent resQC=valQ-protQC;           // QC of Residual for the Proton
+       G4int    resPDG=resQC.GetSPDGCode();    // PDG of Residual for the Proton
+       if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode();
+       G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual
+       if(resMas+mProt<resQM) bsCond=true;
 	     }
-      else if(valQ.GetL())                      // ===> "Can split Lambda?"
+     else if(valQ.GetL())                      // ===> "Can split Lambda?"
 	     {
-        G4QContent resQC=valQ-lambQC;           // QC of Residual for the Lambda
-        G4int    resPDG=resQC.GetSPDGCode();    // PDG of Residual for the Lambda
-        if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode();
-        G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual
-        if(resMas+mLamb<resQM) bsCond=true;
+       G4QContent resQC=valQ-lambQC;           // QC of Residual for the Lambda
+       G4int    resPDG=resQC.GetSPDGCode();    // PDG of Residual for the Lambda
+       if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode();
+       G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual
+       if(resMas+mLamb<resQM) bsCond=true;
 	     }
 	   }
-  }
-  G4double resTMa=reTLV.m();                    // CM Mass of the ResidualNucleus (Q+Env)
-  //if(resTMa>resSMa && (resEMa || bsCond)) return true;// Why not ?? @@ (See G4Q the same)
-  G4int nOfOUT = theQHadrons.size();            // Total #of QHadrons at this point
+ }
+ G4double resTMa=reTLV.m();                    // CM Mass of the ResidualNucleus (Q+Env)
+ //if(resTMa>resSMa && (resEMa || bsCond)) return true;// Why not ?? @@ (See G4Q the same)
+ G4int nOfOUT = theQHadrons.size();            // Total #of QHadrons at this point
 #ifdef cdebug
-  G4int    reTPDG=reTQC.GetSPDGCode();
-  if(reTPDG==10&&reTQC.GetBaryonNumber()>0) reTPDG=reTQC.GetZNSPDGCode();
-  G4cout<<"G4QEnv::CheckGS:(tM="<<resTMa<<"<rQM+rEM="<<resSMa<<",d="<<resSMa-resTMa
-        <<" || rEM="<<resEMa<<"=0 & "<<!bsCond<<"=1) & n="<<nOfOUT<<">0 & F="<<corFlag
-        <<" then the correction must be done for PDG="<<reTPDG<<G4endl;
-#endif
-  if ( (resTMa < resSMa || (!resEMa && !bsCond) ) && nOfOUT > 0 && corFlag) // *** CORRECTION ***
-  {
-    G4QHadron*  theLast = theQHadrons[nOfOUT-1];
-    G4int cNf=theLast->GetNFragments();
-    G4int crPDG=theLast->GetPDGCode();
+ G4int    reTPDG=reTQC.GetSPDGCode();
+ if(reTPDG==10&&reTQC.GetBaryonNumber()>0) reTPDG=reTQC.GetZNSPDGCode();
+ G4cout<<"G4QEnv::CheckGS:(tM="<<resTMa<<"<rQM+rEM="<<resSMa<<",d="<<resSMa-resTMa
+       <<" || rEM="<<resEMa<<"=0 & "<<!bsCond<<"=1) & n="<<nOfOUT<<">0 & F="<<corFlag
+       <<" then the correction must be done for PDG="<<reTPDG<<G4endl;
+#endif
+ if ( (resTMa < resSMa || (!resEMa && !bsCond) ) && nOfOUT > 0 && corFlag) // *** CORRECTION ***
+ {
+   G4QHadron*  theLast = theQHadrons[nOfOUT-1];
+   G4int cNf=theLast->GetNFragments();
+   G4int crPDG=theLast->GetPDGCode();
 #ifdef cdebug
 	   G4cout<<"G4QE::CGS: **Correction** lNF="<<cNf<<",lPDG="<<crPDG<<",Q4M="<<reTLV<<G4endl;
 #endif
-    G4LorentzVector hadr4M = theLast->Get4Momentum();
-    G4double  hadrMa=hadr4M.m();
-    G4LorentzVector tmpTLV=reTLV+hadr4M;        // Tot (ResidNucl+LastHadron) 4-Mom
+   G4LorentzVector hadr4M = theLast->Get4Momentum();
+   G4double  hadrMa=hadr4M.m();
+   G4LorentzVector tmpTLV=reTLV+hadr4M;        // Tot (ResidNucl+LastHadron) 4-Mom
 #ifdef cdebug
 	   G4cout<<"G4QE::CGS:YES, s4M/M="<<tmpTLV<<tmpTLV.m()<<">rSM+hM="<<resSMa+hadrMa<<G4endl;
 #endif
-    G4double tmpTM=tmpTLV.m();
-    if(tmpTM>resSMa+hadrMa &&!cNf && crPDG!=22) // Q(E)L contain QM(+EM)+lM ***Last CORR***
-    {
-      if(resEMa)                                // => "NonVacuumEnvironment exists" case
-      {
-        G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon
-        G4LorentzVector enva4M = G4LorentzVector(0.,0.,0.,resEMa); // GS Mass of ResidEnvir
-        if(tmpTM>=resQMa+resEMa+hadrMa && G4QHadron(tmpTLV).DecayIn3(hadr4M,quas4M,enva4M))
-        {
-          //@@CHECK CoulBar (only for ResQuasmon in respect to ResEnv) and may be evaporate
+   G4double tmpTM=tmpTLV.m();
+   if(tmpTM>resSMa+hadrMa &&!cNf && crPDG!=22) // Q(E)L contain QM(+EM)+lM ***Last CORR***
+   {
+     if(resEMa)                                // => "NonVacuumEnvironment exists" case
+     {
+       G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon
+       G4LorentzVector enva4M = G4LorentzVector(0.,0.,0.,resEMa); // GS Mass of ResidEnvir
+       if(tmpTM>=resQMa+resEMa+hadrMa && G4QHadron(tmpTLV).DecayIn3(hadr4M,quas4M,enva4M))
+       {
+         //@@CHECK CoulBar (only for ResQuasmon in respect to ResEnv) and may be evaporate
 #ifdef pdebug
-          G4cout<<"G4QE::CGS: Modify the Last 4-momentum to "<<hadr4M<<G4endl;
+         G4cout<<"G4QE::CGS: Modify the Last 4-momentum to "<<hadr4M<<G4endl;
 #endif
-          theLast->Set4Momentum(hadr4M);
-          G4QHadron* quasH = new G4QHadron(valQ, quas4M);
-          G4QContent theEQC=theEnvironment.GetQCZNS();
-          G4QHadron* envaH = new G4QHadron(theEQC,enva4M);
+         theLast->Set4Momentum(hadr4M);
+         G4QHadron* quasH = new G4QHadron(valQ, quas4M);
+         G4QContent theEQC=theEnvironment.GetQCZNS();
+         G4QHadron* envaH = new G4QHadron(theEQC,enva4M);
 #ifdef pdebug
-          G4cout<<"G4QE::CGS: Fill Quasm "<<valQ<<quas4M<<" in any form"<<G4endl;
+         G4cout<<"G4QE::CGS: Fill Quasm "<<valQ<<quas4M<<" in any form"<<G4endl;
 #endif
-          EvaporateResidual(quasH);     // Try to evaporate residual (del.eq.)
+         EvaporateResidual(quasH);     // Try to evaporate residual (del.eq.)
 #ifdef pdebug
-          G4cout<<"G4QE::CGS: Fill envir "<<theEQC<<enva4M<<" in any form"<<G4endl;
+         G4cout<<"G4QE::CGS: Fill envir "<<theEQC<<enva4M<<" in any form"<<G4endl;
 #endif
-          // @@ Substitute by EvaporateResidual (if it is not used in the evaporateResid)
-          envaH->Set4Momentum(enva4M);
-          EvaporateResidual(envaH);     // Try to evaporate residual (del.eq.)
-          // Kill environment as it is already included in the decay
-          theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0), G4LorentzVector(0.,0.,0.,0.));
+         // @@ Substitute by EvaporateResidual (if it is not used in the evaporateResid)
+         envaH->Set4Momentum(enva4M);
+         EvaporateResidual(envaH);     // Try to evaporate residual (del.eq.)
+         // Kill environment as it is already included in the decay
+         theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0), G4LorentzVector(0.,0.,0.,0.));
 		      }
-        else
-        {
+       else
+       {
 #ifdef cdebug
-          G4cout<<"***G4QEnv::CheckGroundState: Decay in Frag+ResQ+ResE error"<<G4endl;
+         G4cout<<"***G4QEnv::CheckGroundState: Decay in Frag+ResQ+ResE error"<<G4endl;
 #endif
-          return false;
-        }
+         return false;
+       }
 	     }
-      else                                      // => "Environ is vacuum" case (DecayIn2)
-      {
-        G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon
-        G4QHadron* quasH = new G4QHadron(valQ, quas4M);
-        if(tmpTM>=resQMa+hadrMa && G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M))//DeIn2(noEnv)
-        {
-          //@@CHECK CoulBar (only for ResQuasmon in respect to ResEnv) & may be evaporate
-          theLast->Set4Momentum(hadr4M);
+     else                                      // => "Environ is vacuum" case (DecayIn2)
+     {
+       G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon
+       G4QHadron* quasH = new G4QHadron(valQ, quas4M);
+       if(tmpTM>=resQMa+hadrMa && G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M))//DeIn2(noEnv)
+       {
+         //@@CHECK CoulBar (only for ResQuasmon in respect to ResEnv) & may be evaporate
+         theLast->Set4Momentum(hadr4M);
 #ifdef pdebug
-          G4cout<<"G4QE::CGS: modify theLast 4M="<<hadr4M<<hadr4M.m()<<G4endl;
+         G4cout<<"G4QE::CGS: modify theLast 4M="<<hadr4M<<hadr4M.m()<<G4endl;
 #endif
-          quasH->Set4Momentum(quas4M);
+         quasH->Set4Momentum(quas4M);
 #ifdef pdebug
-          G4cout<<"G4QE::CGS: fill newQH "<<valQ<<quas4M<<quas4M.m()<<" inAnyForm"<<G4endl;
+         G4cout<<"G4QE::CGS: fill newQH "<<valQ<<quas4M<<quas4M.m()<<" inAnyForm"<<G4endl;
 #endif
-          EvaporateResidual(quasH);     // Try to evaporate residual (del.eq.)
+         EvaporateResidual(quasH);     // Try to evaporate residual (del.eq.)
 		      }
-        else
-        {
-          delete quasH;                         // Delete "Quasmon Hadron"
+       else
+       {
+         delete quasH;                         // Delete "Quasmon Hadron"
 #ifdef cdebug
-          G4cout<<"***G4QEnv::CheckGS: Decay in Fragm+ResQ did not succeeded"<<G4endl;
+         G4cout<<"***G4QEnv::CheckGS: Decay in Fragm+ResQ did not succeeded"<<G4endl;
 #endif
-          return false;
-        }
+         return false;
+       }
 	     }
-    }
-    else                                        // *** Try Last+Previous CORRECTION ***
-    {
+   }
+   else                                        // *** Try Last+Previous CORRECTION ***
+   {
 #ifdef cdebug
 	     G4cout<<"G4QEnv::CheckGS: the Last did not help, nH="<<nOfOUT<<G4endl;
 #endif
-      if(nOfOUT>1)                              // Cor with Last&Previous can be tryed
+     if(nOfOUT>1)                              // Cor with Last&Previous can be tryed
 	     {
-        G4QHadron*  thePrev = theQHadrons[nOfOUT-2]; // Get pointer to Prev before Last
-        if(thePrev->GetNFragments()||thePrev->GetNFragments()) return false;// Dec H/g
-        G4LorentzVector prev4M = thePrev->Get4Momentum();
-        G4double  prevMa=prev4M.m();            // Mass of previous hadron
-        tmpTLV+=prev4M;                         // Increase Total 4-Mom of TotalResidNucl
-        G4int      totPDG=reTQC.GetSPDGCode();  // PDG Code of Total Residual Nucleus 
-        if(totPDG==10&&reTQC.GetBaryonNumber()>0) totPDG=reTQC.GetZNSPDGCode();
-        G4double   tQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the Residual Nucleus
+       G4QHadron*  thePrev = theQHadrons[nOfOUT-2]; // Get pointer to Prev before Last
+       if(thePrev->GetNFragments()||thePrev->GetNFragments()) return false;// Dec H/g
+       G4LorentzVector prev4M = thePrev->Get4Momentum();
+       G4double  prevMa=prev4M.m();            // Mass of previous hadron
+       tmpTLV+=prev4M;                         // Increase Total 4-Mom of TotalResidNucl
+       G4int      totPDG=reTQC.GetSPDGCode();  // PDG Code of Total Residual Nucleus 
+       if(totPDG==10&&reTQC.GetBaryonNumber()>0) totPDG=reTQC.GetZNSPDGCode();
+       G4double   tQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the Residual Nucleus
 #ifdef cdebug
 	       G4cout<<"G4QE::CGS:T3="<<tmpTLV<<tmpTLV.m()<<">t+h+p="<<tQMa+hadrMa+prevMa<<G4endl;
 #endif
-        if(tmpTLV.m()>tQMa+hadrMa+prevMa)
-        {
-          G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,tQMa);// 4-Mom of ResidNucAtRest
-          G4QHadron* nucH = new G4QHadron(reTQC, nuc4M);
-          if(!G4QHadron(tmpTLV).DecayIn3(hadr4M,prev4M,nuc4M))
-          {
-            delete nucH;                        // Delete "Residual Nucleus Hadron"
-            G4cout<<"---Warning---G4QE::CGS:DecayIn ResNuc+LastH+PrevH Error"<<G4endl;
-            return false;
-          }
-          else
-          {
-            theLast->Set4Momentum(hadr4M);
-            thePrev->Set4Momentum(prev4M);
-            nucH->Set4Momentum(nuc4M);
+       if(tmpTLV.m()>tQMa+hadrMa+prevMa)
+       {
+         G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,tQMa);// 4-Mom of ResidNucAtRest
+         G4QHadron* nucH = new G4QHadron(reTQC, nuc4M);
+         if(!G4QHadron(tmpTLV).DecayIn3(hadr4M,prev4M,nuc4M))
+         {
+           delete nucH;                        // Delete "Residual Nucleus Hadron"
+           G4cout<<"---Warning---G4QE::CGS:DecayIn ResNuc+LastH+PrevH Error"<<G4endl;
+           return false;
+         }
+         else
+         {
+           theLast->Set4Momentum(hadr4M);
+           thePrev->Set4Momentum(prev4M);
+           nucH->Set4Momentum(nuc4M);
 #ifdef cdebug
 	           G4cout<<"G4QE::CGS:*SUCCESS**>CHECK, D4M="<<tmpTLV-hadr4M-prev4M-nuc4M<<G4endl;
 #endif
 #ifdef pdebug
-            G4cout<<"G4QE::CGS: Fill nucleus "<<reTQC<<nuc4M<<" in any form"<<G4endl;
+           G4cout<<"G4QE::CGS: Fill nucleus "<<reTQC<<nuc4M<<" in any form"<<G4endl;
 #endif
-            EvaporateResidual(nucH);     // Try to evaporate residual (del.eq.)
+           EvaporateResidual(nucH);     // Try to evaporate residual (del.eq.)
 	         }
 		      }
-        else                                  // ===> Try to use any hadron from the output
-        {
+       else                                  // ===> Try to use any hadron from the output
+       {
 #ifdef cdebug
 		        G4cout<<"G4QE::CGS:Prev&Last didn't help,nH="<<nOfOUT<<">2, MQ="<<resQMa<<G4endl;
 #endif
 										G4int nphot=-1;                     // #of photons
-          G4int npip=-1;                      // #of Pi+
-          G4int npiz=-1;                      // #of Pi0
-          G4int npim=-1;                      // #of Pi-
-          G4double emaz=0.;                   // The maximum energy for pi0 (to sel high E)
-          for(G4int id=nOfOUT-1; id>=0; id--) // Search for photons and pi+, and pi-
-  			     {
-            G4QHadron* curHadr = theQHadrons[id];
-            G4int hPDG=curHadr->GetPDGCode();
-            if(hPDG == 22) nphot=id;              // Get the earliest gamma
-            else if(hPDG==211 && npip<1) npip=id; // Get the latest Pi+
-            else if(hPDG==111)
-            {
+         G4int npip=-1;                      // #of Pi+
+         G4int npiz=-1;                      // #of Pi0
+         G4int npim=-1;                      // #of Pi-
+         G4double emaz=0.;                   // The maximum energy for pi0 (to sel high E)
+         for(G4int id=nOfOUT-1; id>=0; id--) // Search for photons and pi+, and pi-
+ 			     {
+           G4QHadron* curHadr = theQHadrons[id];
+           G4int hPDG=curHadr->GetPDGCode();
+           if(hPDG == 22) nphot=id;              // Get the earliest gamma
+           else if(hPDG==211 && npip<1) npip=id; // Get the latest Pi+
+           else if(hPDG==111)
+           {
 				          G4double piE=curHadr->Get4Momentum().e();
 #ifdef chdebug
-              G4cout<<"G4QE::CheckGroundState:"<<id<<",Epi0="<<piE<<">"<<emaz<<G4endl;
-#endif
-              if(piE>emaz)
-              {
-                npiz=id;
-                emaz=piE;
-              }
-            }
-            else if(hPDG==-211 && npim<1) npim=id; // Get the latest Pi-
-          }
-          if(nphot>=0)                 // Photon is found, try to use it to resolve PANIC
+             G4cout<<"G4QE::CheckGroundState:"<<id<<",Epi0="<<piE<<">"<<emaz<<G4endl;
+#endif
+             if(piE>emaz)
+             {
+               npiz=id;
+               emaz=piE;
+             }
+           }
+           else if(hPDG==-211 && npim<1) npim=id; // Get the latest Pi-
+         }
+         if(nphot>=0)                 // Photon is found, try to use it to resolve PANIC
 			       {
-            G4QHadron* curHadr = theQHadrons[nphot];      // Pointer to the photon
-            G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Photon
-            G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.))
-            G4double ttM=tt4M.m();          // Mass of the Phot+ResidQm compaund system
-            if(resQMa<ttM)                  // PANIC can be resolved with this Photon
+           G4QHadron* curHadr = theQHadrons[nphot];      // Pointer to the photon
+           G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Photon
+           G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.))
+           G4double ttM=tt4M.m();          // Mass of the Phot+ResidQm compaund system
+           if(resQMa<ttM)                  // PANIC can be resolved with this Photon
 			         {
-              G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resSMa);//GSMass of Quasm
-              G4QHadron* rqH = new G4QHadron(reTQC,quas4M); // Prototype of outputResidQ
-              if(!G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
-              {
-                delete rqH;                 // Delete tmp "Residual Quasmon Hadron"
+             G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resSMa);//GSMass of Quasm
+             G4QHadron* rqH = new G4QHadron(reTQC,quas4M); // Prototype of outputResidQ
+             if(!G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
+             {
+               delete rqH;                 // Delete tmp "Residual Quasmon Hadron"
 #ifdef cdebug
-                G4cout<<"***G4QEnv::CheckGS: Decay in Photon+ResQ tM="<<ttM<<G4endl;
+               G4cout<<"***G4QEnv::CheckGS: Decay in Photon+ResQ tM="<<ttM<<G4endl;
 #endif
-              }
-              else
-              {
-                curHadr->Set4Momentum(ch4M);// Change 4M of Photon (reduced by decay)
-                rqH->Set4Momentum(quas4M);  // Fill 4M of the GS Residual Quasmon
+             }
+             else
+             {
+               curHadr->Set4Momentum(ch4M);// Change 4M of Photon (reduced by decay)
+               rqH->Set4Momentum(quas4M);  // Fill 4M of the GS Residual Quasmon
 #ifdef cdebug
-                G4cout<<"G4QE::CGS:nPhot="<<nphot<<",ph4M="<<ch4M<<"+r4M="<<quas4M<<G4endl;
+               G4cout<<"G4QE::CGS:nPhot="<<nphot<<",ph4M="<<ch4M<<"+r4M="<<quas4M<<G4endl;
 #endif
 #ifdef pdebug
-                G4cout<<"G4QE::CGS: Fill Resid "<<reTQC<<quas4M<<" in any form"<<G4endl;
+               G4cout<<"G4QE::CGS: Fill Resid "<<reTQC<<quas4M<<" in any form"<<G4endl;
 #endif
-                EvaporateResidual(rqH);     // Try to evaporate residual (del.eq.)
-                if(envPDG!=90000000) theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0),
-                                                          G4LorentzVector(0.,0.,0.,0.));
-                return true;
+               EvaporateResidual(rqH);     // Try to evaporate residual (del.eq.)
+               if(envPDG!=90000000) theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0),
+                                                         G4LorentzVector(0.,0.,0.,0.));
+               return true;
 		            }
-            } // End of the KINEMATIC CHECK FOR THE PHOTON if
-          } // End of nphot IF
+           } // End of the KINEMATIC CHECK FOR THE PHOTON if
+         } // End of nphot IF
 #ifdef chdebug
-          if(resQPDG==89998004)G4cout<<"G4QE::CGS:S="<<resS<<",B="<<resB<<",C="<<resC
-                            <<",+#"<<npip<<",-#"<<npim<<",0#"<<npiz<<",E="<<envPDG<<G4endl;
+         if(resQPDG==89998004)G4cout<<"G4QE::CGS:S="<<resS<<",B="<<resB<<",C="<<resC
+                           <<",+#"<<npip<<",-#"<<npim<<",0#"<<npiz<<",E="<<envPDG<<G4endl;
 #endif
-          //if(npip>=0&&resQPDG==89998004 || npim>=0&&resQPDG==90003998)// D+D+pi->N+N+pi
-          if (envPDG == 90000000 && !resS && resB > 1 && 
-              ((npip >= 0 && resC == -2) || (npim >= 0 && resC-resB == 2)) )
+         //if(npip>=0&&resQPDG==89998004 || npim>=0&&resQPDG==90003998)// D+D+pi->N+N+pi
+         if (envPDG == 90000000 && !resS && resB > 1 && 
+             ((npip >= 0 && resC == -2) || (npim >= 0 && resC-resB == 2)) )
 	  {
-            G4int npi=npip;               // (Delta-)+(Delta-)+k*n+(pi+)->(k+2)*n+(pi-)
-            G4int piPD=-211;
-            G4int nuPD=2112;
-            G4double nuM=mNeut;
-            if(resC!=-2)                  // (Delta++)+(Delta++)+k*p+(pi-)->(k+2)*p+(pi-)
-            {
-              npi=npim;
-              piPD=211;
-              nuPD=2212;
-              nuM=mProt;
-            }
-            G4QPDGCode piQPDG(piPD);
-            G4int rB=resB-1;
-            G4double suB=rB*nuM;
-            G4double suM=suB+nuM+mPi;
-            G4QHadron* curHadr = theQHadrons[npi]; // Pointer to the pion of oposit sign
-            G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Pion
-            G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.))
-            G4double ttM=tt4M.m();          // Mass of the Pion+ResidQm compaund system
+           G4int npi=npip;               // (Delta-)+(Delta-)+k*n+(pi+)->(k+2)*n+(pi-)
+           G4int piPD=-211;
+           G4int nuPD=2112;
+           G4double nuM=mNeut;
+           if(resC!=-2)                  // (Delta++)+(Delta++)+k*p+(pi-)->(k+2)*p+(pi-)
+           {
+             npi=npim;
+             piPD=211;
+             nuPD=2212;
+             nuM=mProt;
+           }
+           G4QPDGCode piQPDG(piPD);
+           G4int rB=resB-1;
+           G4double suB=rB*nuM;
+           G4double suM=suB+nuM+mPi;
+           G4QHadron* curHadr = theQHadrons[npi]; // Pointer to the pion of oposit sign
+           G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Pion
+           G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.))
+           G4double ttM=tt4M.m();          // Mass of the Pion+ResidQm compaund system
 #ifdef cdebug
-            if(resQPDG==89998005)
-              G4cout<<"G4QE::CGS:Sm="<<suM<<"<Tot="<<ttM<<tt4M
-                    <<",pi="<<ch4M<<",Q="<<reTLV.m()<<reTLV<<G4endl;
+           if(resQPDG==89998005)
+             G4cout<<"G4QE::CGS:Sm="<<suM<<"<Tot="<<ttM<<tt4M
+                   <<",pi="<<ch4M<<",Q="<<reTLV.m()<<reTLV<<G4endl;
 #endif
-            if(suM<ttM)                    // PANIC can be resolved with this Pion
+           if(suM<ttM)                    // PANIC can be resolved with this Pion
 			         {
-              G4LorentzVector fn4M = G4LorentzVector(0.,0.,0.,suB);//First nucleon(s)
-              G4LorentzVector sn4M = G4LorentzVector(0.,0.,0.,nuM);//Second nucleon
-              G4LorentzVector pi4M = G4LorentzVector(0.,0.,0.,mPi);//Pion
-              if(!G4QHadron(tt4M).DecayIn3(fn4M,sn4M,pi4M))
-              {
+             G4LorentzVector fn4M = G4LorentzVector(0.,0.,0.,suB);//First nucleon(s)
+             G4LorentzVector sn4M = G4LorentzVector(0.,0.,0.,nuM);//Second nucleon
+             G4LorentzVector pi4M = G4LorentzVector(0.,0.,0.,mPi);//Pion
+             if(!G4QHadron(tt4M).DecayIn3(fn4M,sn4M,pi4M))
+             {
 #ifdef cdebug
-                if(resQPDG==89998005)
-                  G4cout<<"***G4QEnv::CheckGS:DecayIn3 2N+Pi,tM="<<ttM<<","<<suM<<G4endl;
+               if(resQPDG==89998005)
+                 G4cout<<"***G4QEnv::CheckGS:DecayIn3 2N+Pi,tM="<<ttM<<","<<suM<<G4endl;
 #endif
-              }
-              else
-              {
-                if(rB>1) fn4M/=rB;
-                for(G4int ib=0; ib<rB; ib++)
-                {
-                  G4QHadron* fnH = new G4QHadron(nuPD,fn4M);// First Nucleon(s)
+             }
+             else
+             {
+               if(rB>1) fn4M/=rB;
+               for(G4int ib=0; ib<rB; ib++)
+               {
+                 G4QHadron* fnH = new G4QHadron(nuPD,fn4M);// First Nucleon(s)
 #ifdef pdebug
-                  G4cout<<"G4QE::CGS: fill Nucleon #"<<ib<<", "<<nuPD<<fn4M<<G4endl;
+                 G4cout<<"G4QE::CGS: fill Nucleon #"<<ib<<", "<<nuPD<<fn4M<<G4endl;
 #endif
-                  theQHadrons.push_back(fnH); // Fill First Nucleon(s) (del. equivalent)
-                }
-                G4QHadron* snH = new G4QHadron(nuPD,sn4M);// Second Nucleon
+                 theQHadrons.push_back(fnH); // Fill First Nucleon(s) (del. equivalent)
+               }
+               G4QHadron* snH = new G4QHadron(nuPD,sn4M);// Second Nucleon
 #ifdef pdebug
-                G4cout<<"G4QE::CGS: fill the Last Nucleon, "<<nuPD<<sn4M<<G4endl;
+               G4cout<<"G4QE::CGS: fill the Last Nucleon, "<<nuPD<<sn4M<<G4endl;
 #endif
-                theQHadrons.push_back(snH); // Fill Second Nucleon (delete equivalent)
-                curHadr->Set4Momentum(pi4M);// Change 4M of the Pion (reduced by decay)
-                curHadr->SetQPDG(piQPDG);   // Change Charge of thePion
+               theQHadrons.push_back(snH); // Fill Second Nucleon (delete equivalent)
+               curHadr->Set4Momentum(pi4M);// Change 4M of the Pion (reduced by decay)
+               curHadr->SetQPDG(piQPDG);   // Change Charge of thePion
 #ifdef cdebug
-                if(resQPDG==89998005)
-                  G4cout<<"G4QE::CGS:1="<<nuPD<<fn4M<<rB<<",2="<<sn4M<<",p="<<pi4M<<G4endl;
+               if(resQPDG==89998005)
+                 G4cout<<"G4QE::CGS:1="<<nuPD<<fn4M<<rB<<",2="<<sn4M<<",p="<<pi4M<<G4endl;
 #endif
-                return true;
+               return true;
 		            }
-            } // End of the KINEMATIC CHECK FOR THE PI+/PI- if
-          } // End of npip/pin Isonucleus IF
-          if(envPDG==90000000&&!resS&&resB>1&&npiz>=0&&(resC<-1||resC-resB>1))
+           } // End of the KINEMATIC CHECK FOR THE PI+/PI- if
+         } // End of npip/pin Isonucleus IF
+         if(envPDG==90000000&&!resS&&resB>1&&npiz>=0&&(resC<-1||resC-resB>1))
 			       {
 #ifdef chdebug
-            G4cout<<"***G4QE::CGS:Pi0, rPDG="<<resQPDG<<",rC="<<resC<<",rB="<<resB<<G4endl;
-#endif
-            G4int npi=-resC;                // k*(Delta-)+m*n+pi0->(k+m)*k+(pi-)
-            G4int piPD=-211;
-            G4int nuPD=2112;
-            G4double nuM=mNeut;
-            if(resC!=-2)                    // k*(Delta++)+m*p+pi0->(k+m)*p+k*(pi+)
-            {
-              npi=resC-resB;
-              piPD=211;
-              nuPD=2212;
-              nuM=mProt;
-            }
-            G4QPDGCode piQPDG(piPD);
-            G4double suB=resB*nuM;          // Total mass of nucleons
-            G4double suM=npi*mPi;           // Total mass of pions
-            G4double sum=suB+suM;           // Total mass of secondaries
-            G4QHadron* curHadr = theQHadrons[npiz]; // Pointer to pi0
-            G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Pion
-            G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.))
-            G4double ttM=tt4M.m();          // Mass of the Pion+ResidQm compaund system
+           G4cout<<"***G4QE::CGS:Pi0, rPDG="<<resQPDG<<",rC="<<resC<<",rB="<<resB<<G4endl;
+#endif
+           G4int npi=-resC;                // k*(Delta-)+m*n+pi0->(k+m)*k+(pi-)
+           G4int piPD=-211;
+           G4int nuPD=2112;
+           G4double nuM=mNeut;
+           if(resC!=-2)                    // k*(Delta++)+m*p+pi0->(k+m)*p+k*(pi+)
+           {
+             npi=resC-resB;
+             piPD=211;
+             nuPD=2212;
+             nuM=mProt;
+           }
+           G4QPDGCode piQPDG(piPD);
+           G4double suB=resB*nuM;          // Total mass of nucleons
+           G4double suM=npi*mPi;           // Total mass of pions
+           G4double sum=suB+suM;           // Total mass of secondaries
+           G4QHadron* curHadr = theQHadrons[npiz]; // Pointer to pi0
+           G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Pion
+           G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.))
+           G4double ttM=tt4M.m();          // Mass of the Pion+ResidQm compaund system
 #ifdef chdebug
-            G4cout<<"G4QE::CGS:sum="<<sum<<"<"<<ttM<<tt4M<<",pi0="<<ch4M<<",Q="<<reTLV.m()
-                  <<reTLV<<G4endl;
+           G4cout<<"G4QE::CGS:sum="<<sum<<"<"<<ttM<<tt4M<<",pi0="<<ch4M<<",Q="<<reTLV.m()
+                 <<reTLV<<G4endl;
 #endif
-            if(sum<ttM)                     // PANIC can be resolved with this Pi0
+           if(sum<ttM)                     // PANIC can be resolved with this Pi0
 			         {
-              G4LorentzVector fn4M = G4LorentzVector(0.,0.,0.,suB); // Nucleon(s)
-              G4LorentzVector pi4M = G4LorentzVector(0.,0.,0.,suM); // Pion(s)
-              if(G4QHadron(tt4M).DecayIn2(fn4M,pi4M))
-              {
-                if(npi>1) pi4M/=npi;
-                curHadr->Set4Momentum(pi4M);// Change 4M of the Pion (reduced by decay)
-                curHadr->SetQPDG(piQPDG);   // Change Charge of thePion
-                if(npi>1) for(G4int ip=1; ip<npi; ip++)
-                {
-                  G4QHadron* piH = new G4QHadron(piPD,pi4M);// Pion(s)
-#ifdef pdebug
-                  G4cout<<"G4QE::CGS: fill Pion #"<<ip<<", "<<piPD<<pi4M<<G4endl;
-#endif
-                  theQHadrons.push_back(piH); // Fill Pion(s) (delete equivalent)
-                }
-                if(resB>1) fn4M/=resB;
-                for(G4int ib=0; ib<resB; ib++)
-                {
-                  G4QHadron* fnH = new G4QHadron(nuPD,fn4M);// Nucleon(s)
-#ifdef pdebug
-                  G4cout<<"G4QE::CGS: fill IsoNucleon #"<<ib<<", "<<nuPD<<fn4M<<G4endl;
-#endif
-                  theQHadrons.push_back(fnH); // Fill Nucleon(s) (delete equivalent)
-                }
+             G4LorentzVector fn4M = G4LorentzVector(0.,0.,0.,suB); // Nucleon(s)
+             G4LorentzVector pi4M = G4LorentzVector(0.,0.,0.,suM); // Pion(s)
+             if(G4QHadron(tt4M).DecayIn2(fn4M,pi4M))
+             {
+               if(npi>1) pi4M/=npi;
+               curHadr->Set4Momentum(pi4M);// Change 4M of the Pion (reduced by decay)
+               curHadr->SetQPDG(piQPDG);   // Change Charge of thePion
+               if(npi>1) for(G4int ip=1; ip<npi; ip++)
+               {
+                 G4QHadron* piH = new G4QHadron(piPD,pi4M);// Pion(s)
+#ifdef pdebug
+                 G4cout<<"G4QE::CGS: fill Pion #"<<ip<<", "<<piPD<<pi4M<<G4endl;
+#endif
+                 theQHadrons.push_back(piH); // Fill Pion(s) (delete equivalent)
+               }
+               if(resB>1) fn4M/=resB;
+               for(G4int ib=0; ib<resB; ib++)
+               {
+                 G4QHadron* fnH = new G4QHadron(nuPD,fn4M);// Nucleon(s)
+#ifdef pdebug
+                 G4cout<<"G4QE::CGS: fill IsoNucleon #"<<ib<<", "<<nuPD<<fn4M<<G4endl;
+#endif
+                 theQHadrons.push_back(fnH); // Fill Nucleon(s) (delete equivalent)
+               }
 #ifdef chdebug
 					           G4cout<<"G4QE::CGS: nucl="<<nuPD<<fn4M<<resB<<", pion="<<pi4M<<npi<<G4endl;
 #endif
 
-                return true;
+               return true;
 		            }
 #ifdef chdebug
-              else G4cout<<"***G4QEnv::CheckGS:DecayIn3:*Pi0* tM="<<ttM<<","<<sum<<G4endl;
+             else G4cout<<"***G4QEnv::CheckGS:DecayIn3:*Pi0* tM="<<ttM<<","<<sum<<G4endl;
 #endif
-            } // End of the KINEMATIC CHECK FOR THE PI0 if
+           } // End of the KINEMATIC CHECK FOR THE PI0 if
 										} // End of npiz Isonucleus IF
 #ifdef cdebug
 		        G4cout<<"G4QE::CGS: Photons can't help nP="<<nphot<<". TryChangeCharge."<<G4endl;
 #endif
-          // > Photons did not help, try to find an appropriate partner to join and decay
-          G4int    reTBN=reTQC.GetBaryonNumber(); // Baryon number of theHadronicState
-          G4int    reTCH=reTQC.GetCharge();       // Charge of theHadronicState
-          G4bool isoN = reTCH-reTBN>0 || reTCH<0; // UnavoidableIsonucleus (Delta cond.)
-          G4bool norN = reTCH<=reTBN || reTCH>=0; // "Regular nucleus" condition
-          G4double nnM=resSMa;               // Fake prototype of the NormalNucleusMass
-          G4QContent ipiQC=pipQC;            // Prototype of QCont for the Residual Pion+
-          G4QContent nnQC=reTQC+pimQC;       // Prototype of theIsoReduceNucleus(Delta++)
-          G4int nnPDG=nnQC.GetSPDGCode();    // Prot. PDGCode of the ResidNormalNucleus
-          if((!nnPDG||nnPDG==10)&&nnQC.GetBaryonNumber()>0) nnPDG=nnQC.GetZNSPDGCode();
+         // > Photons did not help, try to find an appropriate partner to join and decay
+         G4int    reTBN=reTQC.GetBaryonNumber(); // Baryon number of theHadronicState
+         G4int    reTCH=reTQC.GetCharge();       // Charge of theHadronicState
+         G4bool isoN = reTCH-reTBN>0 || reTCH<0; // UnavoidableIsonucleus (Delta cond.)
+         G4bool norN = reTCH<=reTBN || reTCH>=0; // "Regular nucleus" condition
+         G4double nnM=resSMa;               // Fake prototype of the NormalNucleusMass
+         G4QContent ipiQC=pipQC;            // Prototype of QCont for the Residual Pion+
+         G4QContent nnQC=reTQC+pimQC;       // Prototype of theIsoReduceNucleus(Delta++)
+         G4int nnPDG=nnQC.GetSPDGCode();    // Prot. PDGCode of the ResidNormalNucleus
+         if((!nnPDG||nnPDG==10)&&nnQC.GetBaryonNumber()>0) nnPDG=nnQC.GetZNSPDGCode();
 #ifdef cdebug
 		        G4cout<<"G4QE::CGS: nnPDR="<<nnPDG<<". TryChangeCharge nOUT="<<nOfOUT<<",Iso="
-                <<isoN<<",Nor="<<norN<<",C="<<reTCH<<",B="<<reTBN<<G4endl;
+               <<isoN<<",Nor="<<norN<<",C="<<reTCH<<",B="<<reTBN<<G4endl;
 #endif
-          if(isoN)                           // Calculations for the Isonuclear Residual
+         if(isoN)                           // Calculations for the Isonuclear Residual
 			       {
-            if(reTCH<0)                      // "at least one Delta-" isostate (chngPort)
-            {
-              ipiQC=pimQC;                   // Change QCont for the Residual Pion-
-              nnQC=reTQC+pipQC;              // Change QCont for theNormalNucleus(Delta-)
-              nnPDG=nnQC.GetSPDGCode();      // Change PDGCode of theResidNormalNucleus
-              if(nnPDG==10&&nnQC.GetBaryonNumber()>0) nnPDG=nnQC.GetZNSPDGCode();
+           if(reTCH<0)                      // "at least one Delta-" isostate (chngPort)
+           {
+             ipiQC=pimQC;                   // Change QCont for the Residual Pion-
+             nnQC=reTQC+pipQC;              // Change QCont for theNormalNucleus(Delta-)
+             nnPDG=nnQC.GetSPDGCode();      // Change PDGCode of theResidNormalNucleus
+             if(nnPDG==10&&nnQC.GetBaryonNumber()>0) nnPDG=nnQC.GetZNSPDGCode();
 			         }
-            G4QPDGCode nnQPDG(nnPDG);        // Now can even have Q-code !
-            if(nnPDG<80000000) nnM=nnQPDG.GetMass(); // Mass for the Fundamental Hadron
-            else               nnM=nnQPDG.GetNuclMass(nnPDG); // Mass for the Nucleus
-          }
-          G4bool chx2g=true;
-          G4bool force=false; // Force-flag to initiate gamma decays (ChEx=>"Pi0"->2gamma)
-          while(chx2g)
-          {
-            if(force) chx2g=false;
-            for(G4int hd=nOfOUT-1; hd>=0; hd--)// Try to use any hadron to resolve PANIC
-  			       {
-              G4QHadron* curHadr = theQHadrons[hd];
-              G4int chNF=curHadr->GetNFragments();
-              G4int chCH=curHadr->GetCharge();
-              G4int chBN=curHadr->GetBaryonNumber();
-              //G4int chS=curHadr->GetStrangeness();
-              G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4Mom of the Current Hadron
+           G4QPDGCode nnQPDG(nnPDG);        // Now can even have Q-code !
+           if(nnPDG<80000000) nnM=nnQPDG.GetMass(); // Mass for the Fundamental Hadron
+           else               nnM=nnQPDG.GetNuclMass(nnPDG); // Mass for the Nucleus
+         }
+         G4bool chx2g=true;
+         G4bool force=false; // Force-flag to initiate gamma decays (ChEx=>"Pi0"->2gamma)
+         while(chx2g)
+         {
+           if(force) chx2g=false;
+           for(G4int hd=nOfOUT-1; hd>=0; hd--)// Try to use any hadron to resolve PANIC
+ 			       {
+             G4QHadron* curHadr = theQHadrons[hd];
+             G4int chNF=curHadr->GetNFragments();
+             G4int chCH=curHadr->GetCharge();
+             G4int chBN=curHadr->GetBaryonNumber();
+             //G4int chS=curHadr->GetStrangeness();
+             G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4Mom of the Current Hadron
 #ifdef cdebug
 			           G4cout<<"G4QE::CGS:#"<<hd<<",ch="<<chCH<<",b="<<chBN<<",4M="<<ch4M<<G4endl;
 #endif
-              if(!chNF)
-              {
-                G4LorentzVector tt4M=ch4M+reTLV;// resSMa=GSMass of the ResidQuasmon(+Env)
-                G4double chM=ch4M.m();          // Mass of the CurrentHadron from theOUTPUT
-                G4double ttM=tt4M.m();          // TotalMass of CurHadr+Residual compaund
-                if(isoN)                        // "1 Delta Isonucleus" case
+             if(!chNF)
+             {
+               G4LorentzVector tt4M=ch4M+reTLV;// resSMa=GSMass of the ResidQuasmon(+Env)
+               G4double chM=ch4M.m();          // Mass of the CurrentHadron from theOUTPUT
+               G4double ttM=tt4M.m();          // TotalMass of CurHadr+Residual compaund
+               if(isoN)                        // "1 Delta Isonucleus" case
 		              {
-                  if(nnM+mPi+chM<ttM)           // PANIC can be resolved with thisCurHadron
+                 if(nnM+mPi+chM<ttM)           // PANIC can be resolved with thisCurHadron
 			               {
 #ifdef cdebug
-                      G4cout<<"G4QE::CGS:CurH+ResQ+Pion t="<<tt4M<<ttM<<",cM="<<chM<<",rM="
-                            <<nnM<<", d="<<ttM-chM-nnM-mPi<<G4endl;
+                     G4cout<<"G4QE::CGS:CurH+ResQ+Pion t="<<tt4M<<ttM<<",cM="<<chM<<",rM="
+                           <<nnM<<", d="<<ttM-chM-nnM-mPi<<G4endl;
 #endif
-                    ch4M = G4LorentzVector(0.,0.,0.,chM); // Mass of current Hadron
-                    G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,nnM); // GSMass of RQ
-                    G4LorentzVector ipi4M = G4LorentzVector(0.,0.,0.,mPi);// GSMass of Pion
-                    if(G4QHadron(tt4M).DecayIn3(ch4M,ipi4M,quas4M))
-                    {
-                      curHadr->Set4Momentum(ch4M);// Change 4M of the Current Hadron
-                      G4QHadron* rpH = new G4QHadron(ipiQC,ipi4M);// Prototype of ResidPion
+                   ch4M = G4LorentzVector(0.,0.,0.,chM); // Mass of current Hadron
+                   G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,nnM); // GSMass of RQ
+                   G4LorentzVector ipi4M = G4LorentzVector(0.,0.,0.,mPi);// GSMass of Pion
+                   if(G4QHadron(tt4M).DecayIn3(ch4M,ipi4M,quas4M))
+                   {
+                     curHadr->Set4Momentum(ch4M);// Change 4M of the Current Hadron
+                     G4QHadron* rpH = new G4QHadron(ipiQC,ipi4M);// Prototype of ResidPion
 #ifdef pdebug
-                      G4cout<<"G4QE::CGS: fill Pion "<<ipiQC<<ipi4M<<G4endl;
+                     G4cout<<"G4QE::CGS: fill Pion "<<ipiQC<<ipi4M<<G4endl;
 #endif
-                      theQHadrons.push_back(rpH); // Fill Resid Pion (delete equivalent)
-                      G4QHadron* rqH = new G4QHadron(nnQC,quas4M);// Prototype of OutResidQ
+                     theQHadrons.push_back(rpH); // Fill Resid Pion (delete equivalent)
+                     G4QHadron* rqH = new G4QHadron(nnQC,quas4M);// Prototype of OutResidQ
 #ifdef pdebug
-                      G4cout<<"G4QE::CGS:Fill isoRes "<<nnQC<<quas4M<<" inAnyForm"<<G4endl;
+                     G4cout<<"G4QE::CGS:Fill isoRes "<<nnQC<<quas4M<<" inAnyForm"<<G4endl;
 #endif
 #ifdef cdebug
-                      //if(resQPDG==89998004)
-                        G4cout<<"G4QE::CGS:#"<<hd<<"is h="<<curHadr->GetPDGCode()<<ch4M
-                              <<curHadr->Get4Momentum()<<" + rq="<<nnPDG<<quas4M<<" + pi="
-                              <<ipiQC<<ipi4M<<G4endl;
-#endif
-                      EvaporateResidual(rqH); // Try to evaporate residual (del.eq.)
-                      if(envPDG!=90000000)theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0)
-                                                        ,G4LorentzVector(0.,0.,0.,0.));
-                      return true;
+                     //if(resQPDG==89998004)
+                       G4cout<<"G4QE::CGS:#"<<hd<<"is h="<<curHadr->GetPDGCode()<<ch4M
+                             <<curHadr->Get4Momentum()<<" + rq="<<nnPDG<<quas4M<<" + pi="
+                             <<ipiQC<<ipi4M<<G4endl;
+#endif
+                     EvaporateResidual(rqH); // Try to evaporate residual (del.eq.)
+                     if(envPDG!=90000000)theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0)
+                                                       ,G4LorentzVector(0.,0.,0.,0.));
+                     return true;
 		                  }
 #ifdef cdebug
 																				else G4cout<<"***G4QE::CGS:DecIn3 CurH+ResQ+Pion dM="<<ttM-chM<<G4endl;
 #endif
-                  }
-                  if ( (reTCH < 0 && chCH > 0) || (reTCH > reTBN && chCH < chBN) ) // Isoexchange can help
+                 }
+                 if ( (reTCH < 0 && chCH > 0) || (reTCH > reTBN && chCH < chBN) ) // Isoexchange can help
 		  {
-                    G4QContent chQC=curHadr->GetQC(); // QuarkCont of the CurrentHadron
-                    if(reTCH<0)chQC+=pimQC;           // Add the negativPion QC to CurHadr
-                    else       chQC+=pipQC;           // Add the positivePion QC to CurHadr
-                    G4QPDGCode nnQPDG=G4QPDGCode(nnPDG);// New QPDG of the Residual
-                    nnM=nnQPDG.GetMass();             // New Mass of the Residual
-                    G4QPDGCode chQPDG=G4QPDGCode(chQC.GetSPDGCode());// New QPDG of CurHadr
-                    chM=chQPDG.GetMass();             // New Mass of the CurHadron
-                    if(force && nnPDG==111) nnM=0.;   // Decay of Pi0->2 gammas is possible
+                   G4QContent chQC=curHadr->GetQC(); // QuarkCont of the CurrentHadron
+                   if(reTCH<0)chQC+=pimQC;           // Add the negativPion QC to CurHadr
+                   else       chQC+=pipQC;           // Add the positivePion QC to CurHadr
+                   G4QPDGCode nnQPDG=G4QPDGCode(nnPDG);// New QPDG of the Residual
+                   nnM=nnQPDG.GetMass();             // New Mass of the Residual
+                   G4QPDGCode chQPDG=G4QPDGCode(chQC.GetSPDGCode());// New QPDG of CurHadr
+                   chM=chQPDG.GetMass();             // New Mass of the CurHadron
+                   if(force && nnPDG==111) nnM=0.;   // Decay of Pi0->2 gammas is possible
 #ifdef cdebug
-                    G4cout<<"G4QE::CGS:ChargeExchange,cx="<<chx2g<<",rC="<<reTCH<<",rB="
-                          <<reTBN<<",rM="<<nnM<<",hC="<<chCH<<",hB="<<chBN<<",hM="<<chM
-                          <<",rM+hB="<<nnM+chM<<" < "<<ttM<<G4endl;
-#endif
-                    if(nnM+chM<ttM)
-                    {
-                      G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,nnM);//GSMass of RQ
-                      G4LorentzVector gam4M = G4LorentzVector(0.,0.,0.,0.);//4Mom of gamma1
-                      ch4M = G4LorentzVector(0.,0.,0.,chM);//GSMass of ChrgExchanged Hadron
-                      G4QHadron* rqH = new G4QHadron(nnQPDG,quas4M);//ChrgExResidualQuasmon
-                      if(!nnM)                      // Decay ResidualVirtualQ: Pi0->2 gamma
-                      {
-                        if(!G4QHadron(tt4M).DecayIn3(ch4M,quas4M,gam4M))
-                        {
-                          delete rqH;               // Delete tmp "Residual Quasmon Hadron"
+                   G4cout<<"G4QE::CGS:ChargeExchange,cx="<<chx2g<<",rC="<<reTCH<<",rB="
+                         <<reTBN<<",rM="<<nnM<<",hC="<<chCH<<",hB="<<chBN<<",hM="<<chM
+                         <<",rM+hB="<<nnM+chM<<" < "<<ttM<<G4endl;
+#endif
+                   if(nnM+chM<ttM)
+                   {
+                     G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,nnM);//GSMass of RQ
+                     G4LorentzVector gam4M = G4LorentzVector(0.,0.,0.,0.);//4Mom of gamma1
+                     ch4M = G4LorentzVector(0.,0.,0.,chM);//GSMass of ChrgExchanged Hadron
+                     G4QHadron* rqH = new G4QHadron(nnQPDG,quas4M);//ChrgExResidualQuasmon
+                     if(!nnM)                      // Decay ResidualVirtualQ: Pi0->2 gamma
+                     {
+                       if(!G4QHadron(tt4M).DecayIn3(ch4M,quas4M,gam4M))
+                       {
+                         delete rqH;               // Delete tmp "Residual Quasmon Hadron"
 #ifdef cdebug
-                          G4cout<<"***G4QE::CGS:DecayIn3 CurH+2Gammas,d="<<ttM-chM<<G4endl;
+                         G4cout<<"***G4QE::CGS:DecayIn3 CurH+2Gammas,d="<<ttM-chM<<G4endl;
 #endif
-                        }
-                        else
-                        {
-                          if(chCH+reTCH-chQC.GetCharge()-nnQC.GetCharge())
+                       }
+                       else
+                       {
+                         if(chCH+reTCH-chQC.GetCharge()-nnQC.GetCharge())
 						                      G4cout<<"**G4QE::CGS:ChEx CH+2G i="<<reTCH<<"+h="<<chCH<<", f="
-                                  <<nnQC.GetCharge()<<"+o="<<chQC.GetCharge()<<G4endl;
-                          curHadr->Set4Momentum(ch4M);// Change 4M of the Current Hadron
-                          curHadr->SetQPDG(chQPDG);   // Change QPDG of the Current Hadron
+                                 <<nnQC.GetCharge()<<"+o="<<chQC.GetCharge()<<G4endl;
+                         curHadr->Set4Momentum(ch4M);// Change 4M of the Current Hadron
+                         curHadr->SetQPDG(chQPDG);   // Change QPDG of the Current Hadron
 #ifdef cdebug
-                          G4cout<<"G4QE::CGS:SubstituteH#"<<hd<<"->"<<chQPDG<<ch4M<<G4endl;
+                         G4cout<<"G4QE::CGS:SubstituteH#"<<hd<<"->"<<chQPDG<<ch4M<<G4endl;
 #endif
-                          rqH->Set4Momentum(quas4M);  // Fill 4M of the GS Residual Quasmon
-                          rqH->SetQPDG(gamQPDG);      // Change QPDG of the ResidualQuasmon
-                          theQHadrons.push_back(rqH); // Fill Gamma 1 as QHadron (del. eq.)
+                         rqH->Set4Momentum(quas4M);  // Fill 4M of the GS Residual Quasmon
+                         rqH->SetQPDG(gamQPDG);      // Change QPDG of the ResidualQuasmon
+                         theQHadrons.push_back(rqH); // Fill Gamma 1 as QHadron (del. eq.)
 #ifdef pdebug
-                          G4cout<<"G4QE::CGS:Fill (SubRQ) Gamma 1,(22)4M="<<quas4M<<G4endl;
+                         G4cout<<"G4QE::CGS:Fill (SubRQ) Gamma 1,(22)4M="<<quas4M<<G4endl;
 #endif
-                          G4QHadron* gamH = new G4QHadron(gamQPDG, gam4M);
-                          theQHadrons.push_back(gamH);// Fill Gamma 2 as QHadron (del. eq.)
+                         G4QHadron* gamH = new G4QHadron(gamQPDG, gam4M);
+                         theQHadrons.push_back(gamH);// Fill Gamma 2 as QHadron (del. eq.)
 #ifdef pdebug
-                          G4cout<<"G4QE::CGS:Fill newMadeGamma 2, (22) 4M="<<gam4M<<G4endl;
+                         G4cout<<"G4QE::CGS:Fill newMadeGamma 2, (22) 4M="<<gam4M<<G4endl;
 #endif
-                          if(envPDG!=90000000) theEnvironment=
-                          G4QNucleus(G4QContent(0,0,0,0,0,0),G4LorentzVector(0.,0.,0.,0.));
-                          return true;
+                         if(envPDG!=90000000) theEnvironment=
+                         G4QNucleus(G4QContent(0,0,0,0,0,0),G4LorentzVector(0.,0.,0.,0.));
+                         return true;
 		                      }
-                      } // End of "the Normal decay without 2 gammas"
-                      else                        // Normal decay (without "Pi0"->2 gammas)
-                      {
-                        if(!G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
-                        {
-                          delete rqH;               // Delete tmp "Residual Quasmon Hadron"
+                     } // End of "the Normal decay without 2 gammas"
+                     else                        // Normal decay (without "Pi0"->2 gammas)
+                     {
+                       if(!G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
+                       {
+                         delete rqH;               // Delete tmp "Residual Quasmon Hadron"
 #ifdef cdebug
-                          G4cout<<"**G4QE::CGS:DecayIn2 CurH+ResQ d="<<ttM-chM-nnM<<G4endl;
+                         G4cout<<"**G4QE::CGS:DecayIn2 CurH+ResQ d="<<ttM-chM-nnM<<G4endl;
 #endif
-                        }
-                        else
-                        {
-                          if(chCH+reTCH-chQC.GetCharge()-nnQC.GetCharge())
+                       }
+                       else
+                       {
+                         if(chCH+reTCH-chQC.GetCharge()-nnQC.GetCharge())
 						                      G4cout<<"**G4QE::CGS:ChEx CH+RQ i="<<reTCH<<"+h="<<chCH<<", f="
-                                  <<nnQC.GetCharge()<<"+o="<<chQC.GetCharge()<<G4endl;
-                          curHadr->Set4Momentum(ch4M);// Change 4M of the Current Hadron
-                          curHadr->SetQPDG(chQPDG);   // Change QPDG of the Current Hadron
-                          rqH->Set4Momentum(quas4M);  // Fill 4M of the GS Residual Quasmon
+                                 <<nnQC.GetCharge()<<"+o="<<chQC.GetCharge()<<G4endl;
+                         curHadr->Set4Momentum(ch4M);// Change 4M of the Current Hadron
+                         curHadr->SetQPDG(chQPDG);   // Change QPDG of the Current Hadron
+                         rqH->Set4Momentum(quas4M);  // Fill 4M of the GS Residual Quasmon
 #ifdef cdebug
-                          G4cout<<"G4QE::CGS:#"<<hd<<",h="<<ch4M<<"+rq="<<quas4M<<G4endl;
+                         G4cout<<"G4QE::CGS:#"<<hd<<",h="<<ch4M<<"+rq="<<quas4M<<G4endl;
 #endif
 #ifdef pdebug
-                          G4cout<<"G4QE::CGS:FilFr "<<nnQPDG<<quas4M<<" inAnyForm"<<G4endl;
+                         G4cout<<"G4QE::CGS:FilFr "<<nnQPDG<<quas4M<<" inAnyForm"<<G4endl;
 #endif
-                          EvaporateResidual(rqH); // Try to evaporate residual (del.eq.)
-                          if(envPDG!=90000000) theEnvironment=
-                          G4QNucleus(G4QContent(0,0,0,0,0,0),G4LorentzVector(0.,0.,0.,0.));
-                          return true;
+                         EvaporateResidual(rqH); // Try to evaporate residual (del.eq.)
+                         if(envPDG!=90000000) theEnvironment=
+                         G4QNucleus(G4QContent(0,0,0,0,0,0),G4LorentzVector(0.,0.,0.,0.));
+                         return true;
 		                      }
-                      } // End of "the Normal decay without 2 gammas"
-                    }
-                    else
+                     } // End of "the Normal decay without 2 gammas"
+                   }
+                   else
 																		  {
 #ifdef cdebug
-                      G4cout<<"**G4QE::CGS:rM+hB="<<nnM+chM<<">"<<ttM<<",B="<<chBN<<G4endl;
-#endif
-                      if(chBN>1)
-                      {
-                        G4QContent tcQC=chQC+nnQC; //QuarkCont for theTotalCompound nucleus
-                        G4QPDGCode tcQPDG(tcQC);         // QPDG for the Total Compound
-                        G4double   tcM=tcQPDG.GetMass(); // GS Mass of the TotalCompound
-                        G4QHadron* tcH = new G4QHadron(tcQPDG,tt4M);// Hadron=TotalCompound
-                        G4int tcS=tcQC.GetStrangeness();            // Total Strangeness
-                        G4int tcC=tcQC.GetCharge();                 // Total Charge
-                        G4int tcBN=tcQC.GetBaryonNumber();          // Total Baryon Number
-                        if ( tcBN == 2 || (!tcS && !tcC) || tcS == tcBN || tcC == tcBN ) //dec DiBar or MulBar
-                        {
-                          if(tcBN==2) theEnvironment.DecayDibaryon(tcH,&theQHadrons); // DB
-                          else     theEnvironment.DecayMultyBaryon(tcH,&theQHadrons); // MB
-                          G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];
-                          curHadr->Set4Momentum(theLast->Get4Momentum());//4-Mom of CurHadr
-                          G4QPDGCode lQP=theLast->GetQPDG();
-                          if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP);
-                          else curHadr->SetQC(theLast->GetQC());
-                          theQHadrons.pop_back(); // theLastQHadron is excluded from OUTPUT
-                          delete theLast;//*!!When kill, delete theLastQHadr asAnInstance!*
-                        }
-                        else if(tcM<ttM)// @@ Can't evaporate here, can only radiate gamma
+                     G4cout<<"**G4QE::CGS:rM+hB="<<nnM+chM<<">"<<ttM<<",B="<<chBN<<G4endl;
+#endif
+                     if(chBN>1)
+                     {
+                       G4QContent tcQC=chQC+nnQC; //QuarkCont for theTotalCompound nucleus
+                       G4QPDGCode tcQPDG(tcQC);         // QPDG for the Total Compound
+                       G4double   tcM=tcQPDG.GetMass(); // GS Mass of the TotalCompound
+                       G4QHadron* tcH = new G4QHadron(tcQPDG,tt4M);// Hadron=TotalCompound
+                       G4int tcS=tcQC.GetStrangeness();            // Total Strangeness
+                       G4int tcC=tcQC.GetCharge();                 // Total Charge
+                       G4int tcBN=tcQC.GetBaryonNumber();          // Total Baryon Number
+                       if ( tcBN == 2 || (!tcS && !tcC) || tcS == tcBN || tcC == tcBN ) //dec DiBar or MulBar
+                       {
+                         if(tcBN==2) theEnvironment.DecayDibaryon(tcH,&theQHadrons); // DB
+                         else     theEnvironment.DecayMultyBaryon(tcH,&theQHadrons); // MB
+                         G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];
+                         curHadr->Set4Momentum(theLast->Get4Momentum());//4-Mom of CurHadr
+                         G4QPDGCode lQP=theLast->GetQPDG();
+                         if(lQP.GetPDGCode()!=10) curHadr->SetQPDG(lQP);
+                         else curHadr->SetQC(theLast->GetQC());
+                         theQHadrons.pop_back(); // theLastQHadron is excluded from OUTPUT
+                         delete theLast;//*!!When kill, delete theLastQHadr asAnInstance!*
+                       }
+                       else if(tcM<ttM)// @@ Can't evaporate here, can only radiate gamma
 																						  {
-                          G4LorentzVector tc4M=G4LorentzVector(0.,0.,0.,tcM);//4M of TotCom
-                          G4LorentzVector gc4M=G4LorentzVector(0.,0.,0.,0.); //4M of gamma
-                          if(!G4QHadron(tt4M).DecayIn2(tc4M,gc4M))
-                          {
-                            delete tcH;                 // Delete tmp TotalCompoundHadron
-                            curHadr->Set4Momentum(tt4M);// Change 4M of the Current Hadron
-                            curHadr->SetQPDG(tcQPDG);   // Change QPDG of theCurrentHadron
+                         G4LorentzVector tc4M=G4LorentzVector(0.,0.,0.,tcM);//4M of TotCom
+                         G4LorentzVector gc4M=G4LorentzVector(0.,0.,0.,0.); //4M of gamma
+                         if(!G4QHadron(tt4M).DecayIn2(tc4M,gc4M))
+                         {
+                           delete tcH;                 // Delete tmp TotalCompoundHadron
+                           curHadr->Set4Momentum(tt4M);// Change 4M of the Current Hadron
+                           curHadr->SetQPDG(tcQPDG);   // Change QPDG of theCurrentHadron
 #ifdef cdebug
-                            G4cout<<"**G4QE::CGS:DecayIn2 TotComp+gam d="<<ttM-tcM<<G4endl;
-#endif
-                          }
-                          else
-                          {
-                            curHadr->Set4Momentum(gc4M);//Change 4Mom of the Current Hadron
-                            curHadr->SetQPDG(gamQPDG);//Change PDG of theCurHadron to gamma
-                            tcH->Set4Momentum(tc4M); // Fill 4-Mom of the GS Total Compound
+                           G4cout<<"**G4QE::CGS:DecayIn2 TotComp+gam d="<<ttM-tcM<<G4endl;
+#endif
+                         }
+                         else
+                         {
+                           curHadr->Set4Momentum(gc4M);//Change 4Mom of the Current Hadron
+                           curHadr->SetQPDG(gamQPDG);//Change PDG of theCurHadron to gamma
+                           tcH->Set4Momentum(tc4M); // Fill 4-Mom of the GS Total Compound
 #ifdef cdebug
-                            G4cout<<"G4QE::CGS:#"<<hd<<",ch="<<ch4M<<"+t4M="<<tc4M<<G4endl;
+                           G4cout<<"G4QE::CGS:#"<<hd<<",ch="<<ch4M<<"+t4M="<<tc4M<<G4endl;
 #endif
 #ifdef pdebug
-                            G4cout<<"G4QE::CGS:FilTC "<<tcQPDG<<tc4M<<" inAnyForm"<<G4endl;
+                           G4cout<<"G4QE::CGS:FilTC "<<tcQPDG<<tc4M<<" inAnyForm"<<G4endl;
 #endif
-                            EvaporateResidual(tcH); // Try to evaporate(d.e.)
+                           EvaporateResidual(tcH); // Try to evaporate(d.e.)
 		                        }
-                        }
+                       }
 																						  else // @@ Fill the TotalCompound instead of the CurrentHadron @@
 																						  {
 #ifdef cdebug
-                          G4cout<<"G4QE::CGS:**CEF,M="<<tcM<<">"<<ttM<<",B="<<chBN<<G4endl;
-#endif
-                          delete tcH;                  // Delete tmp "TotalCompound"
-                          curHadr->Set4Momentum(tt4M); // Change 4Mom of the Current Hadron
-                          curHadr->SetQPDG(tcQPDG);    // Change QPDG of the Current Hadron
-                        }
-                        return true;
-                      } // Check that the residual is a nucleus, not just a nucleon
-                    } // Check if pion can still be radiated or must be absorbed
-                  } // Check that the iso-exchange could help
-                } // End of the IF: KINEMATIC CHECK FOR THE CURRENT HADRON(Isonuclear Case)
-                else if(norN)
+                         G4cout<<"G4QE::CGS:**CEF,M="<<tcM<<">"<<ttM<<",B="<<chBN<<G4endl;
+#endif
+                         delete tcH;                  // Delete tmp "TotalCompound"
+                         curHadr->Set4Momentum(tt4M); // Change 4Mom of the Current Hadron
+                         curHadr->SetQPDG(tcQPDG);    // Change QPDG of the Current Hadron
+                       }
+                       return true;
+                     } // Check that the residual is a nucleus, not just a nucleon
+                   } // Check if pion can still be radiated or must be absorbed
+                 } // Check that the iso-exchange could help
+               } // End of the IF: KINEMATIC CHECK FOR THE CURRENT HADRON(Isonuclear Case)
+               else if(norN)
 		              {
-                  if(resSMa+chM<ttM)          // PANIC can be resolved with this CurHadron
+                 if(resSMa+chM<ttM)          // PANIC can be resolved with this CurHadron
 			               {
-                    G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resSMa);// GSMass ofQ
-                    G4QHadron* rqH = new G4QHadron(reTQC,quas4M);// Prototype OutputResidQ
-                    if(!G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
-                    {
-                      delete rqH;                   // Delete tmp "Residual Quasmon Hadron"
+                   G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resSMa);// GSMass ofQ
+                   G4QHadron* rqH = new G4QHadron(reTQC,quas4M);// Prototype OutputResidQ
+                   if(!G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
+                   {
+                     delete rqH;                   // Delete tmp "Residual Quasmon Hadron"
 #ifdef cdebug
-                      G4cout<<"***G4QE::CheckGS:Decay in CurH+ResQ dM="<<ttM-chM<<G4endl;
+                     G4cout<<"***G4QE::CheckGS:Decay in CurH+ResQ dM="<<ttM-chM<<G4endl;
 #endif
-                    }
-                    else
-                    {
-                      curHadr->Set4Momentum(ch4M);  // Change 4M of the Current Hadron
-                      rqH->Set4Momentum(quas4M);    // Fill 4M of the GS Residual Quasmon
+                   }
+                   else
+                   {
+                     curHadr->Set4Momentum(ch4M);  // Change 4M of the Current Hadron
+                     rqH->Set4Momentum(quas4M);    // Fill 4M of the GS Residual Quasmon
 #ifdef cdebug
-                      G4cout<<"G4QEnv::CheckGS:#"<<hd<<",ch4M="<<curHadr->GetPDGCode()
-                            <<ch4M<<" + ResQ4M="<<totPDG<<quas4M<<G4endl;
+                     G4cout<<"G4QEnv::CheckGS:#"<<hd<<",ch4M="<<curHadr->GetPDGCode()
+                           <<ch4M<<" + ResQ4M="<<totPDG<<quas4M<<G4endl;
 #endif
 #ifdef pdebug
-                      G4cout<<"G4QE::CGS:Fill GSRes "<<reTQC<<quas4M<<" inAnyForm"<<G4endl;
+                     G4cout<<"G4QE::CGS:Fill GSRes "<<reTQC<<quas4M<<" inAnyForm"<<G4endl;
 #endif
-                      EvaporateResidual(rqH); // Try to evaporate(d.e.)
-                      if(envPDG!=90000000)theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0)
-                                                            ,G4LorentzVector(0.,0.,0.,0.));
-                      return true;
+                     EvaporateResidual(rqH); // Try to evaporate(d.e.)
+                     if(envPDG!=90000000)theEnvironment=G4QNucleus(G4QContent(0,0,0,0,0,0)
+                                                           ,G4LorentzVector(0.,0.,0.,0.));
+                     return true;
 		                  }
-                  } // End of the KINEMATIC CHECK FOR THE CURRENT HADRON if (NormNuclCase)
-                } // End of IsoNucleus/NormalNucleus choice
-              } // End of the NumberOfFragments=0 (NOT DECAYED PARTICLE) if
+                 } // End of the KINEMATIC CHECK FOR THE CURRENT HADRON if (NormNuclCase)
+               } // End of IsoNucleus/NormalNucleus choice
+             } // End of the NumberOfFragments=0 (NOT DECAYED PARTICLE) if
 			         } // End of the LOOP over hadrons and all attempts to resolve PANIC
 #ifdef cdebug
-            G4cout<<"G4QEnv::CheckGS:***Any hadron from the OUTPUT did not help"<<G4endl;
-#endif
-            force=true;
-          } // End of while for chx2g
-          if(resB>1)
-          {
-            G4int hind=-1;
-            if(npiz>-1) hind=npiz;
-            else
+           G4cout<<"G4QEnv::CheckGS:***Any hadron from the OUTPUT did not help"<<G4endl;
+#endif
+           force=true;
+         } // End of while for chx2g
+         if(resB>1)
+         {
+           G4int hind=-1;
+           if(npiz>-1) hind=npiz;
+           else
 												{
-              if(resC+resC>resB && npim>-1) hind=npim;
-              else                          hind=npip;
-            }
-            if(hind>-1)
+             if(resC+resC>resB && npim>-1) hind=npim;
+             else                          hind=npip;
+           }
+           if(hind>-1)
 												{
-              G4QHadron* curHadr = theQHadrons[hind];
-              G4int chNF=curHadr->GetNFragments();
-              if(!chNF)
-              {
-                G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4Mom of the Current Hadron
-                G4LorentzVector tt4M=ch4M+reTLV; // resSMa=GSMass of the ResidQuasmon(+Env)
-                G4double        ttM=tt4M.m();    // TotalMass of CurHadr+Residual compaund
-                G4QContent      ttQC=valQ+curHadr->GetQC(); // total Quark Content
-                G4int           ttPDG=ttQC.GetZNSPDGCode();
-                G4QPDGCode      ttQPDG(ttPDG);
-                G4double        ttGSM=ttQPDG.GetMass();
-                if(ttM>ttGSM && ttQC.GetStrangeness()>0)//Hypernucleus can be L->N degraded
-                {
-                  ttPDG-=ttQC.GetStrangeness()*999999; // S Neutrons instead of S Lambdas
-                  ttQPDG=G4QPDGCode(ttPDG);            // Update QPDGcode defining fragment
-                  ttGSM=ttQPDG.GetMass();              // Update the degraded mass value
-#ifdef pdebug
-                  G4cout<<"G4QEnv::CheckGS:Hypernucleus degraded to QPDG="<<ttQPDG<<G4endl;
-#endif
-                }
-                if(ttM>ttGSM)   // Decay of Pi0 in 2 gammas with the residual nucleus
-                {
+             G4QHadron* curHadr = theQHadrons[hind];
+             G4int chNF=curHadr->GetNFragments();
+             if(!chNF)
+             {
+               G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4Mom of the Current Hadron
+               G4LorentzVector tt4M=ch4M+reTLV; // resSMa=GSMass of the ResidQuasmon(+Env)
+               G4double        ttM=tt4M.m();    // TotalMass of CurHadr+Residual compaund
+               G4QContent      ttQC=valQ+curHadr->GetQC(); // total Quark Content
+               G4int           ttPDG=ttQC.GetZNSPDGCode();
+               G4QPDGCode      ttQPDG(ttPDG);
+               G4double        ttGSM=ttQPDG.GetMass();
+               if(ttM>ttGSM && ttQC.GetStrangeness()>0)//Hypernucleus can be L->N degraded
+               {
+                 ttPDG-=ttQC.GetStrangeness()*999999; // S Neutrons instead of S Lambdas
+                 ttQPDG=G4QPDGCode(ttPDG);            // Update QPDGcode defining fragment
+                 ttGSM=ttQPDG.GetMass();              // Update the degraded mass value
+#ifdef pdebug
+                 G4cout<<"G4QEnv::CheckGS:Hypernucleus degraded to QPDG="<<ttQPDG<<G4endl;
+#endif
+               }
+               if(ttM>ttGSM)   // Decay of Pi0 in 2 gammas with the residual nucleus
+               {
 #ifdef cdebug
-                  G4cout<<"G4QEnv::CheckGS: Decay in ResQ="<<ttQPDG<<" & 2 gammas"<<G4endl;
+                 G4cout<<"G4QEnv::CheckGS: Decay in ResQ="<<ttQPDG<<" & 2 gammas"<<G4endl;
 #endif
-                  G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,ttGSM); // GSMass of RQ
-                  G4LorentzVector fgam4M = G4LorentzVector(0.,0.,0.,0.); // 4Mom of gamma 1
-                  G4LorentzVector sgam4M = G4LorentzVector(0.,0.,0.,0.); // 4Mom of gamma 2
-                  if(!G4QHadron(tt4M).DecayIn3(quas4M,fgam4M,sgam4M))G4cout<<"*3*"<<G4endl;
-                  else
+                 G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,ttGSM); // GSMass of RQ
+                 G4LorentzVector fgam4M = G4LorentzVector(0.,0.,0.,0.); // 4Mom of gamma 1
+                 G4LorentzVector sgam4M = G4LorentzVector(0.,0.,0.,0.); // 4Mom of gamma 2
+                 if(!G4QHadron(tt4M).DecayIn3(quas4M,fgam4M,sgam4M))G4cout<<"*3*"<<G4endl;
+                 else
 																		{
-                    curHadr->Set4Momentum(fgam4M); // Change 4M of the Pion to Gamma
-                    curHadr->SetQPDG(gamQPDG);      // Change QPDG of the Pion to Gamma
-                    G4QHadron* sgH = new G4QHadron(gamQPDG,sgam4M); // Gamma 2
-                    theQHadrons.push_back(sgH); // Fill Gamma 2 as QHadron (del. eq.)
-                    G4QHadron* rqH = new G4QHadron(ttQPDG,quas4M); // GSResidualQuasmon
-                    theQHadrons.push_back(rqH); // Fill GSResidQuasmon as QHadron (del.eq.)
-                    return true;
-                  }
-                }
-                else G4cout<<"**G4QEnv::CheckGS:M="<<ttM<<" < GSM="<<ttGSM<<ttQPDG<<G4endl;
-              }
-            }
-          }
-          return false;
-        } // End of the KINEMATIC LIMIT FOR THE L&P CORRECTION if/else (try any hadron)
+                   curHadr->Set4Momentum(fgam4M); // Change 4M of the Pion to Gamma
+                   curHadr->SetQPDG(gamQPDG);      // Change QPDG of the Pion to Gamma
+                   G4QHadron* sgH = new G4QHadron(gamQPDG,sgam4M); // Gamma 2
+                   theQHadrons.push_back(sgH); // Fill Gamma 2 as QHadron (del. eq.)
+                   G4QHadron* rqH = new G4QHadron(ttQPDG,quas4M); // GSResidualQuasmon
+                   theQHadrons.push_back(rqH); // Fill GSResidQuasmon as QHadron (del.eq.)
+                   return true;
+                 }
+               }
+               else G4cout<<"**G4QEnv::CheckGS:M="<<ttM<<" < GSM="<<ttGSM<<ttQPDG<<G4endl;
+             }
+           }
+         }
+         return false;
+       } // End of the KINEMATIC LIMIT FOR THE L&P CORRECTION if/else (try any hadron)
 	     } // End of the POSSIBILITY OF PREV+LAST (OR MORE) CORRECTION if
-      else return false;
-    } // End of the CORRECTION WITH THE LAST if/else
-  } // End of the CORRECTION IS POSSIBLE if
-  else return false;                     // Correction can not be done
-  return true;                           // If correction was done successfully
+     else return false;
+   } // End of the CORRECTION WITH THE LAST if/else
+ } // End of the CORRECTION IS POSSIBLE if
+ else return false;                     // Correction can not be done
+ return true;                           // If correction was done successfully
 } // End of "CheckGroundState"
 
 // Try to decay the Total Residual Nucleus in Environ+Quasmon
 void G4QEnvironment::CopyAndDeleteHadronVector(G4QHadronVector* HV)
 { // ==============================================================
-  G4int nHadrons = HV->size();
-  if(nHadrons)
-  {
-    for(G4int ih=0; ih<nHadrons; ih++) // LOOP over output QHadrons
-    {
-      //G4QHadron* inH = HV->operator[](ih);         // Pointer to the i-th QHadron
-      G4QHadron* inH = (*HV)[ih];                  // Pointer to the i-th QHadron
-      G4int hNF  = inH->GetNFragments();           // A#of secondary fragments
-      if(!hNF)                                     // Fill only final hadrons
-      {
+ G4int nHadrons = HV->size();
+ if(nHadrons)
+ {
+   for(G4int ih=0; ih<nHadrons; ih++) // LOOP over output QHadrons
+   {
+     //G4QHadron* inH = HV->operator[](ih);         // Pointer to the i-th QHadron
+     G4QHadron* inH = (*HV)[ih];                  // Pointer to the i-th QHadron
+     G4int hNF  = inH->GetNFragments();           // A#of secondary fragments
+     if(!hNF)                                     // Fill only final hadrons
+     {
 #ifdef pdebug
 	       G4cout<<"G4QEnv::Copy&DeleteHV:#"<<ih<<", hPDG="<<inH->GetPDGCode()<<G4endl;
 #endif
-        G4QHadron* curH = new G4QHadron(inH);      // will be deleted with allQHadronVector
-        theQHadrons.push_back(curH);               // Fill hadron-copy (delete equivalent)
-      }
-    }
-    for_each(HV->begin(), HV->end(), DeleteQHadron()); // Delete instances
-    HV->clear();                                       // Delete pointers
-  }
+       G4QHadron* curH = new G4QHadron(inH);      // will be deleted with allQHadronVector
+       theQHadrons.push_back(curH);               // Fill hadron-copy (delete equivalent)
+     }
+   }
+   for_each(HV->begin(), HV->end(), DeleteQHadron()); // Delete instances
+   HV->clear();                                       // Delete pointers
+ }
 #ifdef pdebug
-  else G4cout<<"***G4QEnv::Kopy&DelHV: No hadrons in the QHadronVector"<<G4endl;
+ else G4cout<<"***G4QEnv::Kopy&DelHV: No hadrons in the QHadronVector"<<G4endl;
 #endif
-  delete HV;                                       // Delete the inputQHadronVector
+ delete HV;                                       // Delete the inputQHadronVector
 } // End of "CopyAndDeleteHadronVector"
 
 // Try to decay the Total Residual Nucleus in Environ+Quasmon
 G4bool G4QEnvironment::DecayInEnvQ(G4Quasmon* quasm)
 { //   =============================================
-  G4QContent valQ=quasm->GetQC();                 // Quark content of the Quasmon
-  G4int    resQPDG=valQ.GetSPDGCode();            // Reachable in a member function
-  if(resQPDG==10&&valQ.GetBaryonNumber()>0) resQPDG=valQ.GetZNSPDGCode();
-  G4double resQMa=G4QPDGCode(resQPDG).GetMass();  // GS Mass of the Residual Quasmon
-  G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.);
-  G4LorentzVector reTLV=quasm->Get4Momentum();    // Prototyoe of the 4-Mom of the ResidNuc
-  G4double resSMa=resQMa;                         // Prototype of MinSplitMass of ResidNucl
-  G4int envPDG=theEnvironment.GetPDG();           // PDG Code of the Environment
-  if(envPDG!=90000000)                            // => "Environment is not vacuum" case
-  {
-    G4double resEMa=theEnvironment.GetMZNS();     // GSMass of the Residual Environment
-    enva4M=G4LorentzVector(0.,0.,0.,resEMa);      // 4-Mom of the Residual Environment
-    reTLV+=enva4M;                                // 4-Mom of Residual Nucleus
-    resSMa+=resEMa;                               // Minimal Split Mass of Residual Nucleus
-    G4double resTMa=reTLV.m();                    // CM Mass of theResidNucleus (Quasm+Env)
+ G4QContent valQ=quasm->GetQC();                 // Quark content of the Quasmon
+ G4int    resQPDG=valQ.GetSPDGCode();            // Reachable in a member function
+ if(resQPDG==10&&valQ.GetBaryonNumber()>0) resQPDG=valQ.GetZNSPDGCode();
+ G4double resQMa=G4QPDGCode(resQPDG).GetMass();  // GS Mass of the Residual Quasmon
+ G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.);
+ G4LorentzVector reTLV=quasm->Get4Momentum();    // Prototyoe of the 4-Mom of the ResidNuc
+ G4double resSMa=resQMa;                         // Prototype of MinSplitMass of ResidNucl
+ G4int envPDG=theEnvironment.GetPDG();           // PDG Code of the Environment
+ if(envPDG!=90000000)                            // => "Environment is not vacuum" case
+ {
+   G4double resEMa=theEnvironment.GetMZNS();     // GSMass of the Residual Environment
+   enva4M=G4LorentzVector(0.,0.,0.,resEMa);      // 4-Mom of the Residual Environment
+   reTLV+=enva4M;                                // 4-Mom of Residual Nucleus
+   resSMa+=resEMa;                               // Minimal Split Mass of Residual Nucleus
+   G4double resTMa=reTLV.m();                    // CM Mass of theResidNucleus (Quasm+Env)
 	//#ifdef pdebug
-    G4cout<<"G4QEnv::DecayInEnvQ: totM="<<reTLV<<resTMa<<" > rQM+rEM="<<resSMa<<G4endl;
+   G4cout<<"G4QEnv::DecayInEnvQ: totM="<<reTLV<<resTMa<<" > rQM+rEM="<<resSMa<<G4endl;
 	//#endif
-    if(resTMa>resSMa)
-    {
-      G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon
-      G4QHadron* quasH = new G4QHadron(valQ, quas4M);
-      G4QHadron* envaH = new G4QHadron(envPDG, enva4M);
-      if(!G4QHadron(reTLV).DecayIn2(enva4M,quas4M))
-      {
-        delete quasH;                             // Delete "Quasmon Hadron"
-        delete envaH;                             // Delete "Environment Hadron"
-        G4cout<<"---Warning---G4Q::DecInEnvQ:Decay in Environment+ResidualQuasmon"<<G4endl;
-        return false;
-      }
-      else
-      {
-        quasH->Set4Momentum(quas4M);
-        EvaporateResidual(quasH);                // Try to evaporate quasmon (del. equiv.)
-        envaH->Set4Momentum(enva4M);
-        EvaporateResidual(envaH);                // Try to evaporate residual (del. equiv.)
+   if(resTMa>resSMa)
+   {
+     G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon
+     G4QHadron* quasH = new G4QHadron(valQ, quas4M);
+     G4QHadron* envaH = new G4QHadron(envPDG, enva4M);
+     if(!G4QHadron(reTLV).DecayIn2(enva4M,quas4M))
+     {
+       delete quasH;                             // Delete "Quasmon Hadron"
+       delete envaH;                             // Delete "Environment Hadron"
+       G4cout<<"---Warning---G4Q::DecInEnvQ:Decay in Environment+ResidualQuasmon"<<G4endl;
+       return false;
+     }
+     else
+     {
+       quasH->Set4Momentum(quas4M);
+       EvaporateResidual(quasH);                // Try to evaporate quasmon (del. equiv.)
+       envaH->Set4Momentum(enva4M);
+       EvaporateResidual(envaH);                // Try to evaporate residual (del. equiv.)
 	     }
-    }
-    else return false;
-  }
-  else return false;                              // => "Environment is vacuum" case
-  return true;
+   }
+   else return false;
+ }
+ else return false;                              // => "Environment is vacuum" case
+ return true;
 } // End of "DecayInEnvQ"
 
 // Add a Quasmon to the Environment
 void G4QEnvironment::AddQuasmon(G4Quasmon* Q)
 { // ========================================
-  theQuasmons.push_back(Q);
-  totCharge+=Q->GetCharge();
-  totBaryoN+=Q->GetBaryonNumber();
-  tot4Mom  +=Q->Get4Momentum();
+ theQuasmons.push_back(Q);
+ totCharge+=Q->GetCharge();
+ totBaryoN+=Q->GetBaryonNumber();
+ tot4Mom  +=Q->Get4Momentum();
 #ifdef debug
 		G4cout<<"G4QEnv::AddQuasmon:t4M="<<tot4Mom<<",tC="<<totCharge<<",tB="<<totBaryoN<<G4endl;
 #endif
@@ -8559,35 +8605,35 @@ void G4QEnvironment::AddQuasmon(G4Quasmon* Q)
 //General function makes Random Unit 3D-Vector
 G4ThreeVector RndmDir()
 {//  -------- =========
-  G4double x = G4UniformRand(), y = G4UniformRand(), z = G4UniformRand();
-  G4double r2= x*x+y*y+z*z;
-  while(r2>1.||r2<.000001)
-  {
-    x = G4UniformRand(); y = G4UniformRand(); z = G4UniformRand();
-    r2=x*x+y*y+z*z;
-  }
-  G4double r=sqrt(r2), quad=G4UniformRand();
-  if(quad>0.5)
-  {
-    if(quad>0.75)
-    {
-      if(quad>0.875)    return G4ThreeVector(-x/r,-y/r,-z/r);
-      else              return G4ThreeVector(-x/r,-y/r, z/r);
+ G4double x = G4UniformRand(), y = G4UniformRand(), z = G4UniformRand();
+ G4double r2= x*x+y*y+z*z;
+ while(r2>1.||r2<.000001)
+ {
+   x = G4UniformRand(); y = G4UniformRand(); z = G4UniformRand();
+   r2=x*x+y*y+z*z;
+ }
+ G4double r=sqrt(r2), quad=G4UniformRand();
+ if(quad>0.5)
+ {
+   if(quad>0.75)
+   {
+     if(quad>0.875)    return G4ThreeVector(-x/r,-y/r,-z/r);
+     else              return G4ThreeVector(-x/r,-y/r, z/r);
 	   }
-    else
-    {
-      if(quad>0.625)    return G4ThreeVector(-x/r, y/r,-z/r);
-      else              return G4ThreeVector(-x/r, y/r, z/r);
+   else
+   {
+     if(quad>0.625)    return G4ThreeVector(-x/r, y/r,-z/r);
+     else              return G4ThreeVector(-x/r, y/r, z/r);
 	   }
-  }
-  else
-  {
-    if(quad>0.25)
-    {
-      if(quad>0.375)    return G4ThreeVector( x/r,-y/r,-z/r);
-      else              return G4ThreeVector( x/r,-y/r, z/r);
+ }
+ else
+ {
+   if(quad>0.25)
+   {
+     if(quad>0.375)    return G4ThreeVector( x/r,-y/r,-z/r);
+     else              return G4ThreeVector( x/r,-y/r, z/r);
 	   }
-    else if(quad>0.125) return G4ThreeVector( x/r, y/r,-z/r);
-  }
-  return                       G4ThreeVector( x/r, y/r, z/r);
+   else if(quad>0.125) return G4ThreeVector( x/r, y/r,-z/r);
+ }
+ return                       G4ThreeVector( x/r, y/r, z/r);
 } // End of RndmDir
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/History b/source/processes/hadronic/models/chiral_inv_phase_space/interface/History
index aa13d83eaf..c584a0decf 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/History
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/History
@@ -12,6 +12,13 @@ code and to keep track of all tags.
      * Please list in reverse chronological order (last date on top)
      ---------------------------------------------------------------
 
+13-Sep-2010 A.Dotti                        (hadr-chips-inter-V09-01-12)
+-----------------------------------------------------------------------
+- Fix in G4ChiralInvariantPhaseSpace to catch previously un-handled exceptions
+  produced when a 'chipolino' pseudo-particle is produced by the model and
+  thrown by Q4QEnvironment::Fragment; handles the case in which Q4QEnvironment
+  returns a 90000000 fragment, and converts it to a gamma.
+  Addressing problem report #1138.
 
 06-Oct-2009 G.Cosmo (hadr-chips-inter-V09-01-11)
 ------------------------------------------------
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ElectroNuclearReaction.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ElectroNuclearReaction.hh
index 34448fb0b0..433f4d32c0 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ElectroNuclearReaction.hh
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ElectroNuclearReaction.hh
@@ -26,7 +26,7 @@
 //
 //
 // $Id: G4ElectroNuclearReaction.hh,v 1.25.2.1 2009/03/03 13:32:37 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // GEANT4 physics class: G4ElectroNuclearReaction -- header file
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4ChiralInvariantPhaseSpace.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4ChiralInvariantPhaseSpace.cc
index a31e72404f..d792d19a2d 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4ChiralInvariantPhaseSpace.cc
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4ChiralInvariantPhaseSpace.cc
@@ -24,7 +24,12 @@
 // ********************************************************************
 //
 
-//
+// Modified:
+// 24.08.10 A. Dotti (andrea.dotti@cern.ch) handle exceptions
+//          thrown by Q4QEnvironment::Fragment retying interaction
+// 17.06.10 A. Dotti (andrea.dotti@cern.ch) handle case in which 
+//          Q4QEnvironment returns a 90000000 fragment (see code comments)
+
 // Created:
 // 16.01.08 V.Ivanchenko use initialization similar to other CHIPS models
 //
@@ -35,6 +40,7 @@
 #include "G4DynamicParticle.hh"
 #include "G4IonTable.hh"
 #include "G4Neutron.hh"
+#include "G4Gamma.hh"
 
 G4ChiralInvariantPhaseSpace::G4ChiralInvariantPhaseSpace()
 {}
@@ -103,28 +109,48 @@ G4HadFinalState * G4ChiralInvariantPhaseSpace::ApplyYourself(
   G4QHadronVector projHV;
   G4QHadron* iH = new G4QHadron(projectilePDGCode, 1./MeV*proj4Mom);
   projHV.push_back(iH);
-  G4QEnvironment* pan= new G4QEnvironment(projHV, targetPDGCode);
-  //G4Quasmon* pan= new G4Quasmon(projectilePDGCode, targetPDGCode, 1./MeV*proj4Mom, 1./MeV*targ4Mom, nop);
+
+  //AND
+  //A. Dotti 24 Aug. : Trying to handle situation when G4QEnvironment::Fragment throws an exception
+  //                   Seen by ATLAS for gamma+Nuclear interaction for Gamma@2.4GeV on Al
+  //                   The poor-man solution here is to re-try interaction if a G4QException is catched
+  //                   Warning: G4QExcpetion does NOT inherit from base class G4HadException
   G4QHadronVector* output=0;
-  try
-  {
-    output = pan->Fragment();
-  }
-  catch(G4HadronicException & aR)
-  {
-    G4cerr << "Exception thrown passing through G4ChiralInvariantPhaseSpace "<<G4endl;
-    G4cerr << " targetPDGCode = "<< targetPDGCode <<G4endl;
-    G4cerr << " Dumping the information in the pojectile list"<<G4endl;
-    for(size_t i=0; i< projHV.size(); i++)
+
+  bool retry=true;
+  int retryes=0;
+  int maxretries=10;
+
+  while ( retry && retryes < maxretries ) 
     {
-      G4cerr <<"  Incoming 4-momentum and PDG code of "<<i<<"'th hadron: "
-             <<" "<< projHV[i]->Get4Momentum()<<" "<<projHV[i]->GetPDGCode()<<G4endl;
+      G4QEnvironment* pan= new G4QEnvironment(projHV, targetPDGCode);
+
+      try
+	{
+	  ++retryes;
+	  output = pan->Fragment();
+	  retry=false;//If here, Fragment did not throw! (AND)
+	}
+      catch( ... )
+	{
+	  G4cerr << "***WARNING*** Exception thrown passing through G4ChiralInvariantPhaseSpace "<<G4endl;
+	  G4cerr << " targetPDGCode = "<< targetPDGCode <<G4endl;
+	  G4cerr << " Dumping the information in the pojectile list"<<G4endl;
+	  for(size_t i=0; i< projHV.size(); i++)
+	    {
+	      G4cerr <<"  Incoming 4-momentum and PDG code of "<<i<<"'th hadron: "
+		     <<" "<< projHV[i]->Get4Momentum()<<" "<<projHV[i]->GetPDGCode()<<G4endl;
+	    }
+	  G4cerr << "Retrying interaction "<<G4endl; //AND
+	  //throw; //AND
+	}
+      delete pan;
+    } //AND
+  if ( retryes >= maxretries ) //AND
+    {
+      G4cerr << "***ERROR*** Maximum number of retries ("<<maxretries<<") reached for G4QEnvironment::Fragment(), exception is being thrown" << G4endl;
+      throw G4HadronicException(__FILE__,__LINE__,"G4ChiralInvariantPhaseSpace::ApplyYourself(...) - Maximum number of re-tries reached, abandon interaction");
     }
-    throw;
-  }
-  std::for_each(projHV.begin(), projHV.end(), DeleteQHadron());
-  projHV.clear();
-  delete pan;
   
   // Fill the particle change.
   G4DynamicParticle * theSec;
@@ -132,6 +158,8 @@ G4HadFinalState * G4ChiralInvariantPhaseSpace::ApplyYourself(
   G4cout << "G4ChiralInvariantPhaseSpace: NEW EVENT #ofHadrons="
 	 <<output->size()<<G4endl;
 #endif
+
+
   unsigned int particle;
   for( particle = 0; particle < output->size(); particle++)
   {
@@ -159,17 +187,62 @@ G4HadFinalState * G4ChiralInvariantPhaseSpace::ApplyYourself(
       theDefinition = G4ParticleTable::GetParticleTable()->FindIon(aZ,anN+aZ,0,aZ);
       if(aZ == 0 && anN == 1) theDefinition = G4Neutron::Neutron();
     }
+    //AND
+    else if ( pdgCode == 90000000 && output->operator[](particle)->Get4Momentum().m()<1*MeV )
+      {
+	//A. Dotti: 
+	//We cure the case the model returns a (A,Z)=0,0 G4QHadron with a very small mass
+	//We convert this to a gamma. According to the author of the model this is the 
+	//correct thing to do and it is done also in other parts of the CHIPS package
+	theDefinition = G4Gamma::Gamma();
+      }
+    //AND
     else
     {
       theDefinition = G4ParticleTable::GetParticleTable()
 	->FindParticle(output->operator[](particle)->GetPDGCode());
     }
+
+    //AND
+    //A. Dotti: Handle problematic cases in which one of the products has not been recognized
+    //          This should never happen but we want to add an extra-protection
+    if ( theDefinition == NULL )
+      {
+	//If we arrived here something bad really happened. We do not know how to handle the products of the interaction, we give up, resetting the 
+	//result and keeping the primary alive.
+	G4cerr<<"**WARNING*** G4ChiralInvariantPhaseSpace::ApplyYourself(...) : G4QEnvironment::Fragment() returns an invalid fragment\n with fourMom(MeV)=";
+	G4cerr<<output->operator[](particle)->Get4Momentum()<<" and mass(MeV)="<<output->operator[](particle)->Get4Momentum().m();
+	G4cerr<<". Offending PDG is:"<<pdgCode<<" abandon interaction. \n Taget PDG was:"<<targetPDGCode<<" \n Dumping the information in the projectile list:\n";
+	for(size_t i=0; i< projHV.size(); i++)
+	  {
+	    G4cerr <<" Incoming 4-momentum and PDG code of "<<i<<"'th hadron: "
+		 <<" "<< projHV[i]->Get4Momentum()<<" "<<projHV[i]->GetPDGCode()<<"\n";
+	  }
+	G4cerr<<"\n Please report as bug \n***END OF MESSAGE***"<<G4endl;
+
+	for ( unsigned int cparticle=0 ; cparticle<output->size();++cparticle)
+	  delete output->operator[](cparticle);
+	delete output;
+	std::for_each(projHV.begin(), projHV.end(), DeleteQHadron());
+	projHV.clear();
+
+	aResult->Clear();
+	aResult->SetStatusChange(isAlive);
+	aResult->SetEnergyChange(aTrack.GetKineticEnergy());
+        aResult->SetMomentumChange(aTrack.Get4Momentum().vect().unit());
+	return aResult;
+      }
+    //AND
+
+
     theSec->SetDefinition(theDefinition);
     theSec->SetMomentum(output->operator[](particle)->Get4Momentum().vect());
     aResult->AddSecondary(theSec); 
     delete output->operator[](particle);
   }
   delete output;
+  std::for_each(projHV.begin(), projHV.end(), DeleteQHadron());
+  projHV.clear();
   return aResult;
 }
 
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc
index 49fca29f73..1f4fe7ffae 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4QCaptureAtRest.cc,v 1.18.2.1 2009/03/03 13:32:37 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //      ---------------- G4QCaptureAtRest class -----------------
 //                 by Mikhail Kossov, December 2003.
diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QElasticCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QElasticCrossSection.cc
index 016ca81f8e..8c5025538f 100644
--- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QElasticCrossSection.cc
+++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QElasticCrossSection.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4QElasticCrossSection.cc,v 1.36.2.1 2010/01/26 15:26:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // G4 Physics class: G4QElasticCrossSection for N+A elastic cross sections
diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4HadronElastic.hh b/source/processes/hadronic/models/coherent_elastic/include/G4HadronElastic.hh
index f2fd56105a..dc9f6ec595 100644
--- a/source/processes/hadronic/models/coherent_elastic/include/G4HadronElastic.hh
+++ b/source/processes/hadronic/models/coherent_elastic/include/G4HadronElastic.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4HadronElastic.hh,v 1.27.2.1 2010/01/26 15:03:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // G4 Model: Low energy elastic scattering with 4-momentum balance 
diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4HadronElastic.cc b/source/processes/hadronic/models/coherent_elastic/src/G4HadronElastic.cc
index 7be27542db..fb091ddf17 100644
--- a/source/processes/hadronic/models/coherent_elastic/src/G4HadronElastic.cc
+++ b/source/processes/hadronic/models/coherent_elastic/src/G4HadronElastic.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronElastic.cc,v 1.61.2.1 2010/01/26 15:03:49 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // Physics model class G4HadronElastic (derived from G4LElastic)
diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc
index d64a61982f..80f3672603 100644
--- a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc
+++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4FissionProbability.cc,v 1.8.4.1 2009/03/03 13:22:52 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh
index 4768ea31d7..2f11147851 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronGilbertPairingCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh
index 8a72126a55..cea307668a 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronGilbertShellCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh
index 91d7251454..684aa455a8 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronShellPlusPairingCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh
index cdd10a892f..b11681803d 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh
index b445de8e7e..5143b8d9c3 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronTruranHilfShellCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh
index 1d5e6498de..789c12eb1c 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ConstantLevelDensityParameter.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations (photon evaporation)
 // by C. Dallapiccola (Nov 1998) 
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh
index ea164e841e..2657e4ec16 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CookPairingCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh
index 8dec293071..1086270d0b 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CookShellCorrections.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh
index ec2876ce67..3f8503c40b 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CoulombBarrier.hh,v 1.5.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh
index 7358db2512..ae35e61fba 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4DeuteronCoulombBarrier.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh
index ed57e1fccd..e53dd92c04 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4EvaporationLevelDensityParameter.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998) 
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh
index f70f4f9562..0c3aeb849a 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4He3CoulombBarrier.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh
index e0fe8bd9f4..c4ff659203 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4NeutronCoulombBarrier.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh
index 21f068591c..82b03c52b3 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PairingCorrection.hh,v 1.5.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh
index aebb429f50..d788a142d5 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ProtonCoulombBarrier.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh
index 1c10e97580..668d13bbfb 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ShellCorrection.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh
index d4311b96cd..4abe8e75b0 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4TritonCoulombBarrier.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh
index 0302bcaee2..eb36dc5620 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VCoulombBarrier.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Nov 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh
index 6cee535c94..785e7dd892 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VEmissionProbability.hh,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998) 
diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh
index 9164b9722e..4f60a21160 100644
--- a/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh
+++ b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VLevelDensityParameter.hh,v 1.5.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998) 
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc
index ad170a1663..1d9ad5c078 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronGilbertPairingCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc
index 902a5eceb4..727d9f6e0f 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronGilbertShellCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc
index 9ecbff27ca..105371236b 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronShellPlusPairingCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc
index 370303d59f..1132d59e6d 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc
index fd6677fc04..56ff9dea7f 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CameronTruranHilfShellCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc
index 195cb88d3b..506c6c6104 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CookPairingCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc
index 640db7e3a3..51b32945f2 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CookShellCorrections.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc
index c46475aa8d..516dea68a4 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4CoulombBarrier.cc,v 1.8.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc
index 4fd75999d9..7a47b9c877 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4EvaporationLevelDensityParameter.cc,v 1.8.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998)
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc
index ac2f2382d4..9d9e190f74 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PairingCorrection.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc
index 537b002f7a..5d2f249392 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ShellCorrection.cc,v 1.4.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc
index a3088aee93..6eed5b3a1e 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VCoulombBarrier.cc,v 1.6.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Dec 1999)
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc
index b88f4be178..360cfb829d 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VEmissionProbability.cc,v 1.6.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998)
diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc
index cca367c536..0fe1678ede 100644
--- a/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc
+++ b/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VLevelDensityParameter.cc,v 1.5.2.1 2009/03/04 14:56:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear De-excitations
 // by V. Lara (Oct 1998)
diff --git a/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh
index 8bc7ceb098..70f5a1d1e9 100644
--- a/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh
+++ b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4HadronicInteraction.hh,v 1.8.4.1 2009/03/03 11:26:45 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Interaction  abstract base class
 // This class is the base class for the model classes.
diff --git a/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh b/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh
index 6b73f9cfb8..5d9dc47516 100644
--- a/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh
+++ b/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronicInteractionRegistry.hh,v 1.2.4.2 2010/01/26 15:37:10 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 23-Jan-2009 V.Ivanchenko make the class to be a singleton
 
diff --git a/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh b/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh
index feca7819a7..53fe8477a0 100644
--- a/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh
+++ b/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4InelasticInteraction.hh,v 1.5.4.1 2009/03/03 11:26:45 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Inelastic Interaction 
 // This class is an abstract base class, since the pure virtual
diff --git a/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc b/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc
index 77e6bf87bd..e390f98b2f 100644
--- a/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc
+++ b/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronicInteraction.cc,v 1.3.4.1 2009/03/03 11:26:45 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Interaction  base class
 // original by H.P. Wellisch
diff --git a/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc b/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc
index 713706e867..1677d89d48 100644
--- a/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc
+++ b/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4HadronicInteractionRegistry.cc,v 1.3.2.2 2010/01/26 15:37:10 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 23-Jan-2009 V.Ivanchenko make the class to be a singleton
 
diff --git a/source/processes/hadronic/models/management/src/G4InelasticInteraction.cc b/source/processes/hadronic/models/management/src/G4InelasticInteraction.cc
index 6d070a11f7..5b3d464c4c 100644
--- a/source/processes/hadronic/models/management/src/G4InelasticInteraction.cc
+++ b/source/processes/hadronic/models/management/src/G4InelasticInteraction.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4InelasticInteraction.cc,v 1.11.2.1 2009/03/03 11:26:45 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Inelastic Interaction 
 // original by H.P. Wellisch
diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh
index 517d016ea2..a7f01878ee 100644
--- a/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh
+++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VLongitudinalStringDecay.hh,v 1.6.2.1 2009/08/11 13:05:47 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 // Maxim Komogorov
 //
 // -----------------------------------------------------------------------------
diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc
index 2617f9cdf7..d84635835d 100644
--- a/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc
+++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4HadronBuilder.cc,v 1.7.2.1 2009/08/11 13:05:47 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -----------------------------------------------------------------------------
 //      GEANT 4 class implementation file
diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc
index 8999704679..552951279b 100644
--- a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc
+++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4LundStringFragmentation.cc,v 1.13.2.1 2009/08/11 13:05:47 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $ 1.8
+// GEANT4 tag $Name: geant4-09-02-patch-04 $ 1.8
 //
 // -----------------------------------------------------------------------------
 //      GEANT 4 class implementation file
diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc
index 0d81c0bbec..917f77874b 100644
--- a/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc
+++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VLongitudinalStringDecay.cc,v 1.13.2.1 2009/08/11 13:05:47 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -----------------------------------------------------------------------------
 //      GEANT 4 class implementation file
diff --git a/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4MuNuclearInteraction.cc b/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4MuNuclearInteraction.cc
index 0f08c6e5fd..c00c1f10d4 100644
--- a/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4MuNuclearInteraction.cc
+++ b/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4MuNuclearInteraction.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4MuNuclearInteraction.cc,v 1.11.2.1 2009/03/03 13:34:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // $Id: 
 // --------------------------------------------------------------
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.icc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.icc
index cfcbeed280..95fb0b67df 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.icc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.icc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PreCompoundEmission.icc,v 1.3.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // Author:         V.Lara
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh
index d594e031b6..7ab2f08214 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundFragmentVector.hh,v 1.4.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear Preequilibrium
 // by V. Lara
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh
index 07f69fef1a..9e67cb93b9 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VPreCompoundFragment.hh,v 1.8.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // J. M. Quesada (August 2008).  
 // Based  on previous work by V. Lara
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundAlpha.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundAlpha.cc
index ab61724af6..9210e07be0 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundAlpha.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundAlpha.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundAlpha.cc,v 1.1.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundDeuteron.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundDeuteron.cc
index 6bf33daee2..565ec623be 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundDeuteron.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundDeuteron.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PreCompoundDeuteron.cc,v 1.1.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc
index 04f026da98..d21c7b2cee 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundEmission.cc,v 1.16.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc
index a9b7990a83..92953587e0 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PreCompoundFragment.cc,v 1.6.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // J. M. Quesada (August 2008).  
 // Based  on previous work by V. Lara
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc
index 93fed70282..7cf5c6c887 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PreCompoundFragmentVector.cc,v 1.7.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Hadronic Process: Nuclear Preequilibrium
 // by V. Lara 
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundHe3.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundHe3.cc
index 4fdd4ae3da..db01d3f71a 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundHe3.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundHe3.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundHe3.cc,v 1.1.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc
index 7ecc46aa5f..70207a0c8e 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PreCompoundIon.cc,v 1.13.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNeutron.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNeutron.cc
index dfc1c5fd5b..eb0e9c4d54 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNeutron.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNeutron.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundNeutron.cc,v 1.2.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc
index 21a479cbf3..62f5bfecea 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundNucleon.cc,v 1.10.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundProton.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundProton.cc
index 578f6b3afa..98560e8492 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundProton.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundProton.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundProton.cc,v 1.2.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc
index a5b79268d2..fd2f030224 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PreCompoundTransitions.cc,v 1.19.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTriton.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTriton.cc
index ceab990438..6c713439e7 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTriton.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTriton.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PreCompoundTriton.cc,v 1.1.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // -------------------------------------------------------------------
 //
diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc
index 30e5d01fc3..6014584218 100644
--- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc
+++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VPreCompoundFragment.cc,v 1.10.2.1 2009/03/03 13:17:04 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // J. M. Quesada (August 2008).  
 // Based  on previous work by V. Lara
diff --git a/source/processes/hadronic/models/rpg/include/G4RPGInelastic.hh b/source/processes/hadronic/models/rpg/include/G4RPGInelastic.hh
index d29c310c4c..dea91191c2 100644
--- a/source/processes/hadronic/models/rpg/include/G4RPGInelastic.hh
+++ b/source/processes/hadronic/models/rpg/include/G4RPGInelastic.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4RPGInelastic.hh,v 1.3.2.1 2009/08/11 12:57:01 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Author: D. H. Wright
 // Date:   26 May 2007
diff --git a/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh b/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh
index d5ce0f8e86..7d7b457dda 100644
--- a/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh
+++ b/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4RPGNucleonInelastic.hh,v 1.1.2.1 2009/08/11 12:57:01 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Author: D. H. Wright
 // Date:   19 December 2007
diff --git a/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh b/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh
index a2335e7299..c79043fae8 100644
--- a/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh
+++ b/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4RPGPionInelastic.hh,v 1.1.2.1 2009/08/11 12:57:01 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Author: D. H. Wright
 // Date:   15 August 2007
diff --git a/source/processes/hadronic/models/rpg/src/G4RPGInelastic.cc b/source/processes/hadronic/models/rpg/src/G4RPGInelastic.cc
index b88d149e09..28fc3e077f 100644
--- a/source/processes/hadronic/models/rpg/src/G4RPGInelastic.cc
+++ b/source/processes/hadronic/models/rpg/src/G4RPGInelastic.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4RPGInelastic.cc,v 1.6.2.1 2009/08/11 12:57:01 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #include "G4RPGInelastic.hh"
diff --git a/source/processes/hadronic/models/rpg/src/G4RPGNucleonInelastic.cc b/source/processes/hadronic/models/rpg/src/G4RPGNucleonInelastic.cc
index e17d399a98..e3bfbf9806 100644
--- a/source/processes/hadronic/models/rpg/src/G4RPGNucleonInelastic.cc
+++ b/source/processes/hadronic/models/rpg/src/G4RPGNucleonInelastic.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4RPGNucleonInelastic.cc,v 1.1.2.1 2009/08/11 12:57:01 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
  
 #include "G4RPGNucleonInelastic.hh"
diff --git a/source/processes/hadronic/models/rpg/src/G4RPGPionInelastic.cc b/source/processes/hadronic/models/rpg/src/G4RPGPionInelastic.cc
index 17d95313a0..01816f378e 100644
--- a/source/processes/hadronic/models/rpg/src/G4RPGPionInelastic.cc
+++ b/source/processes/hadronic/models/rpg/src/G4RPGPionInelastic.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4RPGPionInelastic.cc,v 1.1.2.1 2009/08/11 12:57:01 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
  
 #include "G4RPGPionInelastic.hh"
diff --git a/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh b/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh
index 9a71fbde04..3a160ff74e 100644
--- a/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh
+++ b/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ElectronNuclearProcess.hh,v 1.5.4.1 2009/08/11 14:36:30 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Class Description:
 //
diff --git a/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh b/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh
index 2ca8931700..f66d0748a0 100644
--- a/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh
+++ b/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4PhotoNuclearProcess.hh,v 1.8.4.1 2009/08/11 14:36:30 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // Class Description
 // Process for photon nuclear inelastic scattering; 
diff --git a/source/processes/hadronic/processes/src/G4ElectronNuclearProcess.cc b/source/processes/hadronic/processes/src/G4ElectronNuclearProcess.cc
index 0fb6abd3b8..4bcdcbd01f 100644
--- a/source/processes/hadronic/processes/src/G4ElectronNuclearProcess.cc
+++ b/source/processes/hadronic/processes/src/G4ElectronNuclearProcess.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ElectronNuclearProcess.cc,v 1.2.4.1 2009/08/11 14:36:30 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #include "G4ElectronNuclearProcess.hh" 
diff --git a/source/processes/hadronic/processes/src/G4PhotoNuclearProcess.cc b/source/processes/hadronic/processes/src/G4PhotoNuclearProcess.cc
index 8833ab1146..b6b7118dbf 100644
--- a/source/processes/hadronic/processes/src/G4PhotoNuclearProcess.cc
+++ b/source/processes/hadronic/processes/src/G4PhotoNuclearProcess.cc
@@ -26,7 +26,7 @@
 //
 //
 // $Id: G4PhotoNuclearProcess.cc,v 1.2.4.1 2009/08/11 14:36:30 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #include "G4PhotoNuclearProcess.hh"
diff --git a/source/processes/hadronic/processes/src/G4PositronNuclearProcess.cc b/source/processes/hadronic/processes/src/G4PositronNuclearProcess.cc
index 82eff1ca78..822d81943e 100644
--- a/source/processes/hadronic/processes/src/G4PositronNuclearProcess.cc
+++ b/source/processes/hadronic/processes/src/G4PositronNuclearProcess.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4PositronNuclearProcess.cc,v 1.1.2.2 2009/08/11 14:36:30 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 
 #include "G4PositronNuclearProcess.hh" 
diff --git a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc
index 60a0ad92a4..bd25ade49f 100644
--- a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc
+++ b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4MuonMinusCaptureAtRest.cc,v 1.53.2.1 2009/03/03 13:36:32 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //   G4MuonMinusCaptureAtRest physics process
 //   Larry Felawka (TRIUMF) and Art Olin (TRIUMF)
diff --git a/source/processes/optical/include/G4OpBoundaryProcess.hh b/source/processes/optical/include/G4OpBoundaryProcess.hh
index 21a1078613..42bea533d5 100644
--- a/source/processes/optical/include/G4OpBoundaryProcess.hh
+++ b/source/processes/optical/include/G4OpBoundaryProcess.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpBoundaryProcess.hh,v 1.18.2.1 2009/08/11 12:53:17 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 ////////////////////////////////////////////////////////////////////////
diff --git a/source/tracking/History b/source/tracking/History
index 31042ef60c..81480a1e25 100644
--- a/source/tracking/History
+++ b/source/tracking/History
@@ -1,5 +1,5 @@
 $Id: History,v 1.126.2.1 2009/03/03 11:08:38 gcosmo Exp $
-$Name: geant4-09-02-patch-03 $ 
+$Name: geant4-09-02-patch-04 $ 
 -------------------------------------------------------------------
 
      =========================================================
diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc
index 4d0a325d5c..dd2f4a1e1e 100644
--- a/source/tracking/src/G4SteppingManager.cc
+++ b/source/tracking/src/G4SteppingManager.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4SteppingManager.cc,v 1.49.2.1 2009/03/03 11:08:38 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //---------------------------------------------------------------
 //
diff --git a/source/visualization/OpenGL/include/G4OpenGLQtViewer.hh b/source/visualization/OpenGL/include/G4OpenGLQtViewer.hh
index 3ba9d13a9e..38cf077aa4 100644
--- a/source/visualization/OpenGL/include/G4OpenGLQtViewer.hh
+++ b/source/visualization/OpenGL/include/G4OpenGLQtViewer.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLQtViewer.hh,v 1.13.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // G4OpenGLQtViewer : Class to provide WindowsNT specific
diff --git a/source/visualization/OpenGL/include/G4OpenGLViewer.hh b/source/visualization/OpenGL/include/G4OpenGLViewer.hh
index 9c262796c0..498172620e 100644
--- a/source/visualization/OpenGL/include/G4OpenGLViewer.hh
+++ b/source/visualization/OpenGL/include/G4OpenGLViewer.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLViewer.hh,v 1.23.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  27th March 1996
diff --git a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh
index 1e2e8d0e40..477781c459 100644
--- a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh
+++ b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLXViewer.hh,v 1.28.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  7th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateQt.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateQt.cc
index b9c7573ac1..8f28efb852 100644
--- a/source/visualization/OpenGL/src/G4OpenGLImmediateQt.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLImmediateQt.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLImmediateQt.cc,v 1.4.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // OpenGLImmediateQt graphics system factory.
diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc
index 6cda7e6cde..3de3367ed0 100644
--- a/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLImmediateQtViewer.cc,v 1.7.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // Class G4OpenGLImmediateQtViewer : a class derived from G4OpenGLQtViewer and
diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc
index d91cd61569..9d7d527838 100644
--- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.16.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and
diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc
index 832c874301..218aef6353 100644
--- a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLImmediateXViewer.cc,v 1.16.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  7th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc
index bcb7af69cd..16ed53244b 100644
--- a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLImmediateXmViewer.cc,v 1.17.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  10th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc
index 63e6039252..e00a7efaea 100644
--- a/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLQtViewer.cc,v 1.30.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // G4OpenGLQtViewer : Class to provide Qt specific
diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredQt.cc b/source/visualization/OpenGL/src/G4OpenGLStoredQt.cc
index 47fa754d33..ef7c472026 100644
--- a/source/visualization/OpenGL/src/G4OpenGLStoredQt.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLStoredQt.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLStoredQt.cc,v 1.9.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // OpenGLStoredQt graphics system factory.
diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc
index d785bf37cd..ac7d205416 100644
--- a/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLStoredQtViewer.cc,v 1.20.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 //
 // Class G4OpenGLStoredQtViewer : a class derived from G4OpenGLQtViewer and
diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc
index 3ccbb40e5b..04938195d3 100644
--- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLStoredWin32Viewer.cc,v 1.19.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and
diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc
index 315f6dadb0..4c19142b11 100644
--- a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLStoredXViewer.cc,v 1.22.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  7th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc
index 9d807a4564..3fcb0596db 100644
--- a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLStoredXmViewer.cc,v 1.22.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  10th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc
index 1a6c62263e..8a4dbb0324 100644
--- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLViewer.cc,v 1.41.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  27th March 1996
diff --git a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc
index 5aa42877b5..143e018330 100644
--- a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLWin32Viewer.cc,v 1.17.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // G4OpenGLWin32Viewer : Class to provide WindowsNT specific
diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc
index a8093078c2..8240fe6ce5 100644
--- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLXViewer.cc,v 1.42.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  7th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc
index 4963369379..a9bed61008 100644
--- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLXmViewer.cc,v 1.24.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  10th February 1997
diff --git a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc
index 904349cb36..96f26445ee 100644
--- a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc
+++ b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.6.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // Andrew Walkden  16th June 1997
diff --git a/source/visualization/management/include/G4ViewParameters.hh b/source/visualization/management/include/G4ViewParameters.hh
index 6141a3b94b..4e6af598b1 100644
--- a/source/visualization/management/include/G4ViewParameters.hh
+++ b/source/visualization/management/include/G4ViewParameters.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ViewParameters.hh,v 1.28.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // John Allison  19th July 1996
diff --git a/source/visualization/management/include/G4ViewParameters.icc b/source/visualization/management/include/G4ViewParameters.icc
index 2ecd860b6b..181b0c88bd 100644
--- a/source/visualization/management/include/G4ViewParameters.icc
+++ b/source/visualization/management/include/G4ViewParameters.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ViewParameters.icc,v 1.16.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // John Allison  20th October 1996
diff --git a/source/visualization/management/include/G4VisManager.hh b/source/visualization/management/include/G4VisManager.hh
index 3d6f6e830f..876256e538 100644
--- a/source/visualization/management/include/G4VisManager.hh
+++ b/source/visualization/management/include/G4VisManager.hh
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VisManager.hh,v 1.68.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 
diff --git a/source/visualization/management/include/G4VisManager.icc b/source/visualization/management/include/G4VisManager.icc
index 9e6c15a85b..53eb65d7bf 100644
--- a/source/visualization/management/include/G4VisManager.icc
+++ b/source/visualization/management/include/G4VisManager.icc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VisManager.icc,v 1.20.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // GEANT4 Visualization Manager - John Allison 02/Jan/1996.
diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc
index be7a96b984..10fdde6d22 100644
--- a/source/visualization/management/src/G4VViewer.cc
+++ b/source/visualization/management/src/G4VViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VViewer.cc,v 1.24.6.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // John Allison  27th March 1996
diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc
index e7728d96c4..800157ad36 100644
--- a/source/visualization/management/src/G4ViewParameters.cc
+++ b/source/visualization/management/src/G4ViewParameters.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4ViewParameters.cc,v 1.31.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // John Allison  19th July 1996
diff --git a/source/visualization/management/src/G4VisCommandsViewer.cc b/source/visualization/management/src/G4VisCommandsViewer.cc
index aa1c446586..835db4ab96 100644
--- a/source/visualization/management/src/G4VisCommandsViewer.cc
+++ b/source/visualization/management/src/G4VisCommandsViewer.cc
@@ -25,7 +25,7 @@
 //
 //
 // $Id: G4VisCommandsViewer.cc,v 1.70.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 
 // /vis/viewer commands - John Allison  25th October 1998
 
diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc
index d4d8c0d2ca..fc6a28b6c1 100644
--- a/source/visualization/management/src/G4VisManager.cc
+++ b/source/visualization/management/src/G4VisManager.cc
@@ -24,7 +24,7 @@
 // ********************************************************************
 //
 // $Id: G4VisManager.cc,v 1.115.2.1 2009/03/13 09:02:57 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-patch-03 $
+// GEANT4 tag $Name: geant4-09-02-patch-04 $
 //
 // 
 // GEANT4 Visualization Manager - John Allison 02/Jan/1996.
-- 
GitLab